在 Debian 上监控 Kafka,通常可以从系统层、Kafka 自身指标、日志、可视化工具几个层面来做。下面给你一套实用方案。
systemctl status kafka
ps -ef | grep kafka
top
htop
free -h
df -h
ss -tunlp | grep 9092
netstat -tunlp | grep 9092
# 查看 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 --list
# 消费组详情(Lag 很重要)
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group
kafka-producer-perf-test.sh
kafka-consumer-perf-test.sh
Kafka 通过 JMX 暴露大量指标。
编辑 kafka-server-start.sh 或 server.properties:
export JMX_PORT=9999
重启 Kafka:
systemctl restart kafka
jconsole localhost:9999
可看到:
Kafka → JMX Exporter → Prometheus → Grafana
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="-javaagent:/path/jmx_prometheus_javaagent.jar=7071:/path/kafka.yml"
scrape_configs:
- job_name: kafka
static_configs:
- targets: ['localhost:7071']
7589 或 10466)# 可视化 Kafka 集群管理
https://github.com/Yahoo/CMAK
功能:
https://github.com/linkedin/Burrow
适合:
/var/log/kafka/
tail -f /var/log/kafka/server.log
grep ERROR /var/log/kafka/server.log
可接:
重点关注指标:
| 场景 | 推荐 |
|---|---|
| 学习/测试 | JMX + jconsole |
| 生产环境 | Prometheus + Grafana |
| 消费延迟 | Burrow |
| 集群管理 | CMAK |
如果你愿意,我可以:
你现在是 单机还是集群?生产还是测试?