在 Ubuntu 上排查 Kafka 配置问题,通常可以从 日志、配置、端口、依赖服务(Zookeeper / KRaft)、权限 几个维度入手。下面给你一套实用排错思路和常见错误清单。
Kafka 依赖 Java:
java -version
建议:
jps
应能看到:
KafkaQuorumPeerMain(Zookeeper 模式)KafkaRaftServer(KRaft 模式)如果看不到 Kafka,说明启动失败。
/opt/kafka/logs/ # 二进制包
/var/log/kafka/ # apt 安装
常用命令:
tail -n 200 /opt/kafka/logs/server.log
tail -n 200 /opt/kafka/logs/zookeeper.out
⚠️ 90% 的问题看 log 就能定位
server.properties 关键配置broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your_ip:9092
zookeeper.connect=localhost:2181
log.dirs=/tmp/kafka-logs
常见错误:
advertised.listeners 没配 → 客户端连不上log.dirs 权限不足broker.id 重复systemctl status zookeeper
# 或
zkServer.sh status
报错示例:
Error contacting service. It is probably not running.
解决:
zkServer.sh start
kafka-storage.sh random-uuid
kafka-storage.sh format -t <uuid> -c config/kraft/server.properties
没格式化会直接报错。
server.properties 示例process.roles=broker,controller
node.id=1
controller.quorum.voters=1@localhost:9093
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://localhost:9092
常见错误:
node.id 重复quorum.voters 不匹配ss -lntp | grep 9092
sudo ufw status
sudo ufw allow 9092
advertised.listeners 必须是公网 IPConnection to node -1 could not be established
排查:
telnet localhost 9092
✅ 解决顺序:
advertised.listeners 是否正确useradd kafka
chown -R kafka:kafka /opt/kafka
su kafka
chmod 755 /tmp/kafka-logs
✅ Java 正常
✅ Zookeeper / KRaft 启动
✅ server.properties 无重复 ID
✅ advertised.listeners 正确
✅ 端口通
✅ 日志无 ERROR
如果你愿意,可以把 具体报错日志 或 server.properties 贴出来,我可以直接帮你定位是哪一行配置有问题。