ELK日志详解(收集原理及3大组件)

ELK日志详解(收集原理及3大组件)-mikechen

ELK日志系统简介

ELK 是一个用于日志管理和数据分析的开源软件栈,它由三个核心组件组成:Elasticsearch、Logstash 和 Kibana。

ELK日志详解(收集原理及3大组件)-mikechen

ELK日志系统作用

ELK(Elasticsearch、Logstash、Kibana)日志的作用,主要涵盖了以下几个方面:

1.日志收集和存储

ELK允许组织有效地收集和存储各种类型的日志数据,包括:应用程序日志、系统日志、网络流量日志、安全事件日志等。

 

2.实时监控

ELK允许实时监控系统和应用程序的性能和状态,通过分析实时生成的日志数据,可以迅速识别问题并采取行动以防止或解决潜在的故障和性能问题。

 

3.故障排除

当系统出现问题时,ELK可用于帮助诊断问题的根本原因,分析日志数据可以揭示错误消息、异常和不寻常的行为,以帮助工程师快速解决问题。

 

ELK日志工作流程

ELK日志分析工作流程,如下图所示:

ELK日志详解(收集原理及3大组件)-mikechen

第一步:Logstash采集日志

首先:Logstash采集日志,日志主要包括:系统日志、应用程序日志、以及安全日志等。

Logstash收集完数据,应用过滤器进行数据处理,然后将数据发送到Elasticsearch。

 

第二步:使用ElasticSearch存储数据

接着,将过滤后的日志发送给Broker,然后Logstash Indexer将存放在Broker中的数据再写入Elasticsearch。

Elasticsearch存储完数据,允许用户通过:全文搜索和聚合查询来访问数据。

 

第三步:使用Kibana来展示界面

Kibana通过可视化图表和仪表板帮助用户可视化和分析数据,以便监控、故障排除、分析和报告。

 

ELK日志系统组件

1.Logstash

ELK日志详解(收集原理及3大组件)-mikechen

Logstash 是一个开源的数据采集工具,用于从多种数据源,比如:日志文件、数据库、消息队列等中收集数据。

主要包含功能:

1.数据输入(Input)

Logstash从多种来源收集数据,包括日志文件、消息队列、数据库、网络流量等,这些数据输入被称为Input插件。

例如:Logstash可以监控一个特定目录中的日志文件,也可以监听一个TCP端口来接收日志数据。

 

2.数据过滤(Filter)

一旦数据被收集,Logstash可以应用一系列的过滤器来处理和转换数据,这些过滤器可以用于解析、清洗、结构化和丰富数据。

例如:Logstash可以将非结构化的文本日志解析成结构化的JSON格式。

 

3.数据输出(Output)

处理完数据后,Logstash将数据发送到一个或多个目标,通常是Elasticsearch,这些数据输出被称为Output插件。

Logstash还支持将数据输出到其他存储系统、消息队列、文件或远程服务。

 

2.ElasticSearch

ELK日志详解(收集原理及3大组件)-mikechen

ElaticSearch,简称为ES, 是一款大数据场景下的分布式全文搜索引擎,是建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。

ElaticSearch的功能主要包含:

1.数据存储(Data Storage)

Logstash将处理过的数据发送到Elasticsearch,它是一个分布式、实时的搜索和分析引擎。

Elasticsearch将数据存储在分布式索引中,这使得数据能够被高效地存储、检索和分析。

 

2.全文搜索和查询(Full-text Search and Querying)

Elasticsearch提供了强大的全文搜索能力,用户可以使用查询语言(如Elasticsearch查询DSL)执行复杂的搜索操作。

 

3.数据分析和聚合(Data Analysis and Aggregation)

Elasticsearch还支持聚合操作,允许用户对数据进行汇总和分析。用户可以创建各种聚合查询以提取有关日志数据的有用信息。

 

3.Kibana

Kibana 是一个开源的数据可视化和分析平台,通常与 ElaticSearch结合使用。

主要包含功能:

1.数据可视化(Data Visualization)

Kibana是用于可视化和分析数据的Web界面,它允许用户创建各种可视化图表、图形和地图,以展示日志数据的趋势和模式。

ELK日志详解(收集原理及3大组件)-mikechen

2.仪表板(Dashboards)

Kibana还允许用户创建自定义仪表板,将多个可视化元素组合在一起,以实时监视和分析数据。

仪表板可以用于监控系统性能、分析日志事件、跟踪安全事件等。

 

ELK 日志系统总结

总之,ELK 日志管理工具是一个功能强大的工具集,可用于各种用途,但主要用于日志管理和分析,它们能够帮助组织实现更好的数据可视化、实时监控和问题诊断。

陈睿mikechen

十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法