以下是Linux下Kafka的監控方法及配置要點:
一、原生工具監控
- 命令行工具
kafka-topics.sh:查看主題分區、副本狀態。
kafka-consumer-groups.sh:監控消費者組消費進度、延遲。
kafka-run-class.sh:運行性能測試工具(如ProducerPerformance)。
- JMX監控
- 通過
jconsole或jcmd連接Kafka Broker的JMX端口,查看吞吐量、延遲等指標。
- 需在
server.properties中啟用JMX:jmx.port=9999(示例端口)。
二、第三方工具監控
- Prometheus + Grafana
- Prometheus:通過
kafka_exporter暴露Kafka指標,配置prometheus.yml抓取數據。
- Grafana:可視化Prometheus數據,創建Broker、Topic、消費者等監控看板。
- 部署示例:
kafka_exporter:通過Docker或直接運行,指定Kafka Broker地址。
- Grafana導入Kafka監控模板(如ID:7589)。
- 專用工具
- Burrow:專注消費者偏移量監控,支持告警。
- Kafka Manager(CMAK):Web界面管理集群,監控Topic、分區、消費者狀態。
- Confluent Control Center:商業級工具,提供集中化監控、告警及性能分析。
三、關鍵監控指標
- Broker層面:CPU、內存、磁盤I/O、網絡吞吐量、JVM堆內存使用率。
- Topic/分區:消息積壓量、ISR副本數、Leader選舉頻率。
- 消費者:消費速率、偏移量提交延遲、消費失敗率。
四、告警配置
- 在Prometheus中設置告警規則,例如:
- 消息積壓超過1000條觸發告警。
- Broker磁盤使用率超過80%告警。
- 通過Grafana的告警功能或集成第三方告警系統(如Alertmanager)實現通知。
五、部署建議
- 輕量級場景:使用
Kafka-UI或Kafka Manager。
- 企業級場景:Prometheus+Grafana組合,搭配Burrow或Confluent Control Center。
- 容器化部署:通過Docker部署
kafka_exporter和Grafana,簡化配置。
以上工具和方法可組合使用,根據實際需求選擇,確保Kafka集群的穩定運行。