如果你没有听说过Elastic Stack,那你一定听说过ELK。实际上ELK是三款软件的简称,分别是Elasticsearch、Logstash、Kibana组成,在发展的过程中,又有新成员Beats的加入,所以就形成了Elastic Stack。
所以说,ELK是旧的称呼,Elastic Stack是新的名字。
Elasticsearch
Elasticsearch 基于java,是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash
Logstash 基于java,是一个开源的用于收集,分析和存储日志的工具。
Kibana
Kibana 基于nodejs,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的Web 界面,可以汇总、分析和搜索重要数据日志。
Beats
Beats是elastic公司开源的一款采集系统监控数据的代理agent,是在被监控服务器上以客户端形式运行的数据收集器的统称,可以直接把数据发送给Elasticsearch或者通过Logstash发送给Elasticsearch,然后进行后续的数据分析活动。
Beats由如下组成:
- Packetbeat:
监测网络流量对于获得可观测性和保护环境至关重要,有助于确保高水平的性能和安全性。Packetbeat 是一款轻量型网络数据包分析器,能够将主机和容器中的数据发送至 Logstash 或 Elasticsearch。
- Filebeat:
无论是从安全设备、云、容器、主机还是 OT 进行数据收集,Filebeat 都将提供一种轻量型方法,用于转发和汇总日志与文件,让简单的事情不再繁杂。
- Metricbeat:
用于从系统和服务收集指标。Metricbeat 能够以一种轻量型的方式,输送各种系统和服务统计数据,从 CPU 到内存,从 Redis 到 Nginx,不一而足。
- Winlogbeat:
用于密切监控基于 Windows 的基础设施上发生的事件。使用 Winlogbeat,将 Windows 事件日志流式传输至 Elasticsearch 和 Logstash。
- Heartbeat:
通过主动探测来监测服务的可用性。通过给定 URL 列表,Heartbeat 仅仅询问:网站运行正常吗?Heartbeat 会将此信息和响应时间发送至 Elastic 的其他部分,以进行进一步分析。
- Auditbeat:
收集Linux审计框架的数据,监控文件完整性。Auditbeat 实时采集这些事件,然后发送到 Elastic Stack 其他部分做进一步分析。
- Functionbeat:
在作为一项功能部署在云服务提供商的功能即服务 (FaaS) 平台上后,Functionbeat 即能收集、传送并监测来自云服务的相关数据。