在 Debian 上监控 Kafka,通常从系统层 + Kafka 自身指标 + 可视化/告警三个层面来做。下面给你一套实用方案,从简单到完整。
# 看 Kafka 进程
ps -ef | grep kafka
# 看端口(默认 9092)
ss -lntp | grep 9092
Kafka 日志一般在:
/opt/kafka/logs/
# 或
/var/log/kafka/
重点看:
server.logcontroller.logstate-change.log常见异常:
OutOfMemoryErrorLeader not availableUnder replicated partitionsKafka 通过 JMX 暴露大量指标。
编辑 kafka-server-start.sh 或 systemd 配置:
export JMX_PORT=9999
或 systemd:
[Service]
Environment="JMX_PORT=9999"
重启 Kafka:
systemctl restart kafka
验证:
ss -lntp | grep 9999
kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--describe \
--group my-group
关注:
LAG > 0 且持续增长 → 消费慢kafka-topics.sh --bootstrap-server localhost:9092 --describe
看:
Under-replicatedISR < replicasapt install prometheus
下载:
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
修改 Kafka 启动参数:
export KAFKA_OPTS="-javaagent:/path/jmx_prometheus_javaagent.jar=7071:/path/kafka-jmx.yml"
scrape_configs:
- job_name: kafka
static_configs:
- targets: ['localhost:7071']
适合不想搭 Prometheus 的人:
Debian 上建议同时监控:
工具:
apt install htop iotop nload
✅ 消费延迟(LAG)
✅ Under-replicated partitions
✅ Request latency
✅ GC 时间
✅ 磁盘使用率
✅ Broker 存活状态
如果你愿意,我可以:
你现在是哪种环境?