在 Linux 上查看 Kafka 日志,通常分两种情况:Kafka 自身运行日志 和 Kafka Topic 消息日志。下面按常见场景说明。
Kafka 使用 log4j(老版本)或 log4j2 / reload4j(新版本)输出日志。
通常在 Kafka 安装目录下:
cd $KAFKA_HOME/logs
ls
常见文件:
server.log:Kafka 主服务日志(最重要)controller.log:控制器相关state-change.log:状态变更kafka-authorizer.log:权限相关tail -f $KAFKA_HOME/logs/server.log
grep ERROR $KAFKA_HOME/logs/server.log
在配置文件中:
vi $KAFKA_HOME/config/server.properties
相关配置:
log.dirs=/data/kafka-logs
⚠️ 注意:log.dirs 是 消息日志目录,不是运行日志目录。
log.dirs=/data/kafka-logs
查看某个 topic:
ls /data/kafka-logs | grep my-topic
目录结构示例:
my-topic-0/
my-topic-1/
不能直接 cat 文件(是二进制),要用 Kafka 自带工具:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic my-topic \
--from-beginning
只查看最新消息:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic my-topic
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic my-topic \
--partition 0 \
--from-beginning
如果是系统服务方式启动:
journalctl -u kafka -f
或:
systemctl status kafka
# 查看 broker 是否启动
jps | grep Kafka
# 查看 topic 列表
kafka-topics.sh --bootstrap-server localhost:9092 --list
# 查看 topic 详情
kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic my-topic
| 问题 | 看哪里 |
|---|---|
| Kafka 启不来 | server.log |
| 消费者消费不到 | server.log + consumer 日志 |
| 消息丢失 | topic 日志 + offset |
| 磁盘满 | log.dirs 目录 |
如果你愿意,可以告诉我:
我可以给你更精确的命令。