Linux下Kafka监控配置指南
一 监控方案总览
- 建议采用分层监控:
- 主机与JVM层:CPU、内存、磁盘IO、网络、GC;
- Kafka Broker/主题/分区层:吞吐、请求延迟、副本与ISR、日志大小;
- 消费者组层:消费速率、提交与滞后(Lag)。
- 常用工具组合:
- Kafka自带脚本(快速巡检与对账);
- JMX(原生指标暴露);
- kafka_exporter + Prometheus + Grafana(时序与可视化);
- Burrow(消费者滞后与状态);
- 可选管理面板:EFAK、Kafdrop、Kafka Manager(CMAK)、Confluent Control Center。
二 快速落地步骤 kafka_exporter Prometheus Grafana
- 部署 kafka_exporter
- 方式A(单机对接多Broker):
docker run -d --name kafka-exporter
-p 9310:9308
bitnami/kafka-exporter:latest
–kafka.server=broker1:9092,broker2:9092,broker3:9092
–kafka.version=3.2.1
- 方式B(每个Broker一个Exporter,便于定位):为每个Broker映射独立端口,如 9310/9311/9312 → 9308。
- 安全场景(SASL/SCRAM):
–sasl.enabled --sasl.username=monitor --sasl.password=yourpwd --sasl.mechanism=SCRAM-SHA-512
- 配置 Prometheus 抓取
scrape_configs:
- job_name: ‘kafka-exporter’
metrics_path: /metrics
scrape_interval: 15s
scrape_timeout: 10s
static_configs:
- targets: [‘10.0.0.26:9310’,‘10.0.0.26:9311’]
- 配置 Grafana 可视化
- 数据源:添加 Prometheus;
- 导入面板:推荐 7589(Kafka Exporter Overview)、11962(Kafka Metrics);
- 常用查询示例:
- 生产速率:sum(irate(kafka_topic_partition_current_offset{topic!~“__consumer_offsets|__transaction_state”}[30s])) by (topic)
- 消费滞后:sum(kafka_consumergroup_lag) by (topic,consumergroup)
- 网络与防火墙
- 放通 Kafka 9092、Exporter 9308/自定义端口、Prometheus 9090、Grafana 3000。
三 命令行与JMX巡检
- 常用命令(无需额外组件):
- 查看主题详情:
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直连观测(适合临时排查):
- jconsole service:jmx:rmi:///jndi/rmi://:/jmxrmi
- 或使用 jmxtrans 将JMX指标导出到时序库。
四 关键监控指标与告警建议
- Broker/主题/分区
- 请求耗时与错误率(如 RequestTotalTimeMs/ResponseQueueTimeMs/Errors)
- 入/出流量(BytesIn/BytesOut)、请求速率(RequestsPerSec)
- 分区与Leader分布、副本同步(IsrShrinks/IsrExpands)、UnderReplicatedPartitions
- 日志段与磁盘(LogEndOffset、LogSize、DiskUsage)
- 消费者组
- ConsumerLag(按 topic/partition/consumer group 维度)
- 消费速率、提交间隔、活跃消费者数
- 主机与JVM
- CPU、内存、磁盘IO、网络丢包/重传
- GC次数/停顿时间、堆使用率
- 建议告警样例
- 集群:UnderReplicatedPartitions > 0 持续5分钟
- Broker:RequestErrorRate 持续升高或 P95/P99 延迟异常
- 消费者组:Lag 超过阈值(按业务SLA设定)
- 主机:磁盘使用率 > 80%、网络丢包/重传异常、JVM Full GC 频繁
五 安全与版本注意事项
- 开启 SASL/SSL 时,kafka_exporter需配置 –sasl.enabled、–sasl.username、–sasl.password、–sasl.mechanism(如 SCRAM-SHA-512),并确保网络可达与证书信任链正确。
- 多Broker集群建议显式指定多个 –kafka.server;若Exporter报 “client has run out of available brokers to talk to”,优先检查网络/ACL/认证与版本兼容性。
- 版本匹配很重要:部分旧版 kafka_exporter 与 Kafka 3.x 存在兼容性问题,升级到较新版本(如 2.0+)通常可解决。