突然有一天开始ES中索引日志量翻了3-5倍。
查了原因发现是logstash消费超时,数据已消费并写入ES,但未提交offset。
kafka认为这个消费者已死,做rebalance,导致这部分消息被其他logstash重复消费,有好几次,导致ES中有4、5份重复记录。
之前类似的问题也出现过一次,当时调整了logstash的超时时间、批量处理大小限制后恢复了,但这次调整这些参数也没有作用,我观察到的现象是,每天8点、20点都会出现一次这样的情况,不需要调整参数,只要重启logstash就会恢复,然后再到当天的20点或者8点就会再次出现问题。
8点有问题还可以理解,可能是因为索引按天分割是每天8点开始日志写入新索引,但20点出问题就完全不知道有什么可能了。
另外顺带问下,我用的logstash 5.5.2版本,尝试打开debug日志时有这个错误提示:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
看网上说这个是5.5.2的bug,但是我换成5.4.3版本以后还是有这个提示,导致一直没办法开启debug日志查原因。
查了原因发现是logstash消费超时,数据已消费并写入ES,但未提交offset。
kafka认为这个消费者已死,做rebalance,导致这部分消息被其他logstash重复消费,有好几次,导致ES中有4、5份重复记录。
之前类似的问题也出现过一次,当时调整了logstash的超时时间、批量处理大小限制后恢复了,但这次调整这些参数也没有作用,我观察到的现象是,每天8点、20点都会出现一次这样的情况,不需要调整参数,只要重启logstash就会恢复,然后再到当天的20点或者8点就会再次出现问题。
8点有问题还可以理解,可能是因为索引按天分割是每天8点开始日志写入新索引,但20点出问题就完全不知道有什么可能了。
另外顺带问下,我用的logstash 5.5.2版本,尝试打开debug日志时有这个错误提示:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
看网上说这个是5.5.2的bug,但是我换成5.4.3版本以后还是有这个提示,导致一直没办法开启debug日志查原因。
7 个回复
Reilee - 在日devops
赞同来自:
God_lockin
赞同来自:
wangxinrong
赞同来自:
关键出现问题的时候,logstash没有日志没办法根据日志查原因,也不知道怎么参数调优,我试了调整批量处理大小、超时时间等都没有效果,最后发现起效果的只是重启操作。
Reilee - 在日devops
赞同来自:
如果没有指定默认是只log到console
wangxinrong
赞同来自:
Reilee - 在日devops
赞同来自:
这个文件有没有放在 path.config 里?
wangxinrong
赞同来自: