Kafka在CentOS系统中的日志位置主要分为两类:服务运行日志(记录broker启动、运行状态及错误信息)和主题数据日志(记录消息的生产、消费等数据流转信息)。
服务运行日志默认存储在Kafka安装目录的logs
子目录下,文件名为server.log
(核心日志文件,包含broker整体运行信息)。具体路径可通过以下两种方式确认:
server.properties
(通常位于config
子目录)中,log.dir
属性指定了日志目录(如log.dir=/usr/local/kafka/logs
);/usr/local/kafka/logs/
或/var/log/kafka/
(部分打包安装(如yum)可能使用后者)。主题数据日志存储在log.dir
属性指定的目录下(即服务运行日志的同级目录),以<topic名称>-<分区编号>.log
的格式命名(如secondtopic-0.log
表示secondtopic
主题的第0分区日志)。这些文件是Kafka存储消息的二进制文件,需通过Kafka工具解析查看。
使用tail -f
命令实时查看server.log
的最新内容(适用于排查broker运行问题,如连接失败、端口占用等):
# 若日志路径为/usr/local/kafka/logs/
tail -f /usr/local/kafka/logs/server.log
# 若日志路径为/var/log/kafka/
tail -f /var/log/kafka/server.log
若遇到权限问题(如提示“Permission denied”),可添加sudo
提升权限:
sudo tail -f /usr/local/kafka/logs/server.log
主题数据日志为二进制格式,需使用Kafka自带的kafka-dump-log.sh
工具解析。步骤如下:
bin
子目录:cd /usr/local/kafka/bin/
kafka-dump-log.sh
命令,指定要查看的日志文件路径(如secondtopic-0/00000000000000000000.log
):./kafka-dump-log.sh --files /usr/local/kafka/logs/secondtopic-0/00000000000000000000.log
该命令会输出日志文件的详细内容(包括消息的offset、timestamp、value等)。sudo
或以root
用户身份运行命令;log.retention.hours
(默认168小时,即7天)自动删除旧日志,如需调整保留时间,可修改server.properties
中的相关配置;server.log
不存在,可能是Kafka服务未启动,可使用systemctl status kafka
检查服务状态。