天天看點

[Kafka 基礎]-- 安裝 kafka-manager 監控

一、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 基礎]-- 安裝 kafka-manager 監控

【可選項】也可以自己在 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      
*/5 * * * * sh /opt/soft/kafka-manager/bin/private-restart.sh      

三、使用

  1. 添加 kafka 叢集
  2. 建立、删除和添加 kafka topic 的 partitions
  3. 檢視 topic list
  4. 檢視 consume topic 的延遲狀态
  5. 檢視 kafka group 的 topic