一、Kafka 監控工具介紹
目前還沒有一款公認比較優秀的 Kafka 監控工具,各有各的好,我們可以針對自己需要去選擇,但是如果你是 Kafka 集羣運維操作人員,還是推薦先用 Kafka Manager 來做監控。
1.Kafka Manager
- 雅虎公司開源的免費監控框架
- Scala 編寫的
- 國內外最受歡迎的、社區非常活躍
- 功能非常齊全且 UI 界面可執行一些簡單的集羣管理操作
2.Burrow
- 2017 年開源的免費監控框架
- Go 編寫的
- 專門監控消費者信息
- 部署不方便、社區不太活躍
- 無 UI 界面,不方便運維操作
3.Kafka Monitor
- 用於 Kafka 集羣系統性測試
- Kafka 社區團隊人員編寫的免費監控框架,質量有保障
- 社區不太活躍
4.Kafka Offset Monitor
- 免費的監控框架
- 監控消費者位移
- UI 界面非常簡潔、美觀漂亮
- 國內受歡迎、現在社區不活躍了
5.Kafka Eagle
- 中國人開源的免費監控框架
- Java 編寫
- 部署方便、社區活躍也不高、維護的人少
- UI 界面很簡潔、美觀,可執行一些簡單的集羣管理操作、還有監控告警
6.Confluent Control Center
- 商業收費
- 功能最齊全
- 專業
二、安裝和部署
1、環境準備
centos 7、oracle jdk-1.8.45、scala-2.11.8、kafka-manager-2.0.0.0(支持 kafka-2.2.0)
2、安裝
2.1 下載&解壓
由於官方未提供編譯好的二進制包,所以需要用戶自己編譯。但是,不用擔心,因爲已經有大佬編譯好了。
二進制包(已經編譯好)https://blog.wolfogre.com/posts/kafka-manager-download/
$ cd /opt/soft
$ wget https://github.com/wolfogre/kafka-manager-docker/releases/download/2.0.0.0/kafka-manager-2.0.0.0.zip
$ unzip kafka-manager-2.0.0.0.zip
2.2 配置
修改配置:conf/application.conf ,需要修改的地方如下
- play.http.session.maxAge="365d"
- kafka-manager.zkhosts="zkhost1:2181,zkhost2:2181"
- basicAuthentication.enabled=true
- basicAuthentication.username="admin"
- basicAuthentication.password="input_your_password"
2.3 啓動
指定配置文件位置和啓動端口號,默認爲9000
./bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=6666 >> logs/kafka-manager.logs &
執行 start 命令後,檢查 kafka-manager 是否已經啓動。
如果已經啓動,先使用 IE 瀏覽器(其他瀏覽器也可以)訪問。
http://172.16.5.128:6666
【可選項】也可以自己在 kafka-manager/bin 下創建重啓的腳本:private-restart.sh
############################################################
#
# Notice: start the kafka-manager server, if the server is started ,we don't start else do.
#
############################################################
# 1 kafka dir
kafka_home=/opt/soft/kafka-manager/
kafka_http_port=6666
kafka_log=${kafka_home}/logs/kafka-manager.logs
kafka_restart_log=${kafka_home}/logs/kafka-manager-restart.logs
# 2 get the pid of kafka-manager process
pid_kafka_manager=`ps -ef |grep kafka-manager|grep http.port=6666|awk '{print $2}'`
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ----- kafka manager is alive , the pid is [${pid_kafka_manager}] . -----">>${kafka_restart_log}
# 3 judgement the pid alive or not
if [ ! -n "$pid_kafka_manager" ]
then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ----- kafka manager is died out ,we will restart it . -----" >> ${kafka_restart_log}
${kafka_home}/bin/kafka-manager -Dconfig.file=${kafka_home}/conf/application.conf -Dhttp.port=${kafka_http_port} >> ${kafka_log} &
new_pid_kafka_manager=`ps -ef |grep kafka-manager|grep http.port=7778|awk '{print $2}'`
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ----- kafka manager is alive all blood , the pid is [${new_pid_kafka_manager}] . -----">>${kafka_restart_log}
fi
並添加定時檢查是否還 alive
$ crontab -e
*/5 * * * * sh /opt/soft/kafka-manager/bin/private-restart.sh
三、使用
按照 github 上, kafka-manager 指南操作即可:https://github.com/yahoo/kafka-manager
- 添加 kafka 集羣
- 創建、刪除和添加 kafka topic 的 partitions
- 查看 topic list
- 查看 consume topic 的延遲狀態
- 查看 kafka group 的 topic