ELK日志缺失问题排查-Logstash消费过慢问题

elk,日志,缺失,问题,排查,logstash,消费,过慢 · 浏览次数 : 155

小编点评

**推荐日志收集流程分析** **步骤 1:数据收集** * 线上机器日志通过 ELK 集群收集到 Flume 中。 **步骤 2:数据传输** * Flume 将日志数据传输到 Kafka 中。 **步骤 3:数据处理** * Kafka 数据通过 Logstash 进行处理,并写入 Elasticsearch 中。 **步骤 4:数据索引** * Elasticsearch 中的索引允许快速搜索和检索日志数据。 **步骤 5:日志分析** * 用户可以通过 ES 管理页面或 Kibana 等工具分析日志数据。 **缺失日志分析** 缺失日志主要导致于以下原因: * 线上机器日志收集频率低,导致日志数据之间存在空缺。 * Logstash 配置中设置的 `max.poll.interval.ms` 可能过低,导致 Logstash 频繁触发 rebalance。 * Logstash 中的索引可能存在问题,导致查询效率下降。 **解决方案** * 确保日志收集频率和 Logstash 配置中的 `max.poll.interval.ms` 设置正确。 * 调整 Logstash 的索引配置,例如 `min_df` 和 `chunk_size`。 * 考虑使用缓存机制或数据预处理技术来提高日志数据的可靠性。

正文

1. 背景

另外一个推荐系统的推荐请求追踪日志,通过ELK收集,方便遇到问题时,可以通过唯一标识sid来复现推荐过程

在一次上线之后,发现日志大量缺失,缺失率达90%,确认是由上线引起的,但因为当时没立即发现这个问题,所以没有通过回滚解决

上线的内容改动了推荐请求日志,数据格式未变,增加了单条日志的大小,估计有10~20%的增长

2. 分析

推荐日志的整个收集流程如下:

flowchart LR 线上机器日志 --> 平台Flume --> Kafka --> Logstash --> ES

2.1 版本信息

Flume: 未知
Kafka: 2.4.0
ELK: 6.8

2.2 ELK排查-日志和配置

  1. 排查确认ELK日志无报错
  2. Logstash配置也没有问题
  3. 本地启动Logstash也无报错

2.2 Kafka排查-Kafka数据是否丢失

  1. Kafka写入Hive确认无丢失

2.3 继续ELK排查-消费不动

在本地启动Logstash过程中发现ES的写入量增加了

于是怀疑是Logstash消费能力不足,于是让DB同学调整了参数Kafka input插件配置consumer_thread,修改后启动报错,于是又改回来

改回来重启之后的Logstash开始消费Kafka的数据,且消费速度很快,因为之前已经堆积了很多消息,但在半个小时之后,消费速度再次降到0附近

image.png

2.4 后续修改-无效

后来DB同学在Logstash中看到了报错

Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that the time between subsequent calls to poll() was longer than the configured max.poll.interval.ms, which typically implies that the poll loop is spending too much time message processing. You can address this either by increasing the session timeout or by reducing the maximum size of batches returned in poll() with max.poll.records.

看起来报错和下面文章中一致,于是按照使用Kafka时一定要注意防止消费速度过慢触发rebalance而导致的重复消费做了下述修改,均无效果

  1. 升级集群,提供消费能力
  2. 使用新的group,意味着抛弃了堆积的数据
  3. 调整max.poll.interval.ms和max.poll.records,减少一批次拉取的数据

2.4 继续排查-日志格式问题

DB同学怀疑是日志格式或者是日志过大的问题,但也没有具体的bad case,后来提出,这个集群的单条日志是比之前排查的集群小很多的,但之前排查的集群数据已无缺失(整体数据量现在排查的集群更大一些)

对比之后发现两个集群ELK版本不同,目前排查的集群版本为6.8,而之前的是7.17,所以想尝试用7.17版本的Logstash写入6.8版本的ES

问题得以解决,虽然解决了问题,但由于Logstash版本跨度太大且Kafka Input插件也跨很多版本,所以无法得知原因

2.5 为何没有立即回滚

  1. 虽然是修改日志引发的问题,但这个修改也是一个修复,更希望能保留下来,最坏的打算是回滚
  2. 有紧急的查日志的需求,可以去Hive查,虽然不如Kibana使用的方便,但能提供足够的信息

3. 总结

最终通过升级Logstash的版本,从6.8改为7.17,解决了消费速度过慢的问题

与ELK日志缺失问题排查-Logstash消费过慢问题相似的内容:

ELK日志缺失问题排查-Logstash消费过慢问题

1. 背景 另外一个推荐系统的推荐请求追踪日志,通过ELK收集,方便遇到问题时,可以通过唯一标识sid来复现推荐过程 在一次上线之后,发现日志大量缺失,缺失率达90%,确认是由上线引起的,但因为当时没立即发现这个问题,所以没有通过回滚解决 上线的内容改动了推荐请求日志,数据格式未变,增加了单条日志的

ELK日志缺失问题排查-多行日志聚合Logstash配置问题

1. 背景 推荐系统的推荐请求追踪日志,通过ELK收集,方便遇到问题时,可以通过唯一标识sid来复现推荐过程 最近在碰到了几个bad case,需要通过sid来查询推荐日志,但发现部分无法在kibana查询到 2. 分析 推荐日志的整个收集流程如下: flowchart LR 线上机器日志 -->

[转帖]Redis cluster故障复盘,预案、工具、判断一样都不能少!

http://blog.itpub.net/31545813/viewspace-2924677/ 背景 最近从ELK日志分析发现: 有很多应用连接redis 超时; 监控平台出现”redis 集群不健康“告警; 结合之前的经验,我们一般的应处理手段为:重启连接redis超时的应用,原因有以下两点:

[转帖]新版 Elasticsearch 中的强悍插件 X-pack

https://zhuanlan.zhihu.com/p/36337697 3 人赞同了该文章 作者:Alan 岂安科技运维工程师努力踏上一条为后人留坑的运维之路。(逃 1 前言 Elk 日志可视化管理系是目前比较主流的一套日志管理工具。对日志查找,阅读、收集都非常方便。所以今天的正文来了,今天文章

使用docker搭建ELK分布式日志同步方案

ELK作为业界最常用日志同步方案,我们今天尝试一下使用docker快速搭建一套ELK方案。ELK使用国内加速源拉取的镜像比较旧,有条件的朋友可以拉取官网的源。elasticsearch作为日志储存库(数据库),kibana的作用通过elasticsearch的API接口调取其中数据作可视化分析,lo

[转帖]Kibana查询语言(KQL)

时间 2020-12-27 标签 html java 数据库 ide ui 翻译 日志 htm 对象 blog 栏目 HTML 繁體版 原文 https://www.cnblogs.com/-beyond/p/14159002.html 一.前言 如今大多数的公司都会使用ELK组合来对日志数据的收集

ELKF(elasticsearch、logstash、kibana、filebeat)搭建及收集nginx日志

1、elasticsearch 1.1、根目录下新建data文件夹 1.2、修改elasticsearch.yml文件,添加以下内容 path.data: /home/wwq/elk/elasticsearch-8.13.4/data path.logs: /home/wwq/elk/elastic

[转帖]比快更快的 ELK 8 安装使用指南-Elasticsearch,Kibana,Logstash

https://juejin.cn/post/7133907643386560519 携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情 Elastic 8 的新特性 Elastic 8.0 版号称 比快更快 ,其新特性可参考 Elastic 官方博客:

ELK Stack - Elasticsearch · 搜索引擎 · 部署应用 · 内部结构 · 倒排索引 · 服务接入

ELK Stack, Elasticsearch, 搜索引擎, 全文检索, 特点与应用及场景, Linux部署, Docker 容器部署, 工具与插件, ES内部特征, 索引 Index, 文档数据 Doc, 分词器 analyzer, 倒排索引 inverted index, ES执行过程, ES...

[转帖]ELKStack入门篇(一)之ELK部署和使用

ELKStack入门篇(一)之ELK部署和使用 https://www.cnblogs.com/linuxk/p/9272965.html 一、ELKStack简介 1、ELK介绍 中文指南:https://www.gitbook.com/book/chenryn/elk-stack-guide-c