Linux Kafka日志管理实战指南
一 核心概念与目录
二 消息日志保留与清理策略
三 运行日志轮转与系统日志
/var/log/kafka/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 kafka kafka
sharedscripts
postrotate
# 若使用 systemd,推荐用 systemctl reload kafka.service
# systemctl reload kafka.service >/dev/null 2>&1 || true
# 如以 PID 文件方式运行,可按需 kill -USR1 触发重开
[ -f /var/run/kafka.pid ] && kill -USR1 $(cat /var/run/kafka.pid) || true
endscript
}
四 常用操作命令与验证
bin/kafka-configs.sh --bootstrap-server <broker:9092> \
--alter --entity-type topics --entity-name <topic> \
--add-config retention.ms=86400000
bin/kafka-configs.sh --bootstrap-server <broker:9092> \
--describe --entity-type topics --entity-name <topic>
bin/kafka-topics.sh --bootstrap-server <broker:9092> \
--alter --topic <topic> --config cleanup.policy=delete
五 生产环境推荐配置示例
# 多盘分布示例:/data1,/data2
log.dirs=/data1/kafka,/data2/kafka
# 保留策略:7天或1GB(按先到者)
log.retention.hours=168
log.retention.bytes=1073741824
log.retention.check.interval.ms=300000
# 分段与滚动
log.segment.bytes=1073741824
log.roll.hours=168
# 清理策略:常规 delete;如需压缩主题再设为 delete,compact
log.cleanup.policy=delete
log.cleaner.enable=true
file.delete.delay.ms=60000
kafka.logs.dir=/var/log/kafka
log4j.rootLogger=INFO, default
log4j.appender.default=org.apache.log4j.RollingFileAppender
log4j.appender.default.File=${kafka.logs.dir}/server.log
log4j.appender.default.MaxFileSize=100MB
log4j.appender.default.MaxBackupIndex=10
log4j.appender.default.layout=org.apache.log4j.PatternLayout
log4j.appender.default.layout.ConversionPattern=[%d] %p %m (%c)%n