本文使用Burrow和Telegraf搭建Kafka的监控体系。而后,简单介绍一下其余的,好比Kafka Manager,Kafka Eagle,Confluent Control Center等。html
若是你对kafka比较陌生,请参考:Kafka基础知识索引python
使用Burrow拉取kafka的监控信息,而后经过telegraf进行收集,最后写入到influxdb中。使用grafana进行展现。git
从github下载二进制文件解压便可。github
Burrow是Kafka社区committer亲自编写的,可以监控消费端端状况。不过没有UI界面,开发语言使用的是Go。此项目活跃度不是很高,但已经够用了。sql
burrow能够支持同时获取多个集群的信息,好比,我有两个集群 dm和 databus,那么个人配置文件就能够是下面这样。vim
[general]
pidfile="burrow.pid"
stdout-logfile="burrow.out"
access-control-allow-origin="mysite.example.com"
[logging]
filename="logs/burrow.log"
level="info"
maxsize=100
maxbackups=30
maxage=10
use-localtime=false
use-compression=true
[zookeeper]
servers=[ "192.168.54.159:2181"]
timeout=6
root-path="/burrow"
[client-profile.databus]
client-id="burrow-databus"
kafka-version="0.10.0"
[cluster.databus]
class-name="kafka"
servers=[ "192.168.86.57:9092","192.168.128.158:9092" ]
client-profile="databus"
topic-refresh=120
offset-refresh=30
[consumer.databus]
class-name="kafka"
cluster="databus"
servers=[ "192.168.86.57:9092","192.168.128.158:9092" ]
client-profile="databus"
group-blacklist="^(console-consumer-|python-kafka-consumer-|quick-).*$"
group-whitelist=""
[client-profile.dm]
client-id="burrow-dm"
kafka-version="0.10.0"
[cluster.dm]
class-name="kafka"
servers=[ "192.168.204.156:9092","192.168.87.50:9092" ]
client-profile="dm"
topic-refresh=120
offset-refresh=30
[consumer.dm]
class-name="kafka"
cluster="dm"
servers=[ "192.168.204.156:9092","192.168.87.50:9092" ]
client-profile="databus"
group-blacklist="^(console-consumer-|python-kafka-consumer-|quick-).*$"
group-whitelist=""
[httpserver.default]
address=":8000"
[storage.default]
class-name="inmemory"
workers=20
intervals=15
expire-group=604800
min-distance=1
复制代码
而后,使用nohup命令启动便可。bash
nohup ./burrow -config-dir=./config &
复制代码
获取配置的kafka集群。 http://localhost:8000/v3/kafka 获取某个集群的消费者信息。 http://localhost:8000/v3/kafka/databus/consumer微信
一、建立变量网络
过滤出全部集群,这样就能够使用选择框进行集群选择。 框架
二、建立图表
经过cluster过滤集群,而后选择监控项。能够经过group进行分组。
burrow_group 监控消费者信息。包括
lag offset status total_lag patition_count
burrow_patition 监控更加详细的分区信息,包括
lag offset status
burrow_topic 监控主题相关信息,包括
offset
最受欢迎的一个,scala编写 且仅提供源码下载须要本身sbt编译。【编译过程极其 o(≧口≦)o】
支持管理多个集群、选择副本、副本从新分配以及建立Topic、Consumer信息查看等功能。
除了编译困难,在拉取大型kafka集群的信息时,会占用大量资源。
国人本身开发,在Kafka QQ群里不少人推崇,由于界面很干净漂亮,上面有很好的数据展示。权限报警比较完善,支持钉钉,微信,邮件等报警方式。支持使用ksql查询数据。
Control Center是目前能收集到的功能最齐全的Kafka监控框架,but只有购买了Confluent企业版才有,付费的
官方文档 :docs.confluent.io/current/qui…
注:安装极为繁琐(docs.confluent.io/current/ins…
须要使用企业版提供的kafka,不然须要将kafka引入4个jar,修改配置文件。
另外此服务须要依赖schema-registry、connect-distributed、及kafka-rest等服务,须要开5个端口
炮灰
炮灰
以上,就是经常使用的kafka监控组件。
更多精彩文章。
Linux五件套之类的。