温馨提示×

ubuntu kafka配置怎么排错

小樊
45
2026-09-08 14:21:34
栏目: 智能运维

在 Ubuntu 上排查 Kafka 配置问题,通常可以从 日志、配置、端口、依赖服务(Zookeeper / KRaft)、权限 几个维度入手。下面给你一套实用排错思路和常见错误清单。


一、基础检查(先确认环境)

1. Java 是否正常

Kafka 依赖 Java:

java -version

建议:

  • Kafka 2.x / 3.x:Java 8 或 11
  • Kafka 3.4+:Java 11 推荐

2. Kafka 进程是否启动

jps

应能看到:

  • Kafka
  • QuorumPeerMain(Zookeeper 模式)
  • KafkaRaftServer(KRaft 模式)

如果看不到 Kafka,说明启动失败。


二、看日志(最重要)

Kafka 日志位置

/opt/kafka/logs/        # 二进制包
/var/log/kafka/         # apt 安装

常用命令:

tail -n 200 /opt/kafka/logs/server.log

Zookeeper 日志

tail -n 200 /opt/kafka/logs/zookeeper.out

⚠️ 90% 的问题看 log 就能定位


三、Zookeeper 模式常见配置错误(老版本)

1. 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 重复

2. Zookeeper 没启动

systemctl status zookeeper
# 或
zkServer.sh status

报错示例:

Error contacting service. It is probably not running.

解决:

zkServer.sh start

四、KRaft 模式(Kafka 3.3+)

1. 必须用 UUID

kafka-storage.sh random-uuid
kafka-storage.sh format -t <uuid> -c config/kraft/server.properties

没格式化会直接报错。


2. 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 不匹配
  • 同时启用 Zookeeper 和 KRaft

五、网络与端口问题

1. 端口是否被占用

ss -lntp | grep 9092

2. 防火墙

sudo ufw status
sudo ufw allow 9092

3. 云服务器

  • 安全组必须放行 9092 / 9093
  • advertised.listeners 必须是公网 IP

六、客户端连不上常见原因

报错示例

Connection to node -1 could not be established

排查:

telnet localhost 9092

✅ 解决顺序:

  1. advertised.listeners 是否正确
  2. 客户端用的 IP 是否一致
  3. 是否在 Docker / 云环境

七、权限问题(Ubuntu 特有)

1. 不能用 root 跑 Kafka(新版本会拒绝)

useradd kafka
chown -R kafka:kafka /opt/kafka
su kafka

2. 日志目录权限

chmod 755 /tmp/kafka-logs

八、快速排错 Checklist

✅ Java 正常
✅ Zookeeper / KRaft 启动
server.properties 无重复 ID
advertised.listeners 正确
✅ 端口通
✅ 日志无 ERROR


如果你愿意,可以把 具体报错日志server.properties 贴出来,我可以直接帮你定位是哪一行配置有问题。

0