前段時間在想Kafka怎麼監控、怎麼知道生產的消息或消費的消費是否有丟失,目前有幾個開源的Kafka監控框架這裡整理了下,不過這幾個框架都有各自的問題側重點不一樣; 1、Kafka Monitor 2、Availability Monitor for Kafka 3、Kafka Web Consol ...
前段時間在想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