1. ELK 简单介绍
ELK 是 elastic(美国数据搜索软件初创公司) 公司提供的一套完整的日志收集、日志搜索分析、展示解决方案,是三个产品的首字母缩写。这三个产品分别是 ElasticSearch、Logstash 和 Kibana,同时加入 beats 来优化 Logstash。
• ElasticSearch
:是一个基于 Lucene 构建的分布式开源项目,采用的是 RESTful 搜索引擎。
• Logstash
:用于传输和处理日志、事务或其他数据。
• Kibana(科班纳)
:将 ElasticSearch 的数据分析并渲染为可视化的报表。
2. ELK 的用途
ELK 主要用途于大型分布式系统的日志集中分析,通过 ELK 这套解决方案,可以实现日志收集、日志搜索和日志分析的功能。
3. ELK 的优点
互联网行业中日志数据非常重要,形式也多种多样。通过日志我们可以计算请求量、流量来源分析、了解用户行为。对于故障排除也是具有重要意义,故障问题的快速排除几乎都是通过快速的日志查询、定位、解决问题。对于实时性要求非常高。
• 收集 能够采集多种来源的日志数据。 • 传输 能够稳定的把日志数据传输到中央系统。 • 转换 能够对收集的日志数据进行转换处理。 • 存储 存储日志数据。 • 分析 可以支持 UI 分析。 • 告警 能够提供错误报告,监控机制。
4. ELK 旧版架构
旧版的 ELK 构架需要在每个项目的节点(也就是电脑节点)上部署 Logstash,然后收集起来发送给 ElasticSearch。这样会造成一种情况就是系统的资源和 CPU 消耗的更严重,框架相对比较臃肿笨重。
5. ELK 新版架构
6. 新版 ELK 架构介绍
(1)Beat 部件介绍 Beats 是单一用途的数据传输平台,它可以将多台机器的数据发送到 Logstash 或 ElasticSearch。但 Beats 在新版的 ELK 的架构并不是不可或缺的一环。 • Package Beat:用于收集包相关的日志记录。 • Top Beat:用于收集系统相关(如CPU等)的日志记录。 • File Beat:用于收集文件相关的日志记录。 • your Beat:用于收集自定义相关的日志记录。
(2)Logstash Logstash 是一个动态数据收集管道。支持 TCP/UDP/HTTP 多种方式收集数据,也可以接受 Beats 传输来的数据,并对数据做进一步丰富或提取字段处理。
(3)ElasticSearch ElasticSearch 是一个基于 JSON 的分布式的搜索和分析引擎。作为 ELK 的核心,它集中存储数据。
(4)Kibana Kibana 是 ELK 的用户界面。它将收集的数据通过各种报表或图形化数据进行可视化展示,并且提供配置、管理 ELK 的界面。