在 Debian 上监控 Kafka,通常可以从系统层、Kafka 自身指标、可视化与告警三个层面来做。下面给你一套实用、可落地的方案。
Kafka 通过 JMX 暴露大量监控指标(Broker、Topic、Consumer、Producer)。
开启 JMX(Debian 上)
编辑 Kafka 启动脚本(如 kafka-server-start.sh 或 systemd 配置):
export JMX_PORT=9999
或用 systemd:
[Service]
Environment="JMX_PORT=9999"
验证:
ss -ltnp | grep 9999
kafka.server:type=BrokerTopicMetricskafka.network:type=RequestMetricskafka.consumer:type=consumer-fetch-manager-metricskafka.server:type=ReplicaManagerapt install -y java
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar
创建配置:
# kafka-jmx.yml
rules:
- pattern: ".*"
修改 Kafka 启动参数:
export KAFKA_OPTS="-javaagent:/path/jmx_prometheus_javaagent.jar=7070:/path/kafka-jmx.yml"
apt install -y prometheus
配置 prometheus.yml:
scrape_configs:
- job_name: kafka
static_configs:
- targets: ['localhost:7070']
apt install -y grafana
systemctl enable --now grafana-server
导入 Kafka Dashboard(ID:7589 或 18207)
适合快速看集群状态:
git clone https://github.com/yahoo/CMAK
apt install -y node_exporter
监控:
Kafka 对磁盘延迟敏感:
iostat -x 1
kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--describe --group my-group
docker run -d \
-e KAFKA_SERVERS=localhost:9092 \
-p 9308:9308 danielqsj/kafka-exporter
通过 Prometheus + Alertmanager:
✅ 生产推荐
Kafka
+ JMX Exporter
+ Prometheus
+ Grafana
+ Alertmanager
✅ 简单场景
Kafka + Kafka Manager
如果你愿意,我可以:
你现在是单机测试还是生产集群?