一.ELK概念
1)ELK介绍
ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。
- ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。
- Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。
- Elasticsearch是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大容量的日志数据,也可用于搜索许多不同类型的文档。
- Kiabana:Kibana 通常与 Elasticsearch 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 提供图形化的 web 界面来浏览 Elasticsearch 日志数据,可以用来汇总、分析和搜索重要数据。
- Logstash:作为数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置,一般会发送给 Elasticsearch。
- Logstash 由 Ruby 语言编写,运行在 Java 虚拟机(JVM)上,是一款强大的数据处理工具, 可以实现数据传输、格式处理、格式化输出。Logstash 具有强大的插件功能,常用于日志处理。
2)ELK使用
服务器数量较少时:
- 不做任何日志集中管理,直接登录到服务器捞日志查看(缺点:当服务器不可用时,无法及时收集到日志)
- 通过 rsyslog 或 shell/python脚本 实现自动收集日志,集中保存到统一的日志服务器中
3)ELK组件
- Logstash 负责采集日志数据,还可通过插件模块对日志数据进行过滤、格式化处理,再 输出给ElasticSearch
- ElasticSearch 负责对日志数据进行分片、存储,并创建索引,方便全文检索
- Kibana 用于接入ElasticSearch的数据源,将日志数据进行图形化展示,方便用户通过 浏览器查看、搜索、分析日志
- Filebeat 用于替代Logstash采集日志数据,优点:比Logstash更轻量,资源消耗更少
- Fluentd 也是Logstash的一种替代方案,可用于替代Logstash采集日志数据和过滤转换