温馨提示×

ubuntu上kafka配置如何监控

小樊
39
2025-11-29 13:29:57
栏目: 智能运维

Ubuntu上Kafka监控配置指南

一 监控方案总览

  • JMX直连:Kafka 暴露大量运行时指标,可用 JConsole/JMX Exporter 采集,适合细粒度观测与临时排障。
  • Prometheus + Grafana:以 JMX Exporter 或 kafka_exporter 为数据源,Prometheus 抓取,Grafana 展示与告警,适合长期可观测与容量规划。
  • 可视化与偏移量:用 Kafdrop、Kafka Offset Monitor、Burrow 快速查看 Topic/分区/消费者组 与消费滞后。
  • 系统层监控:配合 Netdata 等采集 CPU/内存/磁盘/网络,避免资源瓶颈掩盖消息系统问题。

二 启用JMX并本地查看

  • 在 Kafka 启动前设置环境变量(示例为 JMX 端口 9999):
    • 方式一(推荐,进程级):
      export JMX_PORT=9999
      export KAFKA_JMX_OPTS=“-Djava.rmi.server.hostname=localhost -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false”
      bin/kafka-server-start.sh config/server.properties
    • 方式二(Java Agent,便于对接 Prometheus):
      export KAFKA_OPTS=“-javaagent:/opt/jmx_prometheus_javaagent-0.18.0.jar=9090:/opt/kafka.yml”
      bin/kafka-server-start.sh config/server.properties
  • 本地验证:
    • jconsole 或 jvisualvm 连接 service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi
    • 若使用 JMX Exporter,访问 http://localhost:9090/metrics 应看到指标输出。

三 基于Prometheus与Grafana的监控

  • 部署采集器(二选一或并用)
    • JMX Exporter(轻量、贴近原生 JMX):
      1. 下载 jmx_prometheus_javaagent-0.18.0.jar 与配置文件 kafka.yml;
      2. 启动时加入 KAFKA_OPTS(见上);
      3. 在 Prometheus 添加抓取任务:
        • job_name: ‘kafka-jmx’
          static_configs:
          • targets: [‘<broker_ip>:9090’]
    • kafka_exporter(更侧重消费者滞后等):
      1. Docker 运行示例:
        docker run -d --name kafka-exporter bitnami/kafka-exporter:latest --kafka.server=<broker_ip>:9092
      2. 端口映射 9308→9310(宿主机 9310 供 Prometheus 抓取);
      3. Prometheus 抓取任务:
        • job_name: ‘kafka-exporter’
          metrics_path: ‘/metrics’
          scrape_interval: 15s
          static_configs:
          • targets: [‘<host_ip>:9310’]
  • Grafana 可视化
    • 添加数据源 Prometheus
    • 导入社区面板(如 “Kafka Exporter / JMX Kafka”),按 job 与实例维度查看 吞吐、请求时延、分区/副本状态、消费滞后 等。

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

  • Broker 健康
    • UnderReplicatedPartitions > 0OfflinePartitionsCount > 0ActiveControllerCount != 1
    • UncleanLeaderElectionsPerSec(非 0 需关注数据一致性与可用性权衡)
  • 复制与可用性
    • ISR 收缩/扩展频繁LeaderElectionRateAndTimeMs 异常升高
  • 生产与消费
    • 生产:request-latency-avgwaiting-threads、错误率
    • 消费:records-lag / records-lag-avg(按 group/topic/partition 聚合)
  • 资源与存储
    • CPU/内存/磁盘 IO网络带宽磁盘使用率日志目录剩余空间(配合日志保留策略)
  • 建议告警(示例)
    • 任一 Broker 的 UnderReplicatedPartitions ≥ 1 持续 5m
    • records-lag-avg 超过阈值(按业务 SLA 设定)
    • 磁盘可用 < 20%请求时延 P95 持续升高

五 日志与可视化辅助工具

  • 日志配置与巡检
    • server.properties 关键项:log.dirslog.retention.hourslog.retention.byteslog.segment.byteslog.roll.hours
    • 实时查看:tail -f /var/log/kafka/server.log(路径以实际部署为准),关注 ERROR/WARN 与 GC 日志。
  • 可视化与偏移量工具
    • Kafdrop:Web 查看 Topic/分区/消费者组,支持按 offset 检索消息;
    • Kafka Offset Monitor:轻量 JAR 启动,观察 消费者组滞后
    • Burrow:专注 消费者滞后 与健康评估,可与 Prometheus/Grafana 联动。

0