在Debian系统上,Kafka的日志文件位置主要由配置文件和启动脚本决定,常见路径包括:
/var/log/kafka/(如server.log,记录Broker核心日志)、/opt/kafka/logs/(部分自定义安装可能使用);/etc/kafka/server.properties)中的log.dirs属性查看(如log.dirs=/data/kafka/logs),该属性定义了Kafka日志文件的存储目录。cat命令输出日志文件全部内容(适合小文件):cat /var/log/kafka/server.log
tail -f命令实时查看日志新增内容(适合故障排查,按Ctrl+C退出):tail -f /var/log/kafka/server.log
less命令分页浏览日志(支持上下翻页、搜索,按q退出):less /var/log/kafka/server.log
grep和awk筛选指定时间范围的日志(如最近1小时):grep "$(date -d '1 hour ago' '+%b %d %H:%M')" /var/log/kafka/server.log
bin目录(通常为/usr/bin/或/opt/kafka/bin/),运行kafka-log-dirs.sh脚本查看日志目录信息(需指定ZooKeeper地址):./kafka-log-dirs.sh --describe --zookeeper localhost:2181
该命令会输出每个日志目录的最新偏移量、日志大小等信息。kafka-console-consumer.sh脚本直接消费主题消息(从最早消息开始,--bootstrap-server指定Broker地址):./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic your_topic_name --from-beginning
将your_topic_name替换为目标主题名称。Kafka的日志文件(如.log、.index、.timeindex)为二进制格式,需使用kafka-dump-log.sh脚本解析:
.log文件内容(包含消息的时间戳、偏移量、内容):./kafka-dump-log.sh --files /data/kafka/logs/your_topic-0/00000000000000000000.log
.index文件(记录消息偏移量索引):./kafka-dump-log.sh --files /data/kafka/logs/your_topic-0/00000000000000000000.index
.timeindex文件(记录消息时间戳索引):./kafka-dump-log.sh --files /data/kafka/logs/your_topic-0/00000000000000000000.timeindex
sudo提升权限,如sudo tail -f /var/log/kafka/server.log);server.log)可能增加系统负载,建议在低峰期操作;tar压缩),防止数据丢失。