本文使用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五件套之類的。