在 Linux 上查看 Kafka 日志,通常分为 Kafka 自身运行日志 和 Kafka 数据日志(消息日志) 两类,下面按常见场景详细说明。
这是 Kafka 进程本身产生的日志,用于排查启动、连接、异常等问题。
Kafka 日志目录由 log4j 配置决定,默认通常在:
cd $KAFKA_HOME/logs
常见文件:
server.log # Kafka 主进程日志(最重要)
state-change.log
controller.log
kafka-authorizer.log
查看方式:
tail -f server.log
或查看最近 200 行:
tail -n 200 server.log
如果是 systemd 管理:
journalctl -u kafka -f
或指定行数:
journalctl -u kafka -n 200
如果不确定日志在哪:
ps -ef | grep kafka
或查看配置文件:
grep -R "log4j" $KAFKA_HOME/config/
常见配置文件:
$KAFKA_HOME/config/log4j.properties
示例内容:
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log
这是 Kafka 真正存储消息的日志文件,不是“文本日志”。
由 server.properties 决定:
grep "log.dirs" $KAFKA_HOME/config/server.properties
默认通常是:
/tmp/kafka-logs
或:
/var/lib/kafka/data
kafka-logs/
├── topic1-0/
│ ├── 00000000000000000000.log
│ ├── 00000000000000000000.index
│ ├── 00000000000000000000.timeindex
├── topic1-1/
⚠️ 注意:
这些 .log 文件是 二进制文件,不能直接 cat 查看。
使用 Kafka 自带工具:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test-topic \
--from-beginning
查看最近 10 条:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test-topic \
--from-beginning \
--max-messages 10
tail -f server.log
journalctl -u kafka -f
kafka-console-consumer.sh --topic xxx --from-beginning
kafka-topics.sh --bootstrap-server localhost:9092 --list
| 类型 | 作用 | 查看方式 |
|---|---|---|
| server.log | Kafka 运行日志 | tail -f server.log |
| systemd 日志 | 服务状态 | journalctl -u kafka |
| topic 数据日志 | 消息存储 | kafka-console-consumer |
| 数据目录 | 消息文件 | log.dirs 配置 |
如果你愿意,可以告诉我:
我可以给你更精确的命令。