在 Linux 上查看 Kafka 日志,通常分为 Kafka 自身运行日志 和 Kafka 主题消息数据(日志文件) 两种,下面分别说明。
如果你是用官方二进制包安装的 Kafka(非 Docker):
$KAFKA_HOME/logs/
常见日志文件:
server.log:Kafka 服务主日志controller.log:Controller 相关state-change.log:状态变更kafka-authorizer.log:权限相关示例:
cd /opt/kafka/logs
tail -f server.log
在 Kafka 的 log4j 配置 中:
$KAFKA_HOME/config/log4j.properties
例如:
log4j.appender.kafkaAppender.File=/opt/kafka/logs/server.log
如果 Kafka 是用 systemd 管理的:
journalctl -u kafka -f
或:
journalctl -u kafka.service
Kafka 的“日志”在概念上指 topic 的 partition 文件。
默认路径:
/tmp/kafka-logs
如果你改过配置(server.properties):
log.dirs=/data/kafka-logs
查看:
ls /data/kafka-logs
你会看到类似:
topic-name-0/
topic-name-1/
里面的文件:
.log:消息数据.index:偏移量索引.timeindex:时间索引⚠️ 这些是二进制文件,不能直接 cat
用 Kafka 自带工具:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic topic-name \
--from-beginning
# 实时看 Kafka 日志
tail -f $KAFKA_HOME/logs/server.log
# 看最近错误
grep ERROR $KAFKA_HOME/logs/server.log
# 看 topic 是否写入
kafka-topics.sh --list --bootstrap-server localhost:9092
如果是 Docker:
docker logs -f kafka容器名
或:
docker exec -it kafka容器名 bash
cat /opt/kafka/logs/server.log
如果你能告诉我:
我可以直接给你最精确的命令。