概述:
1.1什么是Eastic (ELK)Stack)(ELKB)
“ELK"是三个开源项目的首字母缩写,这三个项目分别是: Elasticsearch、Logstash和Kibana。Elasticsearch是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如Elasticsearch等“存储库"中。Kibana则可以让用户在Elasticsearch中使用图形和图表对数据进行可视化。
Elastic Stack 是 ELK Stack的更新换代产品
1.2 Elastic Stack 的发展历程(名字的由)
1.2.1一切都起源于Elasticsearch...
这个开源的分布式搜索引擎基于JSON开发而来,具有RESTful风格。它使用简单,可缩放规模,十分灵活,因此受到用户的热烈好评,而且如大家所知,围绕这一产品还形成了一家专门致力于搜索的公司。
1.2.2引入Loqstash和 Kibana
Elasticsearch的核心是搜索引擎,所以用户开始将其用于日志用例,并希望能够轻松地对日志进行采集和可视化。有鉴于此,我们引入了强大的采集管道Logstash和灵活的可视化工具 Kibanao
Elastic Stack包含各种功能(之前统一称为X-Pack),从企业级安全性和开发人员友好型API,到 MachineLearning和图表分析,非常全面;借助这些功能,您能够对所有类型的数据进行大规模采集、分析、搜索和可视化。
1.2.2引入 Logstash和 Kibana
Elasticsearch 的核心是搜索引擎,所以用户开始将其用于日志用例,并希望能够轻松地对日志进行采集和可视化。有鉴于此,我们引入了强大的采集管道Logstash和灵活的可视化工具 Kibana。
Elastic Stack 包含各种功能(之前统一称为X-Pack),从企业级安全性和开发人员友好型API,到MachineLearning 和图表分析,非常全面;借助这些功能,您能够对所有类型的数据进行大规模采集、分析、搜索和可视化。
1.2.3ELK中加入了Beats
无论是在混乱如麻的文本型文档中找到前N个结果,还是分析安全事件,再或是自由地对指标进行切片和切块,全球社区一直都在使用ELK不断地拓展使用范围。
“我只想对某个文件进行tail操作,"用户表示。我们用心倾听。在2015年,我们向ELK Stack 中加入了一系列轻量型的单一功能数据采集器,并把它们叫做Beats。
12.4 Elastic Stack名字的由来
ELK这个名称又要变了,的确如此。把它叫做BELK? BLEK? ELKB?当时的确有过继续沿用首字母缩写的想法。然而,对于扩展速度如此之快的堆栈而言,一直采用首字母缩写的确不是长久之计。
1.3 Elastic Stack的组成部分
Elasticsearch: Elasticsearch (以下简称ES)是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。ES是Elastic Stack 的核心,采用集中式数据存储,可以通过机器学习来发现潜在问题。ES能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标)。支持 PB级数据的秒级检索。
Kibana: Kibana是一个免费且开放的用户界面,能够让您对Elasticsearch数据进行可视化,并让您在Elastic Stack中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成
Logstash: Logstash是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送骛您最喜欢的“存储库”中。
Beats: Beats是一套免费且开源的轻量级数据采集器,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向Logstash 或 Elasticsearch发送数据。
2,用途和使用场景
2.1为什么要使用ELK
- 严格按照开发标准来说,开发人员是不能登录生产服务器查看日志数据的.
- 一个应用可能分布于多态服务器,难以查找
- 同一台服务区可能部署多个应用,日志分散难以管理
- 日志可能很大,单个文件通常能达到GB级别,日志无法准确定位,日志查询不方便且速度慢。
- 通常日志文件以非结构化存储,不支持数据可视化查询。
- 不支持日志分析(比如慢查询日志分析、分析用户画像等)。
2.2使用场景
- 采集业务日志。
- 采集Nginx日志
- ·采集数据库日志,如MySQL。
- 监控集群性能指标
- 监听网络端口·
- 心跳检测
此过程(inputs)用于从数据源获取数据,常见的插件如beats、file、kafka、rabbitmq、log4j、redis等。
参考: https://www.elastic.co/guide/en/logstash/current/input-plugins.html
3.3数据过滤:Filter
数据从源传输到存储库的过程中,Logstash过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便进行更强大的分析和实现商业价值。
Logstash能够动态地转换和解析数据,不受格式或复杂度的影响:。
- 利用Grok从非结构化数据中派生出结构
- 从IP地址破译出地理坐标
- 将PII数据匿名化,完全排除敏感字段
- ·简化整体处理,不受数据源、格式或架构的影响
过滤器是Logstash管道中的数据处理器, input时会触发事件,触发 filter对数据进行transport,即转换解析各种
格式的数据,常见的过滤器插件如下:
- grok:解析和构造任意文本。是Logstash过滤器的基础,广泛用于从非结构化数据中导出结构,当前,Grok是Logstash中将非结构化日志数据解析为结构化和可查询内容的最佳方法。
- mutate:对事件字段执行常规转换,支持对事件中字段进行重命名,删除,替换和修改。
- date :把字符串类型的时间字段转换成时间戳类型
- drop :完全删除事件,例如调试事件。
- clone :复制事件,可能会添加或删除字段。
- geoip:添加有关IP地址地理位置的信息。
3.4数据存储:output
Elasticsearch是官方首选输出方式,但并非唯一选择。Logstash提供多种输出选择,目前官方支持20O多个插件。
Kibana
6.2 Logstash服务
下载地址:https://www.elastic.co/guide/en/logstash/7.10/index.html
https://www.elastic.co/cn/downloads/past-releases#logstash
利用stdin 和 stdout调试
Filebeat
文件日志监控采集,主要用于收集日志数据
6.2.1下载和安装
地址: https://www.elastic.co/cn/downloads/past-releases/filebeat-7-13-0
https://www.elastic.co/cn/downloads/past-releases#filebeat
解压:
tar -xzvf metricbeat-7.13.0-linux-x86_64.tar.gz
6.2.1工作原理
当启动Filebeat时,它会启动一个或多个inputs,这些输入会在日志数据指定的位置中查找。对于 Filebeat定位的每个日志,Filebeat都会启动一个harvester。每个harvester读取单个日志以获取新内容并将新日志数据发送到libbeat,libbeat 聚合事件并将聚合数据发送到配置的输出地址。
查看官方文档:
https://www.elastic.co/guide/index.html
https://www.elastic.co/guide/en/beats/filebeat/7.10/configuring-howto-filebeat.html
vim filebeat.yml
配置inputs
https://www.elastic.co/guide/en/beats/filebeat/7.0/filebeat-input-log.html
配置outputs 输出到es
官方文档:https://www.elastic.co/guide/en/beats/filebeat/7.0/elasticsearch-output.html
Filebeat + Logstash + es
--------------------------filter不做任何处理,直接输出到logstash----------------------------
1,输出日志到logstash
编辑配置文件filebeat.yml,
关闭output.elasticsearch配置
2,编辑logstash-sample.conf
启动logstash
[logstash@elastic1 logstash-7.13.0]$ ./bin/logstash -f config/logstash-sample.conf
--------------------------filter不做任何处理,直接输出到logstash----------------------------
请点击阅读>>>>>>> elk分布式日志系统2
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/17709312.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?