centos上kafka如何监控
CentOS上Kafka监控实操指南
一监控方案总览
指标采集与可视化:使用KafkaExporter+Prometheus+Grafana采集并展示JMX指标,适合长期可观测与告警体系。
管理型GUI:使用KafkaManager(CMAK)、KafkaEagle(EFAK)、KnowStreaming等,便于多集群管理与消费滞后观测。
消费者滞后:使用Burrow专门跟踪ConsumerGroup的Lag。
系统层监控:使用Netdata观测CPU、内存、磁盘I/O、网络等主机指标。
快速查看与临时排障:使用Kafdrop查看Topic/分区/消费者组信息。
商业一体化:使用ConfluentControlCenter做集中监控与告警(适用于Confluent平台)。
二快速落地步骤(推荐组合:KafkaExporter+Prometheus+Grafana)
开启JMX(Broker侧)在Kafka启动脚本(如bin/kafka-server-start.sh或systemd环境)中增加:exportJMX_PORT=9988启动后在防火墙放行该端口(示例:firewall-cmd--permanent--add-port=9988/tcp&&firewall-cmd--reload)。
部署并启动KafkaExporter下载解压后启动(示例):./kafka_exporter--kafka.server=127.0.0.1:9092--web.listen-address=:9308默认监听9308端口,防火墙需放行。
配置Prometheus抓取在prometheus.yml增加job:scrape_configs:
job_name:‘kafka’static_configs:
targets:[‘
Grafana可视化在Grafana添加Prometheus数据源,导入Kafka仪表盘模板(社区模板ID常见为7589等),按需调整。
验证链路访问Exporter指标页(http://
三常用工具与端口一览
| 工具 | 主要用途 | 默认端口 | 备注 |
|---|---|---|---|
| KafkaExporter | 暴露KafkaJMX为Prometheus指标 | 9308 | 建议每个集群至少部署1个实例 |
| Prometheus | 时序指标采集与存储 | 9090 | 配置scrape_jobs指向Exporter |
| Grafana | 可视化与告警面板 | 3000 | 支持导入官方/社区Kafka面板 |
| KafkaManager(CMAK) | 多集群管理、Broker/消费者监控 | 9000/19090 | 编译部署较耗时,注意访问控制 |
| KafkaEagle(EFAK) | 监控与告警(支持钉钉/微信/邮件) | 8048 | 需要数据库(如MySQL/SQLite) |
| Burrow | 消费者组Lag监控 | 8080 | 专注消费延迟与状态 |
| Kafdrop | Topic/分区/消费者组浏览 | 9000 | 轻量、适合临时查看 |
| Netdata | 主机层资源监控 | 19999 | 实时图表,安装即用 |
| JConsole/JMX | 直连BrokerJMX | 9988 | 本地或经JMX代理远程查看 |
| 以上端口与用途为常见配置,实际以部署参数为准。 |
四关键监控指标与告警建议
Broker健康与性能
请求耗时:RequestHandlerAvgIdlePercent、ResponseSendTimeMs
网络与请求:BytesIn/BytesOut、RequestsPerSec
存储与分区:LogEndOffset、LogStartOffset、Size/SegmentCount
副本与可用性:UnderReplicatedPartitions、IsrShrinks/Expands、LeaderElectionRateAndTimeMs
建议告警:UnderReplicatedPartitions>0、IsrShrinks持续上升、RequestHandlerAvgIdlePercent长时间偏低、磁盘使用率超过阈值。
主题与分区
分区数、Leader分布、副本数、消息保留时间(retention.ms)
建议告警:分区不均导致热点、副本不足或ISR收缩、消息保留时间异常。
消费者组与Lag
ConsumerLag(总量与分分区)、提交间隔、消费速率
建议告警:Lag持续增长或突增、消费停滞(提交间隔异常)。
五防火墙与常见排障
端口放行示例(firewalld)
KafkaBroker:firewall-cmd--permanent--add-port=9092/tcp--permanent--add-port=9988/tcp&&firewall-cmd--reload
KafkaExporter:firewall-cmd--permanent--add-port=9308/tcp&&firewall-cmd--reload
Grafana:firewall-cmd--permanent--add-port=3000/tcp&&firewall-cmd--reload
Netdata:firewall-cmd--permanent--add-port=19999/tcp&&firewall-cmd--reload
快速排障清单
Exporter指标页(http://
PrometheusTargets页面是否UP,抓取是否报错。
Grafana面板变量(如$job、$instance)是否匹配。
JMX端口连通性(telnet/nc)与权限配置是否正确。
消费者组Lag在Burrow/KafkaEagle与kafka-consumer-groups.sh输出是否一致。

