温馨提示×

debian kafka怎么排错

小樊
46
2026-09-09 21:47:05
栏目: 智能运维

在 Debian 上排查 Kafka 问题,一般按「系统 → Kafka 进程 → 配置 → 日志 → 网络 → 客户端」逐层排查。下面给你一套实用排错手册


一、先看 Kafka 是否真的在跑

systemctl status kafka
# 或
ps -ef | grep kafka

如果是手动启动:

jps
# 应看到 Kafka 进程

没起来常见原因:

  • ZooKeeper 没起(老版本 Kafka)
  • 配置文件路径不对
  • 磁盘权限问题

二、ZooKeeper(Kafka < 3.0 或还在用 ZK)

systemctl status zookeeper

测试 ZK:

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

Kafka 启动前,ZK 必须正常。


三、核心日志位置(最重要)

Kafka 日志

/var/log/kafka/
# 或你配置的
log.dirs=/var/lib/kafka/logs

重点看:

server.log

常见错误关键词:

  • Address already in use → 端口冲突
  • No space left on device → 磁盘满
  • Failed to acquire lock → 重复启动
  • Connection refused → ZK / Broker 没起

四、Kafka 配置文件检查

常见文件:

/etc/kafka/server.properties

重点配置:

broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://你的IP:9092
zookeeper.connect=localhost:2181
log.dirs=/var/lib/kafka/logs

容易踩坑:

  • advertised.listeners 写错 → 客户端连不上
  • log.dirs 权限不对 → 起不来

五、磁盘 & 权限问题(Debian 常见)

df -h

Kafka 用户权限:

ls -ld /var/lib/kafka/logs

修复示例:

chown -R kafka:kafka /var/lib/kafka

六、网络 & 防火墙

ss -lntp | grep 9092

防火墙:

ufw status
# 或
iptables -L

开放端口:

ufw allow 9092

七、用命令行自测 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

八、Kafka 3.x(KRaft 模式)

如果是 KRaft(无 ZooKeeper):

/etc/kafka/kraft/server.properties

检查:

process.roles=broker,controller
controller.quorum.voters=...

初始化:

kafka-storage.sh format -t <cluster-id> -c /etc/kafka/kraft/server.properties

九、常见错误速查表

错误 原因
broker 起不来 ZK 没起 / 配置错
客户端连不上 advertised.listeners 错
topic 创建失败 replication > broker 数
消费不到消息 group / offset 问题
磁盘爆满 log.retention 没配

十、排错顺序建议(记住这个)

  1. systemctl status
  2. server.log
  3. 检查 ZK / KRaft
  4. 检查配置
  5. 网络 & 防火墙
  6. 命令行自测

如果你愿意,可以把:

  • Kafka 版本
  • Debian 版本
  • 具体报错日志

贴出来,我可以直接帮你定位。

0