【Kafka Monitoring】Burrow

1,319 阅读1分钟

Burrow 是一款可以监控 Kafka 集群中消费者消费情况的软件,它以一种服务的方式,可以监控所有消费者已经提交的偏移量,以及按需计算这些消费者的状态。

1. 设置环境

Burrow 是 Go 语言编写的,所以需要在 Go 环境下运行,并且最好确保安装的 Go 版本高于 1.12。

go version 检查是否安装了 Go,以及其版本 image.png

2. 下载安装包

本地环境:macOS,amd64,下载对应的安装包为 Burrow_1.5.0_darwin_amd64.tar.gz

curl -O https://github.com/linkedin/Burrow/releases/download/v1.5.0/Burrow_1.5.0_darwin_amd64.tar.gz

相关安装包请在这里查找 Burrow releases

3. 配置

Burrow 主要的配置是 ./config/burrow.toml,所以在使用之前需要对监控的 Kafka 集群进行配置。

  • Zookeeper 集群为单节点,地址:localhost:2181
  • Kafka 客户端版本号为 2.8.0,Kafka 集群为单节点,地址:localhost:9092
  • Burrow 使用默认端口 8000

如下是一份 Burrow 的配置示例:

[general]
pidfile="burrow.pid"
stdout-logfile="burrow.out"
access-control-allow-origin="mysite.example.com"

[logging]
filename="~/Burrow_1.5.0/burrow.log"
level="info"
maxsize=100
maxbackups=30
maxage=10
use-localtime=false
use-compression=true

[zookeeper]
servers=[ "localhost:2181"]
timeout=6
root-path="~/Burrow_1.5.0/data"

[client-profile.test]
client-id="burrow-test"
kafka-version="2.8.0"

[cluster.local]
class-name="kafka"
servers=[ "localhost:9092" ]
client-profile="test"
topic-refresh=120
offset-refresh=30
groups-reaper-refresh=0

[consumer.local]
class-name="kafka"
cluster="local"
servers=[ "localhost:9092" ]
client-profile="test"
group-denylist="^(console-consumer-|python-kafka-consumer-|quick-).*$"
group-allowlist=""

[consumer.local_zk]
class-name="kafka_zk"
cluster="local"
servers=[ "localhost:2181" ]
zookeeper-path="/kafka-cluster"
zookeeper-timeout=30
group-denylist="^(console-consumer-|python-kafka-consumer-|quick-).*$"
group-allowlist=""

[httpserver.default]
address=":8000"

(配置各部分的解释可以看 Burrow Configuration

4. 运行

运行 Burrow:./burrow --config-dir config

启动后可以在上步配置的日志文件中看到相关的运行日志

image.png

5. 查看监控

Burrow 提供了 HTTP 服务请求,用于更方便的与 Burrow、Kafka 和 Zookeeper 集群进行交互。

查看 Kafka 集群详细信息的 URL:/v3/kafka/local

image.png

HTTP 的使用可参考 Burror HTTP-Endpoint

参考文档: github.com/linkedin/Bu…