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檢查服務狀態。