ELK的简介
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的界面。