在 Ubuntu 上监控 Kafka,可以从系统层、Kafka 自身指标、可视化工具、日志几个层面来做。下面按「实用程度」给你一套常见方案。
Kafka 通过 JMX 暴露大量监控指标(吞吐、延迟、副本状态等)。
开启 JMX
编辑 Kafka 启动脚本(bin/kafka-server-start.sh 或 systemd):
export JMX_PORT=9999
或 systemd 示例:
[Service]
Environment="JMX_PORT=9999"
验证:
jconsole localhost:9999
常用指标:
kafka.server:type=BrokerTopicMetricskafka.network:type=RequestMetricskafka.controller:type=KafkaControllerkafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--describe --group my-group
kafka-topics.sh --bootstrap-server localhost:9092 --describe
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test --from-beginning
top / htop
iostat -x 1
netstat -anp | grep 9092
systemctl status kafka
journalctl -u kafka -f
使用 kafka-exporter:
docker run -d \
-p 9308:9308 \
danielqsj/kafka-exporter \
--kafka.server=localhost:9092
scrape_configs:
- job_name: kafka
static_configs:
- targets: ['localhost:9308']
git clone https://github.com/yahoo/CMAK.git
功能:
Kafka 日志路径(默认):
/var/log/kafka/
重点关注:
server.logcontroller.logstate-change.log可用:
tail -f /var/log/kafka/server.log
| 场景 | 推荐 |
|---|---|
| 本地测试 | JMX + 命令行 |
| 生产环境 | Prometheus + Grafana + kafka-exporter |
| 运维友好 | CMAK |
| 故障排查 | 日志 + consumer-groups |
如果你愿意,我可以:
你现在是单机还是集群?