在 Debian 上排查 Kafka 故障,一般从 系统 → Java → Kafka 进程 → 配置 → 网络 → 磁盘/性能 → 业务 逐层排查。下面给你一套常用、实战型的排查流程。
# 查看系统负载
top
htop
# 查看内存
free -h
# 查看磁盘使用
df -h
# 查看磁盘 IO
iostat -x 1
重点:
/var 或 Kafka 数据目录)Kafka 依赖 Java:
java -version
建议:
ps -ef | grep kafka
jps
正常应看到:
KafkaQuorumPeerMain(如果用 ZooKeeper)ss -lntp | grep java
常见端口:
9092:Kafka2181:ZooKeeper(老版本)9093:SSL / KRaft默认:
/opt/kafka/logs/
或:
/var/log/kafka/
重点文件:
server.log
controller.log
state-change.log
查看错误:
tail -n 200 /opt/kafka/logs/server.log
grep ERROR /opt/kafka/logs/server.log
Address already in use → 端口冲突java.io.FileNotFoundException → 数据目录权限OutOfMemoryError → JVM 内存不足Broker id already exists → broker.id 冲突/opt/kafka/config/server.properties
重点检查:
broker.id
listeners
advertised.listeners
log.dirs
zookeeper.connect # 或 controller.quorum.voters(KRaft)
如果是 KRaft:
/opt/kafka/config/kraft/server.properties
检查:
process.roles=broker,controller
node.id
controller.quorum.voters
ls -lh /data/kafka-logs
检查:
df -i
telnet localhost 9092
nc -vz kafka-host 9092
客户端连不上,90% 是这里配置错误。
kafka-broker-api-versions.sh --bootstrap-server localhost:9092
kafka-topics.sh --bootstrap-server localhost:9092 --list
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--group test-group \
--describe
LAG 很大 → 消费慢或消费失败
echo stat | nc localhost 2181
查看:
kafka-metadata-shell.sh \
--snapshot /data/kafka-logs/__cluster_metadata-0/...
ps -ef | grep kafka
查看:
-Xmx
-Xms
建议:
-Xmx4G -Xms4G
grep -i oom /var/log/syslog
如果 Kafka 是 systemd 管理:
systemctl status kafka
journalctl -u kafka -f
iptables -L -n
ufw status
| 现象 | 原因 |
|---|---|
| Kafka 起不来 | broker.id 冲突 |
| 客户端连不上 | advertised.listeners |
| 消费堆积 | 消费慢 / 消费异常 |
| 磁盘满 | 日志未清理 |
| OOM | JVM 内存不足 |
| 数据丢失 | 副本数不足 |
systemctl status kafkaserver.log 错误df -h / df -iadvertised.listeners如果你愿意,可以告诉我:
我可以直接帮你 定位具体原因并给出修复命令。