温馨提示×

kafka在linux如何监控

小樊
43
2026-10-14 03:06:38
栏目: 智能运维

在 Linux 上监控 Kafka,通常分为系统层监控、Kafka 自身指标监控、日志监控和可视化几个层面。下面给你一套实用、可落地的方法。


一、Kafka 自带工具(最基础)

1. Kafka 命令行工具

Kafka 自带很多脚本,适合快速排查:

# 查看 topic 列表
kafka-topics.sh --bootstrap-server localhost:9092 --list

# 查看 topic 详情
kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test

# 消费者组状态
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group

# 生产/消费测试
kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

二、JMX 监控(Kafka 核心)

Kafka 基于 JVM,最重要指标都通过 JMX 暴露。

1. 开启 JMX

在 kafka-server-start.sh 或 server.properties 中配置:

export JMX_PORT=9999

或启动参数:

-Dcom.sun.management.jmxremote.port=9999

2. 常用监控指标

  • kafka.server:type=BrokerTopicMetrics
  • kafka.network:type=RequestMetrics
  • kafka.controller:type=KafkaController
  • kafka.consumer:type=consumer-fetch-manager-metrics

三、Prometheus + Grafana(推荐生产方案)

1. 使用 JMX Exporter

下载:

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar

Kafka 启动参数:

-javaagent:/path/jmx_prometheus_javaagent.jar=7071:/path/kafka.yml

2. Prometheus 抓取

scrape_configs:
  - job_name: kafka
    static_configs:
      - targets: ['kafka1:7071','kafka2:7071']

3. Grafana

  • 官方 Dashboard ID:7589、10973
  • 可监控:
    • 吞吐量
    • 消息积压
    • 请求延迟
    • 分区 ISR 状态

四、Kafka Manager / CMAK(Web UI)

适合运维查看:

# CMAK (原 Kafka Manager)
https://github.com/yahoo/CMAK

功能:

  • Topic 管理
  • Consumer Lag
  • Broker 状态

五、系统层监控(Linux)

1. CPU / 内存 / 磁盘

top
free -h
df -h
iostat -x 1

Kafka 对 磁盘 IO 和页缓存 非常敏感。

2. 网络

netstat -antp | grep 9092
ss -tanp

六、日志监控

Kafka 日志位置:

/config/server.properties -> log.dirs

关键日志:

  • server.log
  • controller.log
  • state-change.log

可用:

  • ELK
  • Loki
  • tail + alert

七、常见监控重点(必看)

✅ Consumer Lag(消费滞后)
✅ Under Replicated Partitions
✅ Request Handler Idle < 低说明繁忙
✅ Disk Util 高
✅ GC 时间


八、简单总结方案

场景 推荐
临时排查 kafka 命令 + JMX
生产环境 Prometheus + Grafana
运维友好 CMAK
全栈可观测 Kafka + Node Exporter + Loki

如果你愿意,我可以:

  • 给你一份 Kafka Prometheus 监控 YAML
  • 或针对 单节点 / 集群 / 容器 给具体方案

0 踩