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.結束語
這篇博客就和大家分享到這里,如果大家在研究學習的過程當中有什么問題,可以加群進行討論或發送郵件給我,我會盡我所能為您解答,與君共勉!