温馨提示×

ubuntu kafka如何排错

小樊
41
2026-09-20 21:21:31
栏目: 智能运维

在 Ubuntu 上排查 Kafka 问题,通常可以按「系统 → Kafka 进程 → 配置 → 日志 → 网络 → 业务」逐层进行。下面给你一套实用排错清单。


一、基础环境检查

1. Java 是否正常

Kafka 依赖 Java:

java -version

推荐:

  • Kafka 2.x:Java 8
  • Kafka 3.x:Java 11/17

2. 主机名 & hosts

Kafka 对 hostname 很敏感:

hostname
hostname -i
cat /etc/hosts

确保:

127.0.0.1   localhost
<内网IP>   your-hostname

二、Kafka 进程状态

1. 查看进程

ps -ef | grep kafka
jps

应有:

  • Kafka
  • QuorumPeerMain(如果用 ZooKeeper)

2. 端口监听

sudo netstat -tnlp | grep 9092
sudo lsof -i:9092

三、配置文件检查(重点)

1. server.properties 常见坑

vim /opt/kafka/config/server.properties

关键项:

broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<你的IP>:9092
zookeeper.connect=localhost:2181
log.dirs=/tmp/kafka-logs

⚠️ 常见错误:

  • advertised.listeners 写成 localhost,远程连不上
  • log.dirs 权限不足

2. 权限问题

ls -ld /tmp/kafka-logs
whoami

四、日志排错(最关键)

1. Kafka 日志

tail -f /opt/kafka/logs/server.log

常见错误:

  • Address already in use → 端口冲突
  • Failed to acquire lock → 多个 Kafka 实例
  • Connection refused → ZooKeeper 没起

2. ZooKeeper 日志

tail -f /opt/kafka/logs/zookeeper.out

五、ZooKeeper 检查(老版本)

systemctl status zookeeper
# 或
/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties

测试:

echo ruok | nc localhost 2181
# 返回 imok 表示正常

六、Kafka 命令行自检

1. 创建 topic

kafka-topics.sh --create \
--topic test \
--bootstrap-server localhost:9092 \
--partitions 1 --replication-factor 1

2. 查看 topic

kafka-topics.sh --list --bootstrap-server localhost:9092

3. 生产 / 消费测试

kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092

七、常见错误速查表

现象 原因
连不上 9092 advertised.listeners 错
启动立即退出 端口 / 日志目录冲突
topic 无法创建 ZooKeeper 未启动
消费者无数据 group / offset 问题
磁盘暴涨 retention 未配置

八、Kafka 3+(无 ZooKeeper)

如果是 KRaft 模式:

/opt/kafka/bin/kafka-storage.sh random-uuid
/opt/kafka/bin/kafka-storage.sh format

检查:

cat /opt/kafka/config/kraft/server.properties

九、排错建议顺序(总结)

  1. java -version
  2. ps / netstat
  3. server.log
  4. advertised.listeners
  5. 命令行自测

如果你愿意,可以:

  • 贴 server.log 报错
  • 说明 Kafka 版本 + Ubuntu 版本
  • 说清是 本地 / 远程 / Docker

我可以直接帮你定位具体原因。

0 踩