kafka筆記9(監控)
Kafka提供的所有度量指標都是通過JMX(Java Management Extensions)接口訪問
JMX端口查詢: zookeeper上獲取端口信息 /brokers/ids/<ID>節點包含json格式的broker信息,裏面含有JMX對應的主機名和端口
JMX接口提供的是內部度量指標,第三方程序提供的則是外部度量指標
應用程序健康檢測:
使用外部進程來報告broker的運行狀態(健康檢測)
在broker停止發送度量指標時發出告警(stale度量指標)
broker度量指標
非同步分區數量: 作為首領的broker有多少個分區處於非同步狀態
該值大於0就要采取措施,首先建議重新選舉首領,看看能否解決問題
問題排查步驟:
集群級別的問題:
不均衡的負載 資源過度消耗
問題定位: 用到以下度量指標
分區數量 首領分區數量 主題流入字節速率 主題流入消息速率
在一個均衡集群裏,度量指標的數值在整個集群範圍內均等的
以下資源出現過度消耗會導致分區不同步
主機級別問題:
硬件問題
磁盤問題是常見的故障,導致分區不同步,拖慢整個集群broker請求
進程沖突
本地配置的不一致
活躍控制器數量:
表示broker是否就是當前的集群控制器,1代表是,任何時候集群應該只有一個集群控制器
請求處理器空閑率
空閑率低於20%說明存在潛在問題,低於10%說明存在性能問題
主題流入字節
主題流出字節
主題流入消息
分區數量:
首領數量:
該度量指標表示broker擁有的首領分區數量,與其他度量一樣,該度量指標也應該在整個集群的broker上保持均等
一個均衡集群如果復制系數是N,則該百分比應該為1/N
離線分區: 顯示集群裏沒有首領的分區數量
分區離線的主要原因: 包含分區副本的broker都關閉了; 消息不匹配,沒有同步副本可以拿到首領身份(並且禁用了不完全的首領選舉)
請求度量指標:
主題和分區的度量指標:(指定某個主題)
主題實例的度量指標: 取決於集群主題數量
分區實例的度量指標
JAVA虛擬機監控
垃圾回收:
Java操作系統監控
日誌:
Kafka.controller 記錄集群控制器的消息
kafka.server.ClientQuotaManager 記錄與生產和消費配額活動相關的信息
啟用kafka.log.LogCleaner kafka.log.Cleaner kafka.log.LogCleanerManager這些日誌,並設置為DEBUG級別,就可以輸出日誌壓縮線程的運行狀態
客戶端監控
生產者度量指標
record-error-rate 是一個完全有必要對其設置告警的屬性,一般情況下是0,大於0,說明生產者正在丟棄無法發送的消息
record-retry-rate 重試次數
request-latency-avg 設置告警,表示發送一個生產者請求到broker所需的平均時間
3種不同視圖: outgoing-byte-rate 每秒鐘消息的字節數 record-send-rate 每秒消息的數量 request-rate 每秒鐘生產者發送給broker的請求數
Per-broker和Per-topic 度量指標
消費者度量指標:
Fetchmanager度量指標
fetch-latency-avg 表示消費者向Broker發送請求所需要的時間
Coordinator度量指標
配額
延遲監控
端到端監控
:
kafka筆記9(監控)