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  

  啟動端到端監控Kafka集群:

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

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

  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 編譯生成,下載依賴會比較久

Availability Monitor for Kafka

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

  AvailabilityMonitor可監控發送與讀取數據的可用性、延遲;
  Producer可用性=所有主題和分區成功發送消息數/嘗試發送消息數
  Consumer可用性=所有主題和分區消息成功讀取數/消息嘗試讀取數
  通過往Producer發送數據測試Producer的可用性與延遲,消息以CanaryMessage_為前綴,可以通過producerProperties.json修改;

  通過從所有分區的尾部讀取數據來衡量Consumer的可用性與延遲


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM