在 Debian 系统上监控 Kafka 状态,可以从 系统层、Kafka 自身、JVM、以及可视化工具 多个层面来做。下面按常用方式给你一个完整指南。
ps -ef | grep kafka
或
jps
应看到类似:
Kafka
QuorumPeerMain(如果用 ZooKeeper)
Kafka 默认端口:
ss -lntp | grep 9092
ss -lntp | grep 2181
/opt/kafka/bin/broker-status.sh --bootstrap-server localhost:9092
或(新版本推荐)
/opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092
/opt/kafka/bin/kafka-topics.sh \
--bootstrap-server localhost:9092 \
--describe
输出示例:
Topic: test-topic PartitionCount: 3 ReplicationFactor: 2
/opt/kafka/bin/kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--list
查看消费进度(是否堆积):
/opt/kafka/bin/kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--describe --group your-group-id
关注:
LAG ≠ 0 → 消费堆积编辑 kafka-server-start.sh 或 systemd 启动参数:
export JMX_PORT=9999
或 systemd:
Environment="JMX_PORT=9999"
重启 Kafka。
jconsole localhost:9999
关键指标:
kafka.server:type=BrokerTopicMetricsUnderReplicatedPartitionsOfflineLogDirectoryCountRequestHandlerAvgIdlePercenttop
htop
free -h
df -h
Kafka 是 磁盘 IO 密集型,重点看:
iostat -x 1
关注:
%utilawait/opt/kafka/logs/server.log
实时查看:
tail -f /opt/kafka/logs/server.log
常见异常:
LEADER_NOT_AVAILABLENOT_ENOUGH_REPLICASOutOfMemoryErrorsystemctl status kafka
[Service]
Restart=always
RestartSec=10
java -javaagent:jmx_prometheus.jar=7071:kafka.yml
常用指标:
✅ Kafka 进程是否存在
✅ 9092 端口是否监听
✅ Topic 是否健康
✅ Consumer Lag 是否增长
✅ 磁盘是否快满
✅ JMX 是否可访问
#!/bin/bash
echo "=== Kafka Process ==="
ps -ef | grep Kafka | grep -v grep
echo "=== Port 9092 ==="
ss -lntp | grep 9092
echo "=== Disk Usage ==="
df -h
echo "=== Consumer Lag ==="
/opt/kafka/bin/kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--describe --group your-group-id
如果你愿意,我可以:
你现在 Kafka 是 单机还是集群?