轉(zhuǎn)自:http://top.jobbole.com/31084/
在之前的博客中,介紹了Kafka Web Console這個(gè)監(jiān)控工具,在生產(chǎn)環(huán)境中使用,運(yùn)行一段時(shí)間后,發(fā)現(xiàn)該工具會(huì)和Kafka生產(chǎn)者、消費(fèi)者、ZooKeeper建立大量連接,從而導(dǎo)致網(wǎng)絡(luò)阻塞。并且這個(gè)Bug也在其他使用者中出現(xiàn)過,看來使用開源工具要慎重!該Bug暫未得到修復(fù),不得已,只能研究下其他同類的Kafka監(jiān)控軟件。
通過研究,發(fā)現(xiàn)主流的三種kafka監(jiān)控程序分別為:
Kafka Web Conslole
Kafka Manager
KafkaOffsetMonitor
現(xiàn)在依次介紹以上三種工具:
Kafka Web Conslole
使用Kafka Web Console,可以監(jiān)控:
Brokers列表
Kafka 集群中 Topic列表,及對應(yīng)的Partition、LogSiz e等信息
點(diǎn)擊Topic,可以瀏覽對應(yīng)的Consumer Groups、Offset、Lag等信息
生產(chǎn)和消費(fèi)流量圖、消息預(yù)覽…

程序運(yùn)行后,會(huì)定時(shí)去讀取kafka集群分區(qū)的日志長度,讀取完畢后,連接沒有正常釋放,一段時(shí)間后產(chǎn)生大量的socket連接,導(dǎo)致網(wǎng)絡(luò)堵塞。
Kafka Manager
雅虎開源的Kafka集群管理工具:
管理幾個(gè)不同的集群
監(jiān)控集群的狀態(tài)(topics, brokers, 副本分布, 分區(qū)分布)
產(chǎn)生分區(qū)分配(Generate partition assignments)基于集群的當(dāng)前狀態(tài)
重新分配分區(qū)

KafkaOffsetMonitor
KafkaOffsetMonitor可以實(shí)時(shí)監(jiān)控:
Kafka集群狀態(tài)
Topic、Consumer Group列表
圖形化展示topic和consumer之間的關(guān)系
圖形化展示consumer的Offset、Lag等信息

總結(jié)
通過使用,個(gè)人總結(jié)以上三種監(jiān)控程序的優(yōu)缺點(diǎn):
Kafka Web Console:監(jiān)控功能較為全面,可以預(yù)覽消息,監(jiān)控Offset、Lag等信息,但存在bug,不建議在生產(chǎn)環(huán)境中使用。
Kafka Manager:偏向Kafka集群管理,若操作不當(dāng),容易導(dǎo)致集群出現(xiàn)故障。對Kafka實(shí)時(shí)生產(chǎn)和消費(fèi)消息是通過JMX實(shí)現(xiàn)的。沒有記錄Offset、Lag等信息。
KafkaOffsetMonitor:程序一個(gè)jar包的形式運(yùn)行,部署較為方便。只有監(jiān)控功能,使用起來也較為安全。
若只需要監(jiān)控功能,推薦使用KafkaOffsetMonito,若偏重Kafka集群管理,推薦使用Kafka Manager。
因?yàn)槎际情_源程序,穩(wěn)定性欠缺。故需先了解清楚目前已存在哪些Bug,多測試一下,避免出現(xiàn)類似于Kafka Web Console的問題。