在 Debian 上配置 Kafka 日志(包括 Kafka 自身运行日志 和 Topic 消息日志)通常分为两部分。下面按最常见场景说明。
Kafka 使用 log4j(老版本)或 log4j2(新版本)记录运行日志。
/opt/kafka/config/log4j.properties
# 或
/etc/kafka/log4j.properties
log4j.rootLogger=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/var/log/kafka/kafka.log
log4j.appender.file.MaxFileSize=100MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{1} - %m%n
sudo mkdir -p /var/log/kafka
sudo chown -R kafka:kafka /var/log/kafka
sudo systemctl restart kafka
这是 Kafka 存储消息的地方,不是普通“日志”。
/opt/kafka/config/server.properties
log.dirs=/var/lib/kafka/logs
可配置多个目录(逗号分隔):
log.dirs=/data1/kafka-logs,/data2/kafka-logs
sudo mkdir -p /var/lib/kafka/logs
sudo chown -R kafka:kafka /var/lib/kafka/logs
# 日志保留时间(小时)
log.retention.hours=168
# 日志大小上限
log.retention.bytes=1073741824
# 单 segment 大小
log.segment.bytes=1073741824
如果你用 systemd 启动 Kafka:
journalctl -u kafka -f
可关闭 stdout 日志避免重复:
log4j.rootLogger=INFO, file
| 类型 | 路径 |
|---|---|
| 运行日志 | /var/log/kafka/kafka.log |
| Topic 数据 | /var/lib/kafka/logs |
| systemd 日志 | journalctl -u kafka |
如果你用的是 Debian + Kafka 3.x / 2.x / 用 docker / kraft 模式,可以告诉我,我可以给你更精确的配置。