使用ELK Stack分析Apache2日志

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

Apache的日志模式在Logstash中有预配置好的日志模式。这里只需要调用即可。

配置ELK服务器

首先,在ELK服务器上添加一个新的过滤器,命名为12-apache.conf:

加入以下筛选规则:

保存并退出。在这个筛选器中,我们指定将type为apache-access的日志使用COMBINEDAPACHELOG这个预定义在Logstash中的模式进行格式化。

重启Logstash在使配置生效。

接下来,我们需要在Client Server上配置Filebeat以获得我们想要的日志。

配置Filebeat

在Client上编辑Filebeat的配置文件:

在配置文件中的filebeat字段中添加日志采集器的配置。并将Apache的access log的type命名为apache-access:

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

保存并退出。重启Filebeat使配置生效:

现在ELK服务器已经开始收集Apache的access日志并用预定义的模式进行处理。

下图是使用ELK简单分析Apache日志的结果。使用筛选器筛选出时间、IP和客户端三个字段。

20160310195546

这时候,点击左侧的filter(例如clientip),可能提示为未索引状态,无法可视化,如下图:

20160311121543

下面,我们进行数据的可视化。

Kibana数据可视化

进入Kibana的Web界面,点击上方导航条中的Settings标签。选择filebeat-*。点击下方的黄色刷新按钮。

20160311113242

刷新完成后,可以看到下方Fields列表中多出了我们新加入的索引,并被标记为了indexed。这意味着我们已经将这些字段索引,并可以用来进行数据可视化。

下面以分析clientip为例,完成一个访问量Top 10的IP统计。步骤如下:

  • 点击顶部导航条的Visualize选卡
  • 选择其中的Pie chart,即制作饼状图
  • 选择From a new search
  • 在select an index pattern中选择filebeat

20160311122921

以上步骤后,我们获得一个空白的饼状图。因为我们还没对其中的元素进行配置。下面我们继续:

  • 在左侧的buckets中选择Split Slices
  • Aggergation选项中选择Terms
  • 接下来,在Field中选择clientip
  • 然后,我们把Size调正10,这样就能选择前10的IP
  • 最后点击上方的绿色执行按钮

20160311111746

这样,一张饼状图就生成好了。我们可以点击右上方的保存按钮保存这次操作,下次就可以直接调用这个查询了。

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

暂无评论

发表评论

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