【收藏】 Kafka監控組件大全

本文使用Burrow和Telegraf搭建Kafka的監控體系。而後,簡單介紹一下其餘的,好比Kafka Manager,Kafka Eagle,Confluent Control Center等。html

若是你對kafka比較陌生,請參考:Kafka基礎知識索引python

Burrow

依賴路徑

使用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微信

Grafana配置

一、建立變量網絡

過濾出全部集羣,這樣就能夠使用選擇框進行集羣選擇。 框架

二、建立圖表

經過cluster過濾集羣,而後選擇監控項。能夠經過group進行分組。

監控項

burrow_group 監控消費者信息。包括

lag offset status total_lag patition_count

burrow_patition 監控更加詳細的分區信息,包括

lag offset status

burrow_topic 監控主題相關信息,包括

offset

1、Kafka Manager

最受歡迎的一個,scala編寫 且僅提供源碼下載須要本身sbt編譯。【編譯過程極其 o(≧口≦)o】

支持管理多個集羣、選擇副本、副本從新分配以及建立Topic、Consumer信息查看等功能。

除了編譯困難,在拉取大型kafka集羣的信息時,會佔用大量資源。

2、Kafka Eagle

國人本身開發,在Kafka QQ羣裏不少人推崇,由於界面很乾淨漂亮,上面有很好的數據展示。權限報警比較完善,支持釘釘,微信,郵件等報警方式。支持使用ksql查詢數據。

3、Confluent Control Center

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個端口

4、Kafka Monitor

炮灰

5、Kafka Offset Monitor

炮灰

End

以上,就是經常使用的kafka監控組件。

更多精彩文章。

《微服務不是所有,只是特定領域的子集》

《「分庫分表" ?選型和流程要慎重,不然會失控》

這麼多監控組件,總有一款適合你

《Linux生產環境上,最經常使用的一套「vim「技巧》

《使用Netty,咱們到底在開發些什麼?》

Linux五件套之類的。

《Linux之《荒島餘生》(一)準備篇》

《Linux之《荒島餘生》(二)CPU篇》

《Linux之《荒島餘生》(三)內存篇》

《Linux之《荒島餘生》(四)I/O篇》

《Linux之《荒島餘生》(五)網絡篇》

相關文章
相關標籤/搜索