温馨提示×

Debian Kafka报错怎么查

小樊
39
2026-07-11 18:08:53
栏目: 智能运维

在 Debian 上排查 Kafka 报错,一般按下面这个思路来查,基本都能定位到问题。


一、先看 Kafka 自身的日志(最重要)

Kafka 的日志默认在:

/opt/kafka/logs/
# 或
/var/log/kafka/

常见日志文件:

  • server.log ✅(最重要)
  • controller.log
  • state-change.log
  • kafkaServer.out

查看最新错误:

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

实时查看:

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

二、确认 Kafka 是否真的启动成功

1️⃣ 看进程

ps -ef | grep kafka

正常应看到 kafka.Kafka 进程。

2️⃣ 看端口(默认 9092)

ss -lntp | grep 9092
# 或
netstat -lntp | grep 9092

如果端口没监听,说明 Kafka 没启动成功。


三、Broker 常见报错 & 排查

1️⃣ java.net.UnknownHostException

原因listeners 配置的主机名解析不了

查看配置:

grep listeners /opt/kafka/config/server.properties

✅ 推荐配置(本地或内网):

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092

然后:

systemctl restart kafka
# 或
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties

2️⃣ ZooKeeper 相关错误

Kafka 依赖 ZooKeeper(老版本)

常见报错:

  • Connection refused
  • Timeout connecting to ZooKeeper

检查 ZooKeeper:

systemctl status zookeeper
ss -lntp | grep 2181

测试连接:

/opt/kafka/bin/zookeeper-shell.sh localhost:2181 ls /

ZooKeeper 没启动,Kafka 一定起不来。


3️⃣ 磁盘 / 权限问题

查看 Kafka 数据目录:

grep log.dirs /opt/kafka/config/server.properties

检查权限:

ls -ld /tmp/kafka-logs

修复权限:

chown -R kafka:kafka /tmp/kafka-logs

四、客户端连接报错排查

1️⃣ LEADER_NOT_AVAILABLE

通常是:

  • broker 没完全启动
  • advertised.listeners 配置错误

测试:

/opt/kafka/bin/kafka-topics.sh \
--bootstrap-server localhost:9092 \
--list

2️⃣ Topic not present in metadata

  • topic 不存在
  • broker 地址写错

创建 topic 测试:

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

五、系统层面排查(Debian)

1️⃣ Java 是否正常

java -version

Kafka 需要 Java 8 / 11 / 17(看 Kafka 版本)

2️⃣ 内存不足

Kafka 默认吃内存较多,查看:

free -h

可调整:

export KAFKA_HEAP_OPTS="-Xmx512M -Xms256M"

六、用 systemd 的话这样查

如果你是用 systemd 管理 Kafka:

journalctl -u kafka -n 100
journalctl -u kafka -f

七、快速定位流程(推荐你照着做)

  1. 贴出 server.log 最后 50 行
  2. 说明:
    • Kafka 版本
    • Debian 版本
    • 是单机还是集群
    • 报错发生在 启动 / 生产 / 消费

如果你愿意,可以直接把 报错日志贴出来,我可以帮你逐行分析 ✅

0