温馨提示×

debian Kafka为啥起不来

小樊
50
2026-09-16 01:34:41
栏目: 智能运维

Debian 上 Kafka 起不来,原因非常多,下面我按最常见 → 较少见帮你系统排查一遍。你对着看基本能定位。


一、先看日志(最重要)

Kafka 起不来 一定要看日志,不要盲猜:

# Kafka 自己的日志
tail -n 100 /opt/kafka/logs/server.log

# 如果是 systemd
journalctl -u kafka -n 100

把报错贴出来,比描述“起不来”有用 10 倍。


二、最常见的原因(90% 在这里)

1️⃣ Java 没装或版本不对

Kafka 必须依赖 Java:

java -version
  • Kafka 3.x:Java 8 / 11 / 17
  • 没装会直接起不来

解决:

apt install openjdk-17-jdk

并设置:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

2️⃣ Zookeeper 没启动(老版本 Kafka)

如果你用的是 Kafka 2.x / 3.0–3.3:

# 必须先启动 Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties

# 再启动 Kafka
bin/kafka-server-start.sh config/server.properties

如果 Zookeeper 没起,Kafka 会直接退出。


3️⃣ Kafka 3.4+ 但还在用 Zookeeper 模式

新版本默认 KRaft,但很多人还在用老配置:

  • 如果用 KRaft:
bin/kafka-server-start.sh config/kraft/server.properties
  • 如果用 Zookeeper:
bin/kafka-server-start.sh config/server.properties

搞混会起不来。


4️⃣ server.properties 配置错误

常见坑:

listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://你的IP:9092
log.dirs=/var/lib/kafka-logs

错误示例:

  • log.dirs 目录不存在
  • 权限不足
  • broker.id 重复(多个节点)

检查:

ls -ld /var/lib/kafka-logs

5️⃣ 端口被占用

ss -lntp | grep 9092

如果占用:

  • 改端口
  • 或杀掉占用进程

6️⃣ 磁盘空间不足

df -h

Kafka 对磁盘非常敏感,满了直接挂。


三、systemd 起不来的特殊情况

如果你用 systemd:

systemctl status kafka

常见错误:

  • JAVA_HOME 没在 service 文件里
  • 用户权限不对(kafka 用户没权限读配置)

示例 service:

[Service]
User=kafka
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

四、快速自检清单 ✅

你可以一条条对:

  • [ ] Java 已安装
  • [ ] Zookeeper 已启动(老版本)
  • [ ] 日志目录存在且有权限
  • [ ] broker.id 不冲突
  • [ ] 端口没被占用
  • [ ] 磁盘没满
  • [ ] 看的是 server.log,不是只看终端

五、如果你愿意,我可以精准帮你

你可以直接贴:

  1. Kafka 版本
  2. 启动方式(手动 / systemd)
  3. server.log 最后 30–50 行报错

我可以直接告诉你哪一行导致起不来,怎么改。

0 踩