kafka監控工具比較多,有kafka monitor,kafka manager, kafka eagle,KafkaOffsetMonitor 等,但是監控consumer lag最好用的當屬burrow.
Burrow是linkedin開源的一個監控Apache Kafka的工具,burrow可以將消費者滯后檢查作為一項服務來對外提供。 它監視所有消費者的承諾偏移量,並根據需要計算消費者的狀態,提供HTTP endpoint接口來獲取消費者狀態,能夠監控Consumer消費消息的延遲,從而監控應用的健康狀況,並且可以同時監控多個Kafka集群。 通知器可以通過配置電子郵件或HTTP通告進行告警,而無需指定閾值,他完全是基於消費過程的動態評估。同時可以監控offset提交到broker,zk兩種方式,還可以作storm的消費監控,報警支持http, email想要擴展個自己的短信報警什么的也是超簡單。
第一步安裝采集器burrow
下載tar包https://github.com/linkedin/Burrow/releases
解壓后修改config/burrow.toml配置文件
主要是修改日志文件地址和增加kafka集群配置,同時可以增加zookeeper的模式。
進入到解壓目錄執行 nohup burrow -config-dir=config/ & 就直接啟動了
驗證是否成功可以訪問ip/v3/kafka 可以獲取到監控的kafka集群信息如下
{"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的信息
{"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"}}
其他接口信息如下
第二步安裝數據收集器telegraf
有一些工具可以將burrow提供的http數據收集到influxdb或者promethues.
我使用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
參考文檔:
Telegraf+Influxdb+Grafana構建監控平台