天天看点

Kafka 消费迟滞监控工具 BurrowBurrow 简介Burrow 安装及版本安装方法使用方法

kafka 官方对于自身的 lag 监控并没有太好的方法,虽然kafka broker 自带有 kafka-topic.sh, kafka-consumer-groups.sh, kafka-console-consumer.sh 等脚本,但是对于大规模的生产集群上,使用脚本采集是非常不可靠的。

linkedin 公司的数据基础设施streaming sre团队正在积极开发burrow,该软件由go语言编写,在apache许可证下发布,并托管在 github burrow 上。

它收集集群消费者群组的信息,并为每个群组计算出一个单独的状态,告诉我们群组是否运行正常,是否落后,速度是否变慢或者是否已经停止工作,以此来完成对消费者状态的监控。它不需要通过监控群组的进度来获得阈值,不过用户仍然可以从中获得消息的延时数量。
Kafka 消费迟滞监控工具 BurrowBurrow 简介Burrow 安装及版本安装方法使用方法

burrow自动监控所有消费者和他们消费的每个分区。它通过消费特殊的内部kafka主题来消费者偏移量。然后,burrow将消费者信息作为与任何单个消费者分开的集中式服务提供。消费者状态通过评估滑动窗口中的消费者行为来确定。

这些信息被分解成每个分区的状态,然后转化为consumer的单一状态。消费状态可以是ok,或处于warning状态(consumer正在工作但消息消费落后),或处于error状态(consumer已停止消费或离线)。此状态可通过简单的http请求发送至burrow获取状态,也可以通过burrow 定期检查并使用通知其通过电子邮件或单独的http endpoint接口(例如监视或通知系统)发送出去。

burrow能够监控consumer消费消息的延迟,从而监控应用的健康状况,并且可以同时监控多个kafka集群。用于获取关于kafka集群和消费者的信息的http上报服务与滞后状态分开,对于在无法运行java kafka客户端时有助于管理kafka集群的应用程序非常有用。

burrow 是基于 go 语言开发,当前 burrow 的 v1.1 版本已经release。

burrow 也提供用于 docker 镜像。

burrow_1.2.2_checksums.txt              297 bytes

burrow_1.2.2_darwin_amd64.tar.gz        4.25 mb

burrow_1.1.0_linux_amd64.tar.gz       3.22 mb (centos 6)

burrow_1.2.2_linux_amd64.tar.gz        4.31 mb (centos 7 require glibc >= 2.14)

burrow_1.2.2_windows_amd64.tar.gz        4 mb

source code (zip)

source code (tar.gz)

本发行版包含针对初始1.0.0发行版中发现的问题的一些重要修复,其中包括:

支持 kafka 1.0更新版本(#306)

fix zookeeper 监视处理(#328)

还有一些小的功能更新

存储最近的代理偏移环以避免停止的分区出现虚假警报

添加可配置的通知间隔

通过环境变量添加对配置的支持

支持存储模块中可配置的队列深度

安装方法可以选用源码编译,和使用官方提供的二进制包等方法。

这里推荐使用二进制包的方式。

burrow 是无本地状态存储的,cpu密集型,网络io密集型应用。

默认配置文件为 burrow.toml

burrow 返回额接口均为 json 对象格式,所以非常方便用于二次采集处理。

消费组健康状态的接口含义如下: