排查 Debian 上 Kafka 故障,一般从 系统 → Java → Kafka 进程 → 配置 → 网络 → 磁盘 → 日志 逐层进行。下面给你一套实用排查清单,适合生产环境。
# CPU / 内存
top
htop
# 磁盘空间(Kafka 很怕磁盘满)
df -h
# 磁盘 IO
iostat -x 1
⚠️ Kafka 对 磁盘空间 & IO 非常敏感。
Kafka 依赖 Java:
java -version
推荐:
检查 JAVA_HOME:
echo $JAVA_HOME
ps -ef | grep kafka
jps
正常应看到:
KafkaQuorumPeerMain(如果用 ZooKeeper)ss -lntp | grep 9092
或:
netstat -lntp | grep 9092
默认在:
/opt/kafka/logs/
或你配置的:
log.dirs=/var/lib/kafka-logs
重点文件:
server.logcontroller.logstate-change.logjournalctl -u kafka -f
在日志中搜索:
grep -i error server.log
grep -i fatal server.log
常见错误:
OutOfMemoryErrorConnection refusedBroker may not be availableDisk errorLeader not available/opt/kafka/config/server.properties
重点参数:
broker.id
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://<IP>:9092
log.dirs
zookeeper.connect
num.partitions
⚠️ 最常见问题:
advertised.listeners 配置错误systemctl status zookeeper
或:
/opt/kafka/bin/zookeeper-shell.sh localhost:2181 ls /
telnet localhost 9092
telnet <kafka_ip> 9092
iptables -L -n
ufw status
kafka-topics.sh --bootstrap-server localhost:9092 --list
查看详情:
kafka-topics.sh --bootstrap-server localhost:9092 --describe
# 生产
kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic test
# 消费
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test --from-beginning
✅ 检查:
log.dirs 磁盘是否满server.properties 是否写错✅ 检查:
advertised.listeners✅ 检查:
kafka-topics.sh --describe
✅ 解决:
log.retention.hours
log.segment.bytes
kafka-run-class.sh kafka.toolsps -ef | grep kafka
ss -lntp | grep 9092
df -h
tail -f /opt/kafka/logs/server.log
kafka-topics.sh --bootstrap-server localhost:9092 --list
如果你愿意,可以告诉我:
我可以 直接帮你定位具体原因。