系统概要
我们常说的ELK日志收集系统,完整的应该称为:ELK Stack是软件集合Elasticsearch、Logstash、Kibana的简称,它们都是开源软件,目前称为:Elastic Stack,其是ELK Stack 在 5.0 版本加入 Beats 套件后的新称呼。新增得FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash。
官方地址:https://www.elastic.co/guide/cn/index.html
中文文档地址:https://elkguide.elasticsearch.cn/
1>Elasticsearch 是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等;负责存储最终数据、建立索引、提供搜索功能。
2>Logstash 主要是用来日志的搜集、分析、过滤日志的工具,负责采集日志,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
3>Kibana 也是一个开源和免费的工具,负责提供可视化界面,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
4>Filebeat 隶属于Beats,其作为原logstash-forwarder的替代来完成。Filebeat轻量级的日志传输工具,可以读取系统、nignx、apache等logs文件,监控日志文件,传输数据到Elasticsearch或者Logstash,最后在Kibana中实现可视化。目前Beats包含四种工具:
1)Packetbeat(搜集网络流量数据)
2)Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
3)Filebeat(搜集文件数据)
4)Winlogbeat(搜集 Windows 事件日志数据)
Filebeat一个典型的应用场景:1. Filebeat从nignx读取日志文件,将过滤后的数据传给Logstash。2. Logstash收集到Filebeat传来的数据后格式化输出到 Elasticsearch。3. 最后再由Kibana 访问Elasticsearch提供的比较友好的 Web 界面进行汇总、分析、搜索。
Elastic Stack 目前已成为机器数据分析,或者说实时日志处理领域,开源界的第一选择,和传统的日志处理方案相比,Elastic Stack 具有如下几个优点:
1)处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
2)配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前