ELK:Logstash kafka处理超大消息导致的消费异常

记录下logstash kafka消费异常的问题

叮~~,您的告警信息已到账,请查收

最近开始使用ELK,日志已经上传到Kafka中,Logstash需要从Kafka读取数据,按找官网配置,运行切正常,告警是什么原因导致的呢?本地测试的时候也没有出现任何告警的情况。

运行logstash

./logstash -f logstash-2.3.4.conf -w 4 -b 2000 

这是什么异常啊

Kafka::Consumer caught exception: Java::JavaLang::IllegalStateException
Iterator is in failed state

度娘一番后

./logstash -f logstash-2.3.4.conf -w 4 -b 2000 | grep MessageSizeTooLargeException

对,就是MessageSizeTooLargeException这个异常,只不过被刷刷刷刷刷掉了

那么MessageSizeTooLargeException为什么会出现呢?本地测试的时候并没有这样的问题。

咨询了公司同事:这个说明消息太大,要增加consumer fetch size

kafka中设置下面一些参数:

broker 配置:
message.max.bytes (默认:1000000) – broker能接收消息的最大字节数,这个值应该比消费端的fetch.message.max.bytes更小才对,否则broker就会因为消费端无法使用这个消息而挂起。
log.segment.bytes (默认: 1GB) – kafka数据文件的大小,确保这个数值大于一个消息的长度。一般说来使用默认值即可(一般一个消息很难大于1G,因为这是一个消息系统,而不是文件系统)。
replica.fetch.max.bytes (默认: 1MB) – broker可复制的消息的最大字节数。这个值应该比message.max.bytes大,否则broker会接收此消息,但无法将此消息复制出去,从而造成数据丢失。

consumer 配置:
fetch.message.max.bytes (默认 1MB) – 消费者能读取的最大消息。这个值应该大于或等于 message.max.bytes

logstash的配置为
fetch_message_max_bytes

配置完后运行就正常啦。

参考博客:Logstash 参考指南(Kafka输入插件)
参考博客:kafka中处理超大消息的一些处理

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值