news 2026/7/14 11:25:21

EFK日志采集流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
EFK日志采集流程

Filebeat采集日志->kafka topic存起来日志->logstash去kafka获取日志,进行格式转换->elasticsearch->kibana

服务版本注意:

安装 Elastic Stack 时,整个技术栈必须使用‌相同版本‌。例如,若使用 Elasticsearch 9.4.3,则需配套安装 Beats 9.4.3、APM Server 9.4.3、Elasticsearch Hadoop 9.4.3、Kibana 9.4.3 和 Logstash 9.4.3。 若是升级现有部署,请参阅“升级您的部署、集群或编排器”文档,以确保与 9.4.3 版本的兼容性。 不支持运行不同大版本的 Kibana 和 Elasticsearch(如 Kibana 9.x 与 Elasticsearch 8.x),也不支持 Kibana 的小版本号高于 Elasticsearch 的情况(如 Kibana 8.14 与 Elasticsearch 8.13)另外es9以上的版本会收费,可以使用8.x的版本它是免费的

按照下面这些文档按照依次安装

一、ZooKeeper集群安装-CSDN博客

二、安装kafka集群(与zookeeper集群配合)-CSDN博客

三、安装filebeat收集nginx应用的日志-CSDN博客

四、安装logstash-CSDN博客

五、部署es(elasticsearch)-CSDN博客

六、安装kibana服务-CSDN博客

另外由于es和logstash比较大,装这两个服务的机器的内容需要比较大,至少4个G

如果在es的kibana的界面数据的索引不对可以按照下面的思路进行查询

一、Kafka 链路状态排查指令

/opt/kafka/bin/kafka-topics.sh --list --bootstrap-server 你的Kafka集群地址:9092
检查列表中是否有你配置的待消费主题,比如你预期的日志主题。

往该主题手动写入测试数据,验证主题可正常生产:

/opt/kafka/bin/kafka-console-producer.sh --broker-list 你的Kafka集群地址:9092 --topic 你的日志主题名

直接消费该主题的全量数据,验证数据是否真的能正常流入Kafka:

/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 你的Kafka集群地址:9092 --topic 你的日志主题名 --from-beginning

Logstash对应的消费组偏移量,确认是否有消费进度:在Logstash中配置的消费组ID 默认是logstash

/opt/kafka/bin/kafka-consumer-groups.sh --describe --group 你在Logstash中配置的消费组ID --bootstrap-server 你的Kafka集群地址:9092
如果输出中CURRENT-OFFSET一直为0,说明Logstash根本没有成功连接到Kafka消费数据

二、Logstash 配置与运行状态排查指令

先验证你的Logstash配置文件语法完全合法:

sudo -u logstash /opt/logstash-9.4.3/bin/logstash -f /opt/logstash-9.4.3/config/nginx.conf -t
输出Configuration OK才代表配置没有语法错误。

查看Logstash实时运行日志,过滤所有和输出相关的错误:

tail -f /opt/logstash-9.4.3/logs/logstash-plain.log | grep -E "elasticsearch|kafka|error"

三、ES侧连通性与写入验证指令

先在Logstash所在服务器手动测试ES的连通性,替换你的ES地址和账号密码:

curl -k -u elastic:你的ES密码 https://192.168.40.190:9200/_cluster/health

手动往目标索引写入一条测试数据,验证当前账号是否有写入权限:

curl -k -u elastic:你的ES密码 -XPOST https://192.168.40.190:9200/kafkalog-test/_doc/1 -H 'Content-Type: application/json' -d '{"test":"demo"}'
如果返回created,说明ES侧写入权限完全正常,问题就锁定在Logstash的output配置里的索引名、参数不匹配。

最后查看ES中所有已存在的索引,确认是否已经生成了非预期名称的索引:

curl -k -u elastic:你的ES密码 https://192.168.40.190:9200/_cat/indices?v

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 11:24:19

别再无脑调打码平台了!聊聊 ddddocr 在爬虫验证码识别中的真实边界

写在前面:如果你是被“免费替代打码平台”吸引进来的,请先冷静三秒。ddddocr 确实是一个优秀的开源OCR库,但它不是万能钥匙。在真实的爬虫工程中,验证码识别从来不是“调一个API”就能解决的单点问题,而是图像预处理、…

作者头像 李华
网站建设 2026/7/14 11:24:11

YOLOv8车辆识别系统:七类车型检测与PyQt5界面部署指南

这次我们来看一个基于YOLOv8的七种车辆类型识别检测系统。这个项目由斌擎人工智能团队开源,提供了完整的项目源码、YOLO格式数据集、预训练模型权重以及现代化的PyQt5 UI界面。系统能够识别小型轿车、中型轿车、大型轿车、小型卡车、大型卡车、油罐车和特种车辆等七…

作者头像 李华
网站建设 2026/7/14 11:24:10

WorkshopDL:跨平台Steam创意工坊下载器的技术架构与实现原理

WorkshopDL:跨平台Steam创意工坊下载器的技术架构与实现原理 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否曾为无法在GOG或Epic Games Store上享受Steam创意…

作者头像 李华
网站建设 2026/7/14 11:24:02

从原理到实战:RabbitMQ核心面试题深度剖析与场景应用

1. RabbitMQ核心架构与工作模式RabbitMQ的核心架构由三个关键组件构成:生产者(Producer)、交换机(Exchange)和队列(Queue)。生产者负责发送消息,交换机根据路由规则将消息分发到队列…

作者头像 李华
网站建设 2026/7/14 11:23:37

如何从接口标识和协议名称快速判断U盘速度?

1. 从接口标识快速识别U盘速度等级当你拿起一个U盘时,最先看到的往往是接口处的标识符号。这些看似复杂的字母数字组合,其实是USB-IF(USB开发者论坛)制定的标准命名规则。我经手测试过上百款U盘,发现90%的用户都会忽略…

作者头像 李华