在 Ubuntu 上排查 Kafka 配置问题,通常可以按「系统环境 → Kafka 配置 → 启动日志 → 网络端口 → 客户端验证」的顺序进行。下面给你一套实用排查思路。
Kafka 依赖 Java:
java -version
推荐:
如果没装:
sudo apt install openjdk-11-jdk
常见路径:
/opt/kafka/usr/local/kafka~/kafka查看:
ls /opt/kafka
server.properties(最重要)路径示例:
/opt/kafka/config/server.properties
重点检查项:
broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092
⚠️ 注意:
advertised.listeners 必须是客户端能访问到的 IPlocalhost(除非本地测试)zookeeper.connect=localhost:2181
Kafka 3.0+ 可用 KRaft,但老版本必须配 ZK
/opt/kafka/config/zookeeper.properties
检查:
dataDir=/tmp/zookeeper
clientPort=2181
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
✅ 后台运行:
nohup /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > kafka.log 2>&1 &
tail -f /opt/kafka/logs/server.log
常见错误:
Address already in use → 端口冲突Cannot assign requested address → IP 配置错误Connection refused → ZK 没启动sudo netstat -tunlp | grep 9092
# 或
ss -tunlp | grep 9092
telnet localhost 9092
telnet <服务器IP> 9092
防火墙:
sudo ufw allow 9092
/opt/kafka/bin/kafka-topics.sh \
--create --topic test \
--bootstrap-server localhost:9092 \
--partitions 1 --replication-factor 1
/opt/kafka/bin/kafka-topics.sh \
--list --bootstrap-server localhost:9092
# 生产
kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
# 消费
kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning
| 问题 | 原因 |
|---|---|
| 客户端连不上 | advertised.listeners 配错 |
| 启动立刻退出 | broker.id 重复 |
| 连 ZK 失败 | ZK 未启动或端口错 |
| 云服务器连不上 | 安全组未放开 9092 |
| Docker 中异常 | 容器 IP / host 模式问题 |
你可以贴出:
server.propertiesserver.log 报错部分)我可以直接帮你定位是哪一行配置有问题。