温馨提示×

Kafka在Linux下如何配置监控

小樊
39
2025-12-13 03:44:22
栏目: 智能运维

Linux下Kafka监控配置指南

一 监控方案总览

  • 建议采用分层监控:
    1. 主机与JVM层:CPU、内存、磁盘IO、网络、GC;
    2. Kafka Broker/主题/分区层:吞吐、请求延迟、副本与ISR、日志大小;
    3. 消费者组层:消费速率、提交与滞后(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 9092Exporter 9308/自定义端口Prometheus 9090Grafana 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_exporterKafka 3.x 存在兼容性问题,升级到较新版本(如 2.0+)通常可解决。

0