Kafka 訊息監控 - Kafka Eagle

哥不是小蘿莉發表於2016-09-01

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.結束語

  這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行討論或傳送郵件給我,我會盡我所能為您解答,與君共勉!

相關文章