Kafka Web Console:監控功能較為全面,可以預覽消息,監控Offset、Lag等信息,但存在bug,不建議在生產環境中使用。
Kafka Manager:偏向Kafka集群管理,若操作不當,容易導致集群出現故障。對Kafka實時生產和消費消息是通過JMX實現的。沒有記錄Offset、Lag等信息。
KafkaOffsetMonitor:程序一個jar包的形式運行,部署較為方便。只有監控功能,使用起來也較為安全。
若只需要監控功能,推薦使用KafkaOffsetMonito,若偏重Kafka集群管理,推薦使用Kafka Manager。
當你將Kafka集群部署之后,你可能需要知道當前消息隊列的增長以及消費情況,這時候你就得需要監控它。今天我這里推薦兩款Kafka開源的監控系統:KafkaOffsetMonitor和Kafka Web Console。
KafkaOffsetMonitor是用來實時監控Kafka集群的consumers以及它們在partition中的offset(偏移量)。
你可以瀏覽當前的消息消費者組,每個topic隊列的所有partition的消費情況。這其實是很有用得,從這些監控中你可以很快地知道每個partition中的消息是否很快被消費以及相應的隊列消息增長速度等信息。這些可以debug kafka的producers和consumers,你完全知道你的系統將會發生什么。
這個web管理平台保留的partition offset和consumer滯后的歷史數據(具體數據保存多少天我們可以在啟動的時候配置),所以你可以很輕易了解這幾天consumer消費情況。
KafkaOffsetMonitor這款軟件是用Scaka代碼編寫的,消息等歷史數據是保存在名為offsetapp.db數據庫文件中,該數據庫是SQLLite文件,非常的輕量級。雖然我們可以在啟動KafkaOffsetMonitor程序的時候指定數據更新的頻率和數據保存的時間,但是不建議更新很頻繁,或者保存大量的數據,因為在KafkaOffsetMonitor圖形展示的時候會出現圖像展示過慢,或者是直接導致內存溢出了。所有的關於消息的偏移量、kafka集群的台數等信息都是從Zookeeper中獲取到的,日志大小是通過計算得到的。
1.到官網下載KafkaOffsetMonitor
鏈接如下:https://github.com/quantifind/KafkaOffsetMonitor/releases/tag/v0.2.0
2.KafkaOffsetMonitor的安裝部署較為簡單,所有的資源都打包到一個JAR文件中了,因此,直接運行即可,省去了我們去配置。KafkaOffsetMonitor-assembly-0.2.0.jar,直接啟動(直接在jar所在目錄下運行):(--zk localhost)
java -cp
KafkaOffsetMonitor-assembly-0.2.0.jar
\
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--zk zk-server1,zk-server2 \
--port 8089
\
--refresh 10.seconds \
--retain 2.days
各個參數的含義:
zk the ZooKeeper hosts
port on what port will the app be available
refresh how often should the app refresh and store a point in the DB
retain how
long
should points be kept in the DB
dbName where to store the history (
default
'offsetapp'
)
解釋下這條啟動命令的含義,首先我們需要指明運行Web監控的類,然后需要用到ZooKeeper,所有要填寫ZK集群信息,接着是Web運行端口,頁面數據刷新的時間以及保留數據的時間值。
可以寫個啟動腳本:
vi start.sh
nohup java -cp ./kom-local.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk 192.168.1.110:2181,192.168.1.111:2181 --port8089
--refresh 10.seconds --retain 3.days &
訪問:http://localhost:8089/#/group/console-consumer-541/test