關於Kafka監控方案的討論


之前在知乎上嘗試過回答這個問題,后來問的人挺多,干脆在博客里面保存一下。


目前Kafka監控方案看似很多,然而並沒有一個“大而全”的通用解決方案。各家框架也是各有千秋,以下是我了解到的一些內容:

Kafka manager

Github地址: https://github.com/yahoo/kafka-manager。 這款監控框架的好處在於監控內容相對豐富,既能夠實現broker級常見的JMX監控(比如出入站流量監控),也能對consumer消費進度進行監控(比如lag等)。另外用戶還能在頁面上直接對集群進行管理,比如分區重分配或創建topic——當然這是一把雙刃劍,好在kafka manager自己提供了只讀機制,允許用戶禁掉這些管理功能。

Kafka Monitor

Github地址:https://github.com/linkedin/kafka-monitor。 這款監控框架更多的是關注對Kafka集群做端到端的整體系統測試,並產出各種系統級的監控指標,比如端到端的延時,整體消息丟失率等。對於新搭建的Kafka線上集群,使用Kafka Monitor做個整體測試有助於你了解該集群整體的一些性能,但若是用於日常監控該框架便有些不便了,需要自己修改webapp/index.html中的監控指標,流程上有些不太友好。不過這款框架的優勢是其主要貢獻者是LinkedIn的lindong(Kafka 1.0.0版本中正式支持JBOD就是lindong開發的),質量上應該是有保證的。

 

Kafka Offset Monitor

Github地址:https://github.com/quantifind/KafkaOffsetMonitor。 KafkaOffsetMonitor應該算比較早的監控框架了,有着很酷的UI,使用者也是很多。但其比較大的劣勢是對新版本consumer和security的支持,另外該項目已經近2年未維護了,其主力開發甚至是另起爐灶,重新寫了一個新的KafkaOffsetMonitor來支持新版本consumer——https://github.com/Morningstar/kafka-offset-monitor。不過目前該項目star數很少,應該沒有大規模應用,到底是否適用於生產環境需要用戶自行判斷

 

Burrow

Github地址: https://github.com/linkedin/Burrow。 Burrow是LinkedIn開源的一款專門監控consumer lag的框架。事實上,當初其開源時我對它還是期待挺高的,不過令人遺憾地是后勁不足,發展得非常緩慢,而且這款框架是用Go寫的,安裝時要求必須有Go運行環境,故Burrow在普及上不如其他框架。Burrow沒有UI界面,只開放了很多HTTP endpoint,這對於想偷懶的運維來說更是一個減分項。總之它的功能目前十分有限,普及率和知名度都是比較低的。不過好處是該項目主要貢獻者是LinkedIn團隊維護Kafka集群的主要負責人,故質量上是很有保證的

 

JMXTrans + InfluxDB + Grafana

這實際上是一套監控框架的組合。有着非常非常炫酷的UI效果,極其適合向領導展示。具體搭建方法網上有很多教程,可以參考下。這里就不再贅述了。

 

總之,目前Kafka的監控並沒有“放之四海而皆准”的解決方案,應該說每種框架都有自己獨到的地方。用戶需要結合自身監控需求選擇適合的監控框架~


免責聲明!

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



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