在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
壓縮),防止數據丟失。