目录
ELK简介
ELK是三个单词Elasticsearch , Logstash, Kibana首字母的缩写,这三个都是开源软件。
Elasticsearch是开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点是:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是用来搜集、分析、过滤日志的工具,支持大量的数据获取方式。工作方式是c/s架构,client端可以安装Logstash,也可以安装filebeat,安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、分析等操作后发到elasticsearch上存储。
Kibana是对ElasticSearch存储的日志进行展示的Web工具,界面友好,有大量的图表可以供用户查阅,可以汇总、分析和搜索重要的数据日志。
ELK架构图
ELK架构解析
从左到右来说,最左边的一列是需要采集数据/日志的机器,可以安装filebeat这个客户端工具来收集数据,收于filebeat是一个轻量级采集数据/日志的工具,占用内存和系统负载很小,安装和使用也非常方便,建议在采集端采用。
再往右边加入了kafka的消息队列,然后再右边是Logstash,然后是一个ES的集群,最后是Kibana。
这个架构的解读是从左到右的,先客户端采集日志到最右边用户看到数据图表。
架构引入了消息队列kafka,先将各个节点上filebeat采集的数据/日志传递给Kafka,然后再将队列中消息或数据间接传递给Logstash,Logstash过滤、分析后将数据传递给Elasticsearch存储。最后由Kibana将日志和数据呈现出来展示。
由于引入了Kafka,可以分批传输数据/日志给Logstash,减轻了Logstash处理日志的压力,数据先存储再处理,一来避免数据丢失,还能缓解Logstash的处理数据的压力,适合采集和处理大数据时使用此架构。