kafka監控工具比較多,有kafka monitor,kafka manager, kafka eagle,KafkaOffsetMonitor 等,可是監控consumer lag最好用的當屬burrow.linux
Burrow是linkedin開源的一個監控Apache Kafka的工具,burrow能夠將消費者滯後檢查做爲一項服務來對外提供。 它監視全部消費者的承諾偏移量,並根據須要計算消費者的狀態,提供HTTP endpoint接口來獲取消費者狀態,可以監控Consumer消費消息的延遲,從而監控應用的健康情況,而且能夠同時監控多個Kafka集羣。 通知器能夠經過配置電子郵件或HTTP通告進行告警,而無需指定閾值,他徹底是基於消費過程的動態評估。同時能夠監控offset提交到broker,zk兩種方式,還能夠做storm的消費監控,報警支持http, email想要擴展個本身的短信報警什麼的也是超簡單。git
第一步安裝採集器burrow
下載tar包https://github.com/linkedin/Burrow/releasesgithub
解壓後修改config/burrow.toml配置文件api
主要是修改日誌文件地址和增長kafka集羣配置,同時能夠增長zookeeper的模式。app
進入到解壓目錄執行 nohup burrow -config-dir=config/ & 就直接啓動了工具
驗證是否成功能夠訪問ip/v3/kafka 能夠獲取到監控的kafka集羣信息以下post
{"error":false,"message":"cluster list returned","clusters":["applog","order"],"request":{"url":"/v3/kafka","host":"bigdata"}}
ip/v3/kafka/applog/consumer/buryPoint/status 能夠獲取集羣applog consumer爲buryPoint的信息url
{"error":false,"message":"consumer status returned","status":{"cluster":"applog","group":"buryPoint","status":"OK","complete":1,"partitions":[],"partition_count":32,"maxlag":{"topic":"burypoint","partition":16,"owner":"","client_id":"","status":"OK","start":{"offset":1197540889,"timestamp":1568940322677,"lag":0},"end":{"offset":1197762297,"timestamp":1568941162597,"lag":0},"current_lag":16477,"complete":1},"totallag":527124},"request":{"url":"/v3/kafka/applog/consumer/buryPoint/status","host":"bigdata"}}
其餘接口信息以下spa
第二步安裝數據收集器telegraf
有一些工具能夠將burrow提供的http數據收集到influxdb或者promethues..net
我使用LInkedin開源的telegraf 完成這個操做。
在https://portal.influxdata.com/downloads/ 尋找適合本身機器的包
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.12.1_linux_amd64.tar.gz tar xf telegraf-1.12.1_linux_amd64.tar.gz
網上不少經過rpm安裝也是能夠的,這裏經過tar包的方式
主要是修改etc/telegraf/telegraf.conf 這個配置文件 ,增長input和output
數據是寫入influxdb,因此先在influxdb建好庫,這裏庫名是telegraf
啓動nohup usr/bin/telegraf --config etc/telegraf/telegraf.conf &
第三步配置Grafana
先在grafana配置influxdb數據源
而後導入grafana模板配置,頁面顯示能夠根據須要增刪圖表
模板下載地址https://grafana.com/grafana/dashboards/10207
參考文檔: