天天看點

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 對象格式,是以非常友善用于二次采集處理。

消費組健康狀态的接口含義如下: