监控方案总览
在 Linux 上监控 Apache Kafka 通常采用“内置工具 + JMX 指标 + 指标采集与可视化”的组合:先用 Kafka 自带脚本快速巡检,再通过 JMX 获取细粒度指标,最后用 Prometheus + Grafana 或专用 Web 工具做长期观测与告警。常见工具包含:kafka-topics.sh、kafka-consumer-groups.sh、JConsole/jmxtrans、kafka_exporter、Burrow、Kafka Manager(CMAK)、Kafka Eagle(EFAK)、Confluent Control Center、Kafdrop 等。
快速巡检与命令行工具
- 查看主题与分区副本状态:
bin/kafka-topics.sh --bootstrap-server --describe --topic
- 查看消费者组与消费滞后:
bin/kafka-consumer-groups.sh --bootstrap-server --describe --group
- 探测 Broker 支持的 API 版本:
bin/kafka-broker-api-versions.sh --bootstrap-server
- 查看/变更 Broker 配置:
bin/kafka-configs.sh --bootstrap-server --entity-type brokers --entity-name --describe
以上命令适合日常巡检、问题定位与变更前后核对。
JMX 直连与指标采集
- JMX 直连观测:使用 JConsole 连接
service:jmx:rmi:///jndi/rmi://:/jmxrmi
适合临时排查与核对关键 MBean。
- 指标导出到时序库:使用 jmxtrans 读取 JMX 并输出到 Prometheus/Graphite/日志 等。
- JMX 采集器方案:部署 kafka_exporter(每个 Broker 或按集群部署),通过 --kafka.server 指定 Broker 地址:9092,默认监听 9308/metrics,再由 Prometheus 抓取并存储。
示例(Prometheus 抓取 kafka_exporter):
- scrape_configs:
- job_name: ‘kafka’
static_configs:
- targets: [‘:9308’]
该方式便于大规模集群与长期可视化。
可视化与告警平台
- Prometheus + Grafana:以 kafka_exporter 或 JMX Exporter 为数据源,导入 Kafka 官方/社区 Grafana 面板,实现吞吐、延迟、分区、ISR、消费滞后等统一观测与告警规则配置。
- Kafka Manager(CMAK):Web 化管理与监控,支持多集群、Topic/分区/副本与消费者组视图。
- Kafka Eagle(EFAK):提供 Topic、消费者组、Metric 与 SQL 查询、告警能力。
- Burrow:专注 消费者滞后 与消费状态评估,适合消费延迟告警与 SLA 观测。
- Confluent Control Center:商业版,提供 实时监控、性能分析、告警与治理 的一体化平台。
- Kafdrop:轻量 Web 工具,便于查看 Topic/分区/消费者组 的概览信息。
以上工具可按规模与预算组合使用,生产环境常见“Exporter → Prometheus → Grafana”与“CMAK/EFAK/Burrow”并行的混合架构。
关键监控指标与告警阈值建议
- Broker 可用性:进程存活、监听端口 9092 可达、JMX 连通。
- 副本健康:
- UnderReplicatedPartitions > 0(持续>0 表示副本同步异常)
- IsrShrinks/IsrExpands 异常波动(频繁收缩需关注网络/磁盘/负载)
- 请求与延迟:
- RequestHandlerAvgIdlePercent 过低(如持续 < 20%)提示处理能力紧张
- ResponseSendTimeMs/P95/P99 升高提示网络或后端拥塞
- 生产/消费:
- 生产侧:OutgoingByteRate、RequestRate、RecordSendRate 突降可能预示阻塞
- 消费侧:BytesInPerSec/RecordsInPerSec 与业务曲线背离需排查消费端
- 消费者滞后:
- ConsumerLag(总量与分区分位数)持续增长需扩容消费者或优化处理
- 主机与 JVM:
- CPU、内存、磁盘 IO、网络 利用率异常
- JVM GC 次数/停顿 频繁影响延迟与稳定性
- 存储与保留:
- LogEndOffset 增长 与 Retention 配置匹配,避免磁盘被写满
这些指标与阈值可作为告警规则的基础,并结合业务 SLA 做细化与调优。