使用ELK Stack分析Nginx日志

在之前的ELK日志分析平台部署教程(Ubuntu)一文中介绍了如何部署ELK Stack。部署完成后,我们当然是需要用它来对日志文件进行分析。Nginx日志自然是其中的一个重要部分。在本文中将介绍如何使用ELK分析Nginx日志。

使用ELK Stack分析Apache2日志一文中介绍的直接调用Logstash的预配置模式不同,在Logstash中并没有预先配置好的Nginx日志模式。因此,我们需要手动进行配置。

前期准备

ELK服务器

  • Logstash被安装在了/opt/logstash目录下
  • Logstash的配置文件储存在/etc/logstash/conf.d
  • 在配置文件夹下有输入配置文件02-beats-input.conf
  • 在配置文件夹下有输出配置文件30-elasticsearch-output.conf

这里,我们再为Logstash创建一个用来储存模式(pattern)文件的目录:

Client服务器

Grok捕获机制说明

Grok依靠对文本信息的语法分析对内容进行标注。Grok使用语法如下:

在Logstash的筛选器中会存在一系列的Grok捕获器来捕获日志中相关的字段,并将他们结构化成方便阅读的模式。

具体的Grok的规则配置可以在这篇文章中找到。Logstash预配置的Grok也可以用来对照参考。

配置Logstash

在ELK服务器创建一个新的模式,并并名为nginx:

向其中加入以下配置

保存并退出。在NGINXACCESS的语法模式中,定义了一些例如clientip、ident、auth的关键字以用来结构化日志数据。

更改配置文件的用户组:

接着,在Logstash的配置文件目录下创建一个新的筛选器配置文件(11-nginx-filter.conf)用来筛选Nginx的日志:

向其中写入以下配置信息:

保存并退出。在这个配置中,筛选器将试图匹配到type为nginx-access日志文件条目(message)中呗标记为NGINXACCESS的字段,这个字段我们在上文中定义过。

重启Logstash使配置生效

这样,我们在ELK服务器端对Logstash的配置就完成了。下面进入客户端对Filebeat进行配置。

配置Filebeat

这一部分与Apache日志分析的配置大致相同。首先修改Client Server的Filebeat配置文件:

修改配置文件中的采集器(Prospector)的相关配置。如下:

注意,这里只是修改了Filebeat配置文件中的Prospector字段,其他字段的修改请参照前文(ELK日志分析平台部署教程(Ubuntu))。

保存并退出,重启Filebeat服务使配置生效:

至此,所有配置完成,应该可以在Kibana的Web页面看到获取到的Log信息了。

20160311163100

参考文章:Adding Logstash Filters To Improve Centralized Logging

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注