Linux版Kafka监控工具全景
一 工具分类与代表
| 工具 | 类型 | 主要功能 | 典型场景 |
|---|---|---|---|
| JMX + jconsole/jmxtrans | 原生接口 + 客户端 | 暴露并查看 Broker 指标(如请求时延、网络、请求队列、分区/副本状态等) | 需要细粒度指标、对接自有监控体系 |
| Kafka自带脚本(kafka-topics.sh、kafka-consumer-groups.sh) | 命令行 | 查看 Topic、Consumer Group、分区与消费位点 | 快速巡检、故障定位 |
| Kafdrop | Web UI | 主题/分区/副本、消费者组与 Lag 可视化 | 轻量观测与日常运维 |
| EFAK(Eagle for Apache Kafka) | Web UI | 集群指标、Topic/Group 管理、SQL 查询、告警 | 多集群统一监控与告警 |
| Kafka Manager(CMAK) | Web 管理与监控 | 多集群管理、分区重分配、副本分布可视化 | 需要运维+监控一体 |
| Burrow | 服务/HTTP API | 专盯 Consumer Lag,提供状态与告警接口 | 消费延迟与积压治理 |
| Kafka Monitor(LinkedIn) | 监控框架 | 性能与健康评估、可用性监测 | 规范化压测与健康检查 |
| Confluent Control Center | 商业版平台 | 实时监控、故障排除、性能优化、安全与可视化 | 企业级一体化平台 |
| Prometheus + Grafana(+ Kafka Exporter/JMX Exporter) | 时序监控 | 指标采集、可视化、阈值/事件告警 | 标准化监控与可观测性平台 |
| KnowStreaming | 企业级运维平台 | 零侵入纳管多版本、GUI、云原生、插件化 | 大规模与多集群治理 |
| Logi-KafkaManager | 企业级运维平台 | 多租户、资源治理、实时监控 | 中大型团队/平台化运维 |
| Availability Monitor for Kafka | 可用性/延迟监控 | 提供 JMX 接口 | 可用性专项监测(社区使用较少) |
二 选型建议
三 快速上手示例
原生 JMX 直连观测
Prometheus + Grafana 采集 Kafka 指标
四 关键监控指标与告警建议
| 指标 | 含义 | 常见告警阈值/动作 |
|---|---|---|
| UnderReplicatedPartitions | 欠复制分区数 | > 0 持续一段时间即告警,排查 ISR、网络、磁盘 |
| IsrShrinks/IsrExpands | ISR 收缩/扩张速率 | 短时间内异常波动告警,关注 Broker 负载与磁盘 |
| RequestHandlerAvgIdlePercent | 请求处理线程空闲率 | 持续低于 20% 可能过载,考虑扩容或限流 |
| NetworkProcessorAvgIdlePercent | 网络线程空闲率 | 过低表示网络/IO 饱和,检查带宽与磁盘 |
| MessagesInPerSec / BytesIn/BytesOut | 生产/消费吞吐 | 突降或异常波动告警,联动业务侧核查 |
| RequestRate / ResponseRate / RequestLatencyMs | 请求速率与延迟 | P95/P99 延迟升高或错误率上升告警 |
| Consumer Lag(TotalLag / MaxLag) | 消费滞后 | 持续增长或超阈值告警,检查消费端处理能力 |
| Disk Usage / Inode Usage | 磁盘与 inode | 使用率 > 80% 告警,清理或扩容 |
| CPU / Memory / Network | 主机资源 | CPU > 80%、内存紧张、丢包/错包增多告警 |