下面给你一套在 Linux 上排查 Kafka 问题的常见思路和命令,按「从外到内」的顺序来,比较实用。
ps -ef | grep kafka
或
jps
看有没有 Kafka 进程。
如果没起来:
# 看启动日志
tail -n 200 /opt/kafka/logs/server.log
Kafka 日志一般在:
$KAFKA_HOME/logs/server.log
常用:
tail -f logs/server.log
grep ERROR logs/server.log
grep WARN logs/server.log
常见错误:
Address already in use → 端口被占用No route to host → 网络问题Leader not available → topic 没 LeaderDisk error → 磁盘问题netstat -tunlp | grep 9092
# 或
ss -tunlp | grep 9092
确认:
0.0.0.0 还是 127.0.0.1如果是 127.0.0.1,外部连不上。
重点看:
config/server.properties
关键项:
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<外网IP>:9092
zookeeper.connect=localhost:2181
log.dirs=/data/kafka-logs
常见坑:
advertised.listeners 配错 → 客户端连不上log.dirs 磁盘满 → 无法写入df -h
du -sh /data/kafka-logs
权限:
ls -ld /data/kafka-logs
Kafka 用户必须有写权限。
kafka-topics.sh --list --bootstrap-server localhost:9092
kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092
看:
kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
kafka-consumer-groups.sh --describe --group my-group --bootstrap-server localhost:9092
看:
echo stat | nc localhost 2181
或看日志:
tail -f zookeeper.log
ping <kafka-ip>
telnet <kafka-ip> 9092
防火墙:
iptables -L
# 或
firewall-cmd --list-all
如果你愿意,可以告诉我:
我可以直接帮你定位。