今天经同事反馈,日志云有日志缺失,于是从源头开始查
1、首先查看原始日志,发现原始日志正常在刷
2、查看filebeat日志,发现连接kafka异常
3、登录kafka manager页面查看,发现确实有个6个broker掉了两个
4、猜测是full gc ,查看kafka日志后发现确实如此
cat kafkaServer-gc.log.4.current|grep -E 2021-03-03T|grep "Full GC"|tail -10
5、先把问题解决、重启kafka节点,但是在时报错Attempt to append an offset (110756715) to position 40111 no larger than the last offset appended (110756715)
这个问题是因为不同kafka节点数据不一致造成的,手动清空报错的目录,然后再次重启
问题暂时解决!
后续:查看kafka的查看启动配置文件,发现堆内存配置为32G,这个值超过了推荐的最大值31G,会导致指针压缩失效的问题,初步猜测full gc与此相关,经讨论后将堆内存改为26G,设想是增加年轻代的回收频率
export KAFKA_HEAP_OPTS = "-Xmx26G -Xms26g"
暂时未出现Full GC ,同时为了以后第一时间响应,添加了Full GC的关键字告警,但是我总有隐隐的担忧,原因是所有机器其实都是32G的配置,为什么只有这台告警,因为还有其他事要忙,就先搁置了
过了一个星期,果然又出现了Full GC关键字告警,这次我们决

本文记录了一次Kafka集群中出现Full GC导致的日志丢失问题。从原始日志检查开始,逐步定位到Kafka broker异常,最终通过调整堆内存配置及深入分析堆内存转储文件解决了问题。
最低0.47元/天 解锁文章
4299

被折叠的 条评论
为什么被折叠?



