Linux Kafka日志分析与处理全流程
一 日志类型与存放路径
tail -f $LOG_DIR_ROOT/kafka/server.loggrep -i error server.log、grep -i fatal server.log二 服务日志快速定位与处理
tail -f 观察最新输出。df -h、dmesg I/O 报错),以及 I/O 瓶颈(如 iostat -x 1)。空间不足或慢盘会直接导致写入失败与副本不同步。num.network.threads、num.io.threads 不足)。[ReplicaManager broker=1] Error processing append operation on partition 多与磁盘、配置、Leader/ISR 或客户端大消息相关。三 消息日志取证与段文件分析
kafka-dump-log.sh --files 00000000000000000000.log --print-data-logkafka-dump-log.sh --files 00000000000000000000.log --index-sanity-checkkafka-dump-log.sh --files 00000000000000000000.log --offsets-decoderkafka-dump-log.sh --files 00000000000000000000.log --transaction-log-decoderkafka-dump-log.sh --files 00000000000000000000.log --verify-index-onlykafka-run-class.sh kafka.tools.DumpLogSegments 完成同类操作。四 日志保留 轮转 与监控告警
log.retention.hours / minutes / mslog.retention.byteslog.cleanup.policy=compact 或 delete;压缩类型 GZIP/Snappy/LZ4(通过 log.compression.type 等配置)。log.segment.bytes 控制段大小,影响滚动与清理效率。/etc/logrotate.d/kafka:/var/log/kafka/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 root root
sharedscripts
postrotate
[ ! -f /var/run/kafka.pid ] || kill -USR1 `cat /var/run/kafka.pid`
endscript
}
df -h 检查日志盘空间,避免因磁盘满导致 Broker 异常。五 一键排查命令清单
tail -f $LOG_DIR_ROOT/kafka/server.loggrep -i error server.log、grep -i fatal server.logdf -h、dmesg | tail、iostat -x 1netstat -tulpen | grep 9092、telnet <broker_ip> 9092 或 nc -vz <broker_ip> 9092kafka-topics.sh --describe --topic <topic> --bootstrap-server <broker>kafka-dump-log.sh --files <segment>.log --print-data-logkafka-dump-log.sh --files <segment>.log --index-sanity-checkgrep -E '^(log\.dirs|log\.segment\.bytes|log\.retention\.(ms|bytes)|log\.cleanup\.policy|message\.max\.bytes|max\.request\.size)' config/server.propertiessudo systemctl restart kafka(处置根因后执行,并复核日志输出)