在 Linux 上查看 Kafka 日志,通常分两类:Kafka 自身运行日志 和 Kafka 消息数据日志。下面分别说明。
Kafka 使用 log4j 输出运行日志,默认位置取决于安装方式。
# 源码/二进制包安装(常见)
$KAFKA_HOME/logs/
# 常见文件
$KAFKA_HOME/logs/server.log
$KAFKA_HOME/logs/controller.log
$KAFKA_HOME/logs/state-change.log
tail -f $KAFKA_HOME/logs/server.log
grep ERROR $KAFKA_HOME/logs/server.log
journalctl -u kafka -f
这不是“文本日志”,而是 Kafka 存储的消息文件。
查看 server.properties:
cat $KAFKA_HOME/config/server.properties | grep log.dirs
默认如:
log.dirs=/tmp/kafka-logs
ls /tmp/kafka-logs
示例:
test-topic-0
test-topic-1
不要直接 cat 数据文件(二进制),用 Kafka 自带的消费命令:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test-topic \
--from-beginning
只看最近几条:
--max-messages 10
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic __consumer_offsets \
--from-beginning | head
tail -n 200 $KAFKA_HOME/logs/server.log
df -h
du -sh /tmp/kafka-logs/*
在 log4j.properties 中调整:
log4j.appender.kafkaAppender.MaxFileSize=100MB
log4j.appender.kafkaAppender.MaxBackupIndex=10
如果你能告诉我:
我可以给你更精确的命令。