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
参考文档: