在 Debian 上监控 Kafka,通常可以从 系统层、Kafka 自身指标、日志、以及可视化/告警 四个层面来做。下面给你一套比较实用、可落地的方案。
# 查看 Kafka 是否在运行
systemctl status kafka
# 或
ps -ef | grep kafka
# 端口监听(默认 9092)
ss -lntp | grep 9092
top
htop
df -h
free -m
建议安装:
apt install htop sysstat
# 查看 topic
kafka-topics.sh --list --bootstrap-server localhost:9092
# 查看消费延迟(非常重要)
kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--describe --group your-group
关注:
LAG(消费滞后)CURRENT-OFFSETLOG-END-OFFSETKafka 通过 JMX 暴露大量指标。
编辑 Kafka 启动脚本(通常是 /etc/kafka/server.properties 或 systemd):
export JMX_PORT=9999
或 systemd:
[Service]
Environment="JMX_PORT=9999"
重启 Kafka:
systemctl restart kafka
apt install prometheus
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar
export KAFKA_OPTS="
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=127.0.0.1
-javaagent:/path/jmx_prometheus_javaagent-0.20.0.jar=7071:/path/kafka.yml
"
scrape_configs:
- job_name: kafka
static_configs:
- targets: ['localhost:7071']
Grafana 官方/社区面板 ID:
7589(Kafka JMX)10987重点看:
通常在:
/var/log/kafka/
重点看:
server.logstate-change.logcontroller.log可用:
tail -f /var/log/kafka/server.log
或接 ELK / Loki。
至少告警:
如果你只是想简单看:
kafka-consumer-groups.shjconsole(图形界面)kafdrop(Web UI,适合小环境)生产推荐:
Debian + Kafka JMX + Prometheus + Grafana + 消费 LAG 告警
最小可用:
systemctl + consumer-groups + 日志
如果你愿意,我可以:
你现在是 开发环境还是生产环境?