Elastic (ELK) Stack简介及整体架构部署
简介
Elastic (ELK) Stack 是 Elastic 公司的产品软件。是目前流行的集中式日志解决方案。
主要包含了ELK
、Beats
、Apm
、 Elastic Agent
等产品。
-
ELK : 文档地址,三个开源软件的缩写,分别为
Elasticsearch
、Logstash
、Kibana
。是一个可视化日志分析平台。 -
Apm:文档工具,资源监控型工具,应用程序内收集深入全面的性能指标和错误。其允许您实时监测数以千计的应用程序的性能
-
Beats:文档地址, 这是一个轻量级日志采集器,其实 Beats 家族有几个成员,早期的 ELK 架构中使用 Logstash 收集、解析日志,但是 Logstash 对内存、cpu、io 等资源消耗比较高。相比 Logstash,Beats 所占系统的 CPU 和内存几乎可以忽略不计。
- Packetbeat:网络数据(收集网络流量数据)
- Metricbeat:指标(收集系统、进程和文件系统级别的CPU和内存使用情况等数据)
- Filebeat:日志文件(收集文件数据)
- Winlogbeat:windows事件日志(收集Windows事件日志数据)
- Auditbeat:审计数据(收集审计日志)
- Heartbeat:运行时间监控(收集系统运行时的数据)
-
Elastic Agent: 文档地址,Elastic 代理
产品 | 备注 |
---|---|
elasticsearch | 开源分布式搜索引擎,提供搜集、分析、存储数据三大功能 |
logstash | 数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后发给 Elasticsearch 存储 |
kibana | ElasticSearch 和 Logstash的Web可视化工具 |
apm server | apm 服务端 |
beats | Filebeat、Packetbea、Winlogbeat、Metricbeat、Heartbeat、Auditbeat、Functionbeat 等产品。主要是轻量化方式收集、解析和传输数据 |
elastic-agent | 用于日志、指标、安全数据和威胁防御多项功能,发送日志给elasticsearch |
elasticsearch-hade | 用于查询elasticsearch日志的Web 可视化工具 |
部署架构
ELK架构图
Elasticsearch + Logstash + Kibana
这是一种最简单的架构。这种架构,通过logstash收集日志,Elasticsearch分析日志,然后在Kibana(web界面)中展示。这种架构虽然是官网介绍里的方式,但是往往在生产中很少使用。
Elasticsearch + Logstash + filebeat + Kibana
与上一种架构相比,这种架构增加了一个filebeat模块。filebeat是一个轻量的日志收集代理,用来部署在客户端,优势是消耗非常少的资源(较logstash), 所以生产中,往往会采取这种架构方式,但是这种架构有一个缺点,当logstash出现故障, 会造成日志的丢失。
Elasticsearch + Logstash + filebeat + redis/RabbitMQ + Kibana
这种架构是上面那个架构的完善版,通过增加中间件,来避免数据的丢失。当Logstash出现故障,日志还是存在中间件中,当Logstash再次启动,则会读取中间件中积压的日志。