logstash异常日志收集
采集logstash容器日志并进行处理
- 前言
- 一、处理方式
- 日志采集流程:
- 处理方案:
- 二、详细配置
- 告警详情
- fluent-bit配置
- 尝试方案
前言
在使用logstash进行日志处理时,发现经常会出现某一个topic消费异常的报错。Record is corrupt (stored crc = 2000910049, computed crc = 1912358942)}
在logstash出现这个报错后,相应的topic就会无法正常消费,kibana上也无法正常查询到相关时间点之后的日志,重启logstash后才会恢复异常。
一、处理方式
日志采集流程:
fluent-bit ——> kafka ——> logstash ——> es ——> kibana
处理方案:
通过网上调研,没有找到相应的处理方法。但是发现通过手动重启logstash就可以恢复对应的日志采集。但是总不能一直看logstash日志看有没有报错吧。
于是,便通过已有的方式采集logstash容器日志并通过日志告警插件进行告警。
二、详细配置
告警详情
如下:
[ERROR][logstash.inputs.kafka ][main][cb3a80073c6ad1403c54fc6cdce0a1c7d4352eb8afa38e0ff9519c07e83e96ce] Unable to poll Kafka consumer {:kafka_error_message=>org.apache.kafka.common.KafkaException: Received exception when fetching the next record from {kafka-topic}-0. If needed, please seek past the record to continue consumption., :cause=>org.apache.kafka.common.KafkaException: Record batch for partition {kafka-topic}-0 at offset 9213518 is invalid, cause: Record is corrupt (stored crc = 1008539063, computed crc = 2600267767)}
fluent-bit配置
input配置如下:
[INPUT]Name tailTag logstash_logPath /var/log/containers/*logstash*.logParser logstash_parserMem_Buf_Limit 10MB[FILTER]Name record_modifierMatch logstash_log
output配置如下:
[OUTPUT]Name kafkaMatch logstash_logBrokers kafka-headless.monitoring.svc.cluster.local:9092Timestamp_Key logstash_local_timeTag_Key logstash_logInclude_Tag_Key OnTopics logstash_log
对应的parser配置如下:
[PARSER]Name logstash_parserFormat regexRegex ^(.*) \[(?[^\]]*)\]\[(?[^\]]*)\]\[(?[^\]]*)\]\[(?[^\]]*)\]\[(?[^\]]*)\] (?.+)$Time_Key logstash_local_timeTime_Format %d/%b/%Y:%H:%M:%S %z
(fluent-bit本地debug调试可参考: fluent-bit本地dubug调试)
至此,已能事实监控到logstash采集异常,但是没有真正处理问题。
尝试方案
发现是由于消费kafka上特定topic异常,怀疑是topic消息增加太快,导致消费速度跟不上。所以尝试将topic增加为3分区(原先只有partition 0)并持续观察消费情况以及logstash异常情况。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
