温馨提示×

Kafka在Linux上的监控方法

小樊
40
2025-11-15 11:50:35
栏目: 智能运维

监控方案总览 在 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、消费者组、MetricSQL 查询、告警能力。
  • 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 做细化与调优。

0