在 Debian 上监控 Kafka,通常可以从 系统层、Kafka 自身指标、日志、以及可视化工具 几个层面来做。下面按「由浅入深」的方式说明。
# 查看 Kafka 进程
ps -ef | grep kafka
# 查看端口(默认 9092)
sudo netstat -tlnp | grep 9092
# 或
ss -tlnp | grep 9092
top
htop
df -h
free -m
关注:
# 查看 topic 列表
kafka-topics.sh --list --bootstrap-server localhost:9092
# 查看 topic 详情
kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092
# 消费滞后(非常重要)
kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--describe --group my-group
重点关注:
LAG(消费滞后)CURRENT-OFFSETLOG-END-OFFSETKafka 通过 JMX 暴露大量指标。
编辑 Kafka 启动脚本(如 kafka-server-start.sh 或 systemd 配置):
export JMX_PORT=9999
或 systemd:
[Service]
Environment="JMX_PORT=9999"
重启 Kafka:
sudo systemctl restart kafka
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
./kafka-exporter --kafka.server=localhost:9092
默认端口:9308
scrape_configs:
- job_name: kafka
static_configs:
- targets: ['localhost:9308']
访问:
http://localhost:9090
常用指标:
kafka_topic_partition_current_offsetkafka_consumergroup_lagkafka_broker_bytes_in_rate导入官方面板:
可视化内容:
/var/log/kafka/
# 或
$KAFKA_HOME/logs
重点看:
server.logcontroller.logstate-change.log可用:
tail -f /var/log/kafka/server.log
或接入:
如果你用的是 Kafka < 3.0:
echo stat | nc localhost 2181
监控:
至少监控:
✅ Broker 存活
✅ 消费滞后 > 阈值
✅ 磁盘使用 > 80%
✅ 网络异常
✅ GC 时间过长
| 场景 | 推荐方案 |
|---|---|
| 学习 / 测试 | kafka-consumer-groups + 日志 |
| 小生产 | JMX + kafka-exporter |
| 中大型 | Prometheus + Grafana + 告警 |
| 云原生 | Kafka + Prometheus Operator |
如果你愿意,可以告诉我:
我可以直接给你 可复制的配置文件。