1. 程式人生 > 其它 >使用Kafka Assistant監控Kafka關鍵指標

使用Kafka Assistant監控Kafka關鍵指標

使用Kafka Assistant監控Kafka關鍵指標

使用Kafka時,我們比較關心下面這些常見指標。
Kafka Assistant下載地址:http://www.redisant.cn/ka

broker度量指標

活躍控制器數量

該指標表示 broker 是否就是當前的叢集控制器,其值可以是 0 或 1。如果是 1,表示
broker 就是當前的控制器。任何時候,都應該只有一個 broker 是控制器,而且這個 broker
必須一直是叢集控制器。如果出現了兩個控制器,說明有一個本該退出的控制器執行緒被阻
塞了,這會導致管理任務無法正常執行,比如移動分割槽。為了解決這個問題,需要將這兩
個 broker 重啟,而且不能通過正常的方式重啟,因為此時它們無法被正常關閉。

Kafka Assistant提供了對此指標的監控

請求處理器空閒率

Kafka 使用了兩個執行緒池來處理客戶端的請求:網路處理器執行緒池和請求處理器執行緒池。
網路處理器執行緒池負責通過網路讀入和寫出資料。這裡沒有太多的工作要做,也就是說,
不用太過擔心這些執行緒會出現問題。請求處理器執行緒池負責處理來自客戶端的請求,包括
從磁碟讀取訊息和往磁碟寫入訊息。因此,broker 負載的增長對這個執行緒池有很大的影響。

Kafka Assistant 通過每隔一段時間對此指標進行取樣,繪製了處理器空閒率的走勢

主題流入位元組

主題流入位元組速率使用 b/s 來表示,在對 broker 接收的生產者客戶端訊息流量進行度量時,
這個度量指標很有用。該指標可以用於確定何時該對叢集進行擴充套件或開展其他與規模增長
相關的工作。它也可以用於評估一個 broker 是否比叢集裡的其他 broker 接收了更多的流
量,如果出現了這種情況,就需要對分割槽進行再均衡。

kafka Assistant 可以監控自broker啟動以來,流出的位元組總數。一分鐘的平均速率,五分鐘的平均速率,十五分鐘平均速率。

主題流出位元組

主題流出位元組速率與流入位元組速率類似,是另一個與規模增長有關的度量指標。流出位元組速
率顯示的是消費者從 broker 讀取訊息的速率。流出速率與流入速率的伸縮方式是不一樣的,
這要歸功於 Kafka 對多消費者客戶端的支援。很多 Kafka 的流出速率可以達到流入速率的 6
倍!所以,單獨對流出速率進行觀察和走勢分析是非常重要的。

主題流入的訊息

之前介紹的位元組速率以位元組的方式來表示 broker 的流量,而訊息速率則以每秒生成訊息個
數的方式來表示流量,而且不考慮訊息的大小。這也是一個很有用的生產者流量增長規模
度量指標。它也可以與位元組速率一起用於計算訊息的平均大小。與位元組速率一樣,該指標
也能反映叢集的不均衡情況。

與主題流入和流出位元組一樣,Kafka Assistant也對此提供了監控。如下圖所示:

分割槽數量

broker 的分割槽數量一般不會經常發生改變,它是指分配給 broker 的分割槽總數。它包括
broker 的每一個分割槽副本,不管是首領還是跟隨者。

首領數量

該度量指標表示 broker 擁有的首領分割槽數量。與 broker 的其他度量一樣,該度量指標也應
該在整個叢集的 broker 上保持均等。我們需要對該指標進行週期性地檢查,並適時地發出
告警,即使在副本的數量和大小看起來都很完美的時候,它仍然能夠顯示出叢集的不均衡
問題。因為 broker 有可能出於各種原因釋放掉一個分割槽的首領身份,比如 Zookeeper 會話
過期,而在會話恢復之後,這個分割槽並不會自動拿回首領身份(除非啟用了自動首領再均
衡功能)。在這些情況下,該度量指標會顯示較少的首領分割槽數,或者直接顯示為零。這
個時候需要執行一個預設的副本選舉,重新均衡叢集的首領。

離線分割槽

與非同步分割槽數量一樣,離線分割槽數量也是一個關鍵的度量指標(表 10-10)。該度量只能
由叢集控制器提供(對於其他 broker 來說,該指標的值為零),它顯示了叢集裡沒有首領
的分割槽數量。

Java虛擬機器監控

除了 broker 的度量指標外,還應該對伺服器提供的一些標準度量進行監控,包括 Java 虛擬
機(JVM)。如果 JVM 頻繁發生垃圾回收,就會影響 broker 的效能,在這種情況下,就應
該得到告警。JVM 的度量指標還能告訴我們為什麼 broker 下游的度量指標會發生變化。