1. 程式人生 > >Kafka監控框架介紹

Kafka監控框架介紹

前段時間在想Kafka怎麼監控、怎麼知道生產的訊息或消費的消費是否有丟失,目前有幾個開源的Kafka監控框架這裡整理了下,不過這幾個框架都有各自的問題側重點不一樣;

1、Kafka Monitor
2、Availability-Monitor-for-Kafka
3、Kafka Web Console
4、Kafka Manage
5、KafkaOffsetMonitor

kafka-monitor

git clone https://github.com/linkedin/kafka-monitor.git  
cd kafka-monitor  
./gradlew jar    //下載依賴,這個會比較久編譯原始碼  

啟動KafkaMonitor

./bin/kafka-monitor-start.sh config/kafka-monitor.properties  

84976-20170124093308112-1034867642.png

  啟動端到端監控Kafka叢集:

 ./bin/end-to-end-test.sh --topic test --broker-list localhost:9092 --zookeeper localhost:2181

  開啟監控頁面:http://localhost:8000/index.html 頁面顯示 kafka實時的度量監控值(例如,服務可用性,訊息丟失率)動態圖顯示
  84976-20170124093323675-1436112303.png

  Kafka-monitor把度量監控資訊寫入JMX中,並使用jolokia框架所以可以通過http請求獲取監控的度量值;

curl localhost:8778/jolokia/read/kmf.services:type=produce-service,name=*/produce-availability-avg

  Kafka-monitor與Kafka為同根同源的都是LinkedIn公司開源的不過Kafka-minitor剛開源沒半年所有功能相對於其他監控框架來說比較簡單;
  kafka-monitor啟動後會啟動一個produce、一個consume,broker過時時間為10分鐘; 用於捕獲服務的可用性、訊息丟失率、延遲率等,可監控叢集與單個kafka;
  kafka-monitor預設自動建立監控topic,可以修改為已經存在的topic,自動增加partition,確保監控topic的partition# >= broker#
  produce用於生成訊息到kafka,併產生生成速率、可用性度量資料
  consume從kafka中消費訊息,併產生訊息丟失率、訊息重複率、端到端延遲 依賴生產服務來提供訊息內嵌的訊息序列號和時間戳。

KafkaManager

  KafkaManager為Yahoo開源的KafkaManager管理工具, 可管理多個叢集; 能夠更容易地檢查叢集的狀態, 能夠建立主題, 執行首選的副本選擇,能夠基於叢集當前的狀態生成分割槽分配,並基於生成的分配執行分割槽的重分配 檢查叢集狀態可以發現叢集中主題分佈不均勻、分割槽分佈不均勻等,

KafkaManager 編譯生成,下載依賴會比較久
84976-20170124093416237-478016131.png

Availability Monitor for Kafka

  Availability Monitor for Kafka微軟開源的Kafka可用性、延遲性的監控框架,提供JMX介面,並可存入SqlServer;

  AvailabilityMonitor可監控傳送與讀取資料的可用性、延遲;
  Producer可用性=所有主題和分割槽成功傳送訊息數/嘗試傳送訊息數
  Consumer可用性=所有主題和分割槽訊息成功讀取數/訊息嘗試讀取數
  通過往Producer傳送資料測試Producer的可用性與延遲,訊息以CanaryMessage_為字首,可以通過producerProperties.json修改;

  通過從所有分割槽的尾部讀取資料來衡量Consumer的可用性與延遲

84976-20170124093456675-1680408312.png
84976-20170124093511628-2046090271.png

文章首發地址:Solinx
http://www.solinx.co/archives/851