Kafka的日志分为两类:服务运行日志(记录Broker运行状态、错误信息)和Topic数据日志(记录消息的存储内容)。
/var/log/kafka/目录下,主日志文件为server.log(可通过server.properties中的log.dirs配置自定义路径)。log.dirs配置的目录下(如/tmp/kafka-logs或自定义路径),文件命名规则为<topic-name>-<partition-id>.log(如secondtopic-0/00000000000000000000.log)。服务运行日志包含Broker的启动、停止、错误信息,是故障排查的核心依据。使用以下命令查看:
sudo tail -f /var/log/kafka/server.log sudo tail -n 500 /var/log/kafka/server.log # 查看最后500行 sudo grep "ERROR" /var/log/kafka/server.log # 筛选错误信息 Topic数据日志存储了消息的二进制内容,需使用Kafka自带的kafka-dump-log.sh或kafka-run-class.sh工具解析。
/usr/local/kafka或/opt/kafka):cd /usr/local/kafka bin/kafka-dump-log.sh --files /path/to/kafka-logs/your-topic-name/your-partition-id/*.log --print-data-log 示例(查看secondtopic-0分区的第一条日志):bin/kafka-dump-log.sh --files /app/kafka/kafka-logs/secondtopic-0/00000000000000000000.log --print-data-log bin/kafka-dump-log.sh --files /path/to/kafka-logs/your-topic-name/your-partition-id/*.log --start-offset 100 --end-offset 200 若需更直观地查看Topic中的消息,可使用kafkacat(命令行工具)或Kafka Tool(图形化工具)。
sudo apt install kafkacat kafkacat -b localhost:9092 -t your_topic_name -o end # -o end表示从最新消息开始 kafkacat -L -b localhost:9092 -t your_topic_name systemctl管理,确保服务处于运行状态:sudo systemctl status kafka # 检查状态 sudo systemctl start kafka # 启动服务(若未运行) sudo提升权限,或调整日志目录的权限(如sudo chmod -R 755 /var/log/kafka)。通过以上方法,可全面查看Ubuntu上Kafka的服务日志和Topic数据日志,快速定位问题或分析消息内容。