在 Debian 上“开启 Kafka 监控”通常包含 Kafka 自带指标暴露 + 监控系统的采集展示 两部分。下面按常用方案给你一个清晰可落地的步骤。
Kafka 通过 JMX 暴露监控指标,先确保 JMX 已开启。
编辑 Kafka 的启动脚本(取决于安装方式):
vi bin/kafka-server-start.sh
在文件顶部或 KAFKA_HEAP_OPTS 后添加:
export JMX_PORT=9999
示例:
export KAFKA_HEAP_OPTS="-Xmx2G -Xms2G"
export JMX_PORT=9999
编辑:
sudo systemctl edit kafka
添加:
[Service]
Environment="JMX_PORT=9999"
然后:
sudo systemctl daemon-reload
sudo systemctl restart kafka
netstat -tnlp | grep 9999
或
ss -tnlp | grep 9999
wget https://github.com/danielqsj/kafka-exporter/releases/download/v1.7.0/kafka-exporter-1.7.0.linux-amd64.tar.gz
tar -xzf kafka-exporter-*.tar.gz
cd kafka-exporter-*
启动:
./kafka-exporter --kafka.server=localhost:9092
默认端口:9308
验证:
curl localhost:9308/metrics
scrape_configs:
- job_name: kafka
static_configs:
- targets: ['localhost:9308']
适合想监控 JVM + Kafka 内部指标。
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
lowercaseOutputName: true
export KAFKA_OPTS="-javaagent:/path/jmx_prometheus_javaagent.jar=7071:/path/kafka-jmx.yml"
适合看 topic、consumer、lag
git clone https://github.com/yahoo/CMAK.git
适合不想搞 Prometheus 的场景。
# 消费者延迟
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group
# topic 情况
kafka-topics.sh --bootstrap-server localhost:9092 --describe
✅ 防火墙
sudo ufw allow 9092
sudo ufw allow 9308
✅ 主机名解析
hostname -i
Kafka listeners 不要用 localhost 给远程访问
Kafka + kafka-exporter + Prometheus + Grafana
如果你愿意,我可以:
你现在是 apt 安装 / tar 包 / docker 哪种?