ELK已经搭建完成,接下来才到真正收集日志

首先我们收集Nginx的日志,因为Logstash是进行input-output

所以在Nginx这台服务器上进行安装Logstash

每台你需要收集日志的服务器上都要安装

Logstash其实有点臃肿的感觉,官方有一个Filebeat更轻便

Filebeat官网在这里

Logstash收集

vim /etc/logstash/conf.d/nginx-log.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
input {
file {
path => "/var/log/nginx/access.log" 填写nginx访问日志位置
type => "nginxlog" 类型名称自定义
}
}

output {
if [type] == "nginxlog" {
elasticsearch {
hosts => ["192.168.10.167:9200"] 这里面有个判断,是这个类型则发送到es中
index => "nginx-log-%{+YYYY.MM.dd}" 索引
}}

}

Logstash这里应该很好理解,一开始我也以为很难

但那只是自己给自己的误区

流程大体是

input > file > output > elasticsearch

如果怕自己写错,可以检测是否正确

logstash -f /etc/logstash/conf.d/nginx-log.conf -t

正确时你会看到OK

如果在elasticsearch集群中没有看到,多查看日志

是不是logstash配置写错了

这样就可以去Kibana中新建索引

新建索引

登陆Kibana

Management > 创建索引模式 > nginx-log-* > @timestamp > 创建成功

查看可视化就可以看到Nginx的访问日志

这里有几点要说的

  • 你要理解的是,这里创建索引本质就是去es中去匹配,匹配到就可以创建
  • 以英文来说 “Index pattern” 这的格式就按照你output中index的格式, 例如我填写的是 “nginx-log-*” 直接写了一个通配
  • 关于Kibana版本,建议不要使用最新版,Kibana更新快汉化有些是不全的有些看着一会英文一会中文这样很难受
  • 为什么这里没有图片介绍,因为没找到一个好的图床 github不敢传太多的图,后续找到好图床都会补上的

这样一个Nginx的access日志就算收集成功,需要补充的也是有很多

比如 Filebeat,redis 后续有机会都会写上