ELK是由三个技术组成的分别是
- ElasticSearch 核心存储和检索引擎
- Logstash 高吞吐量数据处理引擎
- Kibana 数据可视化
主要业务是做日志分析
ElasticStack不光是由这几种技术 还有新的成员Beats,它可以采集一切数据
Beats下还分为以下几个模块
- FileBeat 日志文件
- PacketBeat 网络流量
- MetricBeat 服务指标(CPU,内存情况)
- WinlogBeat win日志采集
- HeartBeat 健康检查
Beats采集到的数据有两种选择,
一是直接发送到elasticSearch保存起来 二是先发送到logstash做数据处理再发送给ElasticSearch
下面分别介绍一下这几个组件
ElasticSearch
ElasticSearch基于java,是个开元分布式搜索引擎,它的特点有: 分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等.
Logstash
Logstash基于java 是一个开源的用于收集,分析和存储日志的工具, 作为收集的工具与最新的Beats效果有些重复,现如今使用Beats作为采集的功能多一些, Logstash主要作用是处理数据,做一些字符串分割等工作
Kibana
Kibana基于nodejs,也是一个开源和免费的工具,Kibana可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以汇总,分析和搜索重要的数据日志
Beats
Beats是Elastic公司开源的一款采集系统监控数据的代理agent,实在被监控服务器上以客户端形式运行的数据收集器的统称,可以直接把数据发送给ElasticSearch或者通过Logstash发送给ElasticSearch,然后进行后续的数据分析活动
Beats由如下组成
- PacketBeat: 是一个网络数据包分析器,用于监控,收集网络流量信息 ,PacketBeat嗅探服务器之间的流量,解析应用层协议,并关联到消息的处理,其支持ICMP(v4 and v6),DNS,HTTP,Mysql,PostgreSql,Redis,MongoDB,Memcache等协议
- FileBeat: 用于监控,收集服务器日志文件,其已经取代了logstash forwarder
- MetricBeat: 可定期获取外部系统的监控指标信息,其可以监控,收集Apache, HAProxy, MongoDB,MySql, Nginx, PostgreSQL, Redis, System, Zookeeper等服务
- WinlogBeat: 用于监控,收集Windows系统的日志信息