日志分析系统重新构建了一下,选定的技术方案是ELK,也就是ElasticSearch, LogStash,Kibana。另外加了Filebeat和Kafka
2017.06.28
这两天稍微清闲一些,就趁机重新构建了日志分析系统。没有写代码,全部使用成熟的技术方案来做数据采集,至于后期如何使用这些数据,还在考虑中,先收集吧。
整体的解决方案如下图所示:
其中,日志采集工具使用FileBeat,传输工具使用Kafka,数据整理工具使用LogStash集群,数据存储工具使用ES。当然,这个系统是可以简化的,比如说简化为Filebeat+ElasticSearch,FileBeat+LogStash+ElasticSearch,在不考虑数据Filter和数据处理能力的情况下,这两种方案都可以。但是建立这个平台的初衷是要支持整个网站的所有日志,于是就增加了Kafka,保证数据处理能力。
FileBeat采集数据之后传输给Kafka消息队列,然后LogStash采集消息队列中的数据,作过滤处理,最后将数据传输给ES。FileBeat采集数据时就是Json化的,这个日志采集工具相当轻量级,对系统资源的消耗很少。而LogStash的优点则是有丰富的Filter插件,用于对数据作粗处理。Kafka和ES的优点就不用说了。为了保证系统稳定性,这里所有的组件都使用集群形式。kafka集群使用三台虚拟机,LogStash集群使用两台虚拟机,而ElasticSearch集群使用两台虚拟机。下面来分别说一下各个组件的安装和配置。
FileBeat
FileBeat 是用来替代LogStash-Forwarding的一个组件,是一个轻量级的日志采集器,相比于LogStash-Forwarding日志采集器,Filebeat对系统资源的占用低很多。我这里用到的服务器是Windows,当然也可以放在Linux机器上,配置方法一致。
首先要下载filebeat,下载地址为: