1.概述
在開發工作當中,消費 Kafka 叢集中的訊息時,資料的變動是我們所關心的,當業務並不複雜的前提下,我們可以使用 Kafka 提供的命令工具,配合 Zookeeper 客戶端工具,可以很方便的完成我們的工作。隨著業務的複雜化,Group 和 Topic 的增加,此時我們使用 Kafka 提供的命令工具,已預感到力不從心,這時候 Kafka 的監控系統此刻便尤為顯得重要,我們需要觀察消費應用的詳情。 監控系統業界有很多傑出的開源監控系統。我們在早期,有使用 KafkaMonitor 和 Kafka Manager 等,不過隨著業務的快速發展,以及網際網路公司特有的一些需求,現有的開源的監控系統在效能、擴充套件性、和 DEVS 的使用效率方面,已經無法滿足了。 因此,我們在過去的時間裡,從網際網路公司的一些需求出發,從各位 DEVS 的使用經驗和反饋出發,結合業界的一些開源的 Kafka 訊息監控,用監控的一些思考出發,設計開發了現在 Kafka 叢集訊息監控系統:Kafka Eagle。
Kafka Eagle 用於監控 Kafka 叢集中 Topic 被消費的情況。包含 Lag 的產生,Offset 的變動,Partition 的分佈,Owner ,Topic 被建立的時間和修改的時間等資訊。下載地址如下所示:
2.內容
Kafka Eagle 涉及以下內容模組:
- Dashboard
- Topic(Create & List)
- Consumers
- Cluster Info
2.1 Dashboard
我們通過在瀏覽器中輸入 http://host:port/ke,訪問 Kafka Eagle 的 Dashboard 頁面。該頁面包含以下內容:
- Brokers
- Topics
- Zookeepers
- Consumers
- Kafka Brokers Graph
展示 Kafka 叢集的 Topic 數量,消費者數量,Kafka 的 Brokers 數,以及所屬的 Zookeeper 叢集資訊。Dashboard 資訊展示截圖如下:
2.2 Topic
在 Topic 模組下,包含建立 Topic 和展示 Topic 資訊詳情。
2.2.1 Create
通過建立模組可以建立一個自定義分割槽和備份數的 Topic。如下圖所示:
2.2.2 List
該模組下列出 Kafka 叢集中所有的 Topic,包含 Topic 的分割槽數,建立時間以及修改時間,如下圖所示:
上圖中,每一個 Topic 名稱對應一個詳情的超連結,通過該連結可以檢視該 Topic 的詳情,如:分割槽索引號,Leader,Replicas 和 Isr,如下圖所示所示:
2.3 Consumers
該模組顯示有消費記錄的 Topic 資訊,其中包含如下內容:
- Running
- Pending
- Active Topic Graph
- Offsets Rate Graph
2.4 Cluster Info
該模組顯示 Kafka 叢集資訊和 Zookeeper 叢集資訊,包含如下內容:
- Kafka Broker Host & IP
- Kafka Broker Created & Modify Date
- Zookeeper Host & IP
3.資料採集
Kafka Eagel 監控的訊息資料來源,來自於 Zookeeper。由於建立,修改或是消費 Kafka 的訊息,都會在 Zookeeper 中進行註冊,我們可以從中獲取資料的變動,例如:Topic,Brokers,Partitions 以及 Group 等,Kafka 在 Zookeeper 的結構儲存,如下圖所示:
4.總結
Kafka Eagle 的安裝使用很簡單,下載安裝,配置好 Kafka 叢集所屬的 Zookeeper 叢集地址即可,安裝部署文件地址如下:
5.結束語
這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行討論或傳送郵件給我,我會盡我所能為您解答,與君共勉!