温馨提示×

centos上kafka如何监控

小樊
32
2025-11-29 21:03:41
栏目: 智能运维

CentOS 上 Kafka 监控实操指南

一 监控方案总览

  • 指标采集与可视化:使用 Kafka Exporter + Prometheus + Grafana 采集并展示 JMX 指标,适合长期可观测与告警体系。
  • 管理型 GUI:使用 Kafka Manager(CMAK)Kafka Eagle(EFAK)KnowStreaming 等,便于多集群管理与消费滞后观测。
  • 消费者滞后:使用 Burrow 专门跟踪 Consumer GroupLag
  • 系统层监控:使用 Netdata 观测 CPU、内存、磁盘 I/O、网络 等主机指标。
  • 快速查看与临时排障:使用 Kafdrop 查看 Topic/分区/消费者组 信息。
  • 商业一体化:使用 Confluent Control Center 做集中监控与告警(适用于 Confluent 平台)。

二 快速落地步骤(推荐组合:Kafka Exporter + Prometheus + Grafana)

  • 开启 JMX(Broker 侧)
    在 Kafka 启动脚本(如 bin/kafka-server-start.sh 或 systemd 环境)中增加:
    export JMX_PORT=9988
    启动后在防火墙放行该端口(示例:firewall-cmd --permanent --add-port=9988/tcp && firewall-cmd --reload)。
  • 部署并启动 Kafka Exporter
    下载解压后启动(示例):
    ./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: [‘<exporter_host>:9308’]
        重启 Prometheus 生效。
  • Grafana 可视化
    在 Grafana 添加 Prometheus 数据源,导入 Kafka 仪表盘模板(社区模板 ID 常见为 7589 等),按需调整。
  • 验证链路
    访问 Exporter 指标页(http://<exporter_host>:9308/metrics)、Prometheus Targets 页面与 Grafana 面板,确认数据正常。

三 常用工具与端口一览

工具 主要用途 默认端口 备注
Kafka Exporter 暴露 Kafka JMX 为 Prometheus 指标 9308 建议每个集群至少部署 1 个实例
Prometheus 时序指标采集与存储 9090 配置 scrape_jobs 指向 Exporter
Grafana 可视化与告警面板 3000 支持导入官方/社区 Kafka 面板
Kafka Manager(CMAK) 多集群管理、Broker/消费者监控 9000/19090 编译部署较耗时,注意访问控制
Kafka Eagle(EFAK) 监控与告警(支持钉钉/微信/邮件) 8048 需要数据库(如 MySQL/SQLite)
Burrow 消费者组 Lag 监控 8080 专注消费延迟与状态
Kafdrop Topic/分区/消费者组浏览 9000 轻量、适合临时查看
Netdata 主机层资源监控 19999 实时图表,安装即用
JConsole/JMX 直连 Broker JMX 9988 本地或经 JMX 代理远程查看
以上端口与用途为常见配置,实际以部署参数为准。

四 关键监控指标与告警建议

  • Broker 健康与性能
    • 请求耗时:RequestHandlerAvgIdlePercentResponseSendTimeMs
    • 网络与请求:BytesIn/BytesOutRequestsPerSec
    • 存储与分区:LogEndOffsetLogStartOffsetSize/SegmentCount
    • 副本与可用性:UnderReplicatedPartitionsIsrShrinks/ExpandsLeaderElectionRateAndTimeMs
    • 建议告警:UnderReplicatedPartitions > 0、IsrShrinks 持续上升、RequestHandlerAvgIdlePercent 长时间偏低、磁盘使用率超过阈值。
  • 主题与分区
    • 分区数、Leader 分布、副本数、消息保留时间(retention.ms)
    • 建议告警:分区不均导致热点、副本不足或 ISR 收缩、消息保留时间异常。
  • 消费者组与 Lag
    • ConsumerLag(总量与分分区)、提交间隔、消费速率
    • 建议告警:Lag 持续增长或突增、消费停滞(提交间隔异常)。

五 防火墙与常见排障

  • 端口放行示例(firewalld)
    • Kafka Broker:firewall-cmd --permanent --add-port=9092/tcp --permanent --add-port=9988/tcp && firewall-cmd --reload
    • Kafka Exporter: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://:9308/metrics)是否有数据。
    • Prometheus Targets 页面是否 UP,抓取是否报错。
    • Grafana 面板变量(如 $job$instance)是否匹配。
    • JMX 端口连通性(telnet/nc)与权限配置是否正确。
    • 消费者组 Lag 在 Burrow/Kafka Eaglekafka-consumer-groups.sh 输出是否一致。

0