burrow+telegraf+Grafana实现Kafka Consumer Lag监控

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构建监控平台

Kafka消费积压Lag监控工具Burrow的使用

Kafka监控组件大全

burrow配置项和api介绍

Telegraf Plugin: Burrow

Burrow wiki