温馨提示×

debian下kafka怎么排错

小樊
42
2026-09-16 01:10:42
栏目: 智能运维

在 Debian 下排查 Kafka 问题,通常可以从 系统环境、Kafka 自身日志、配置、依赖(Zookeeper / 网络)、资源 几个层面入手。下面给你一套比较实用的排错思路。


一、先确认基础环境

1. Java 是否正常

Kafka 依赖 Java:

java -version

推荐:

  • Kafka 2.x:Java 8
  • Kafka 3.x:Java 11+

如果没装:

sudo apt update
sudo apt install openjdk-11-jdk

2. 查看 Kafka 进程状态

ps -ef | grep kafka

或(用 systemd 的话):

systemctl status kafka

如果没起来,看失败原因。


二、看日志(最重要)

1. Kafka 日志位置

默认在:

/var/log/kafka/

或你配置的:

log.dirs=/data/kafka-logs

常见日志文件:

  • server.log
  • controller.log
  • state-change.log

实时看:

tail -f /var/log/kafka/server.log

2. 启动失败常见报错

(1)端口被占用

Address already in use

检查:

ss -lntp | grep 9092

(2)Zookeeper 连不上

Connection to Zookeeper timed out

确认 Zookeeper 状态:

systemctl status zookeeper

测试连接:

zkCli.sh -server localhost:2181

三、配置检查(非常常见)

1. server.properties 关键项

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://你的IP:9092
zookeeper.connect=localhost:2181
log.dirs=/data/kafka-logs

⚠️ 常见问题:

  • advertised.listeners 写了 localhost,但客户端在别的机器
  • log.dirs 目录不存在或没权限

2. 目录权限

ls -ld /data/kafka-logs

修复:

sudo chown -R kafka:kafka /data/kafka-logs

四、网络与防火墙

1. 端口是否通

telnet 服务器IP 9092

或:

nc -vz 服务器IP 9092

2. 防火墙(Debian)

sudo ufw status

放开:

sudo ufw allow 9092

五、基本功能测试

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

六、资源问题排查

1. 磁盘

df -h

Kafka 对磁盘很敏感,满了会直接不可用。

2. 内存

free -h

Kafka 堆内存配置在:

/etc/kafka/heap.options

或启动脚本里:

KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"

七、Kafka 3.x(无 Zookeeper 模式)

如果是 KRaft 模式:

kafka-storage.sh format \
  --config /etc/kafka/server.properties \
  --cluster-id xxx

检查:

systemctl status kafka

日志重点看:

  • QuorumController
  • Metadata log

八、常见排错速查表

现象 可能原因
启动秒退 配置错误 / 端口占用
连不上 advertised.listeners 错
topic 创建失败 Zookeeper / 磁盘权限
消费者收不到 offset / 分组问题
性能差 磁盘 IO / 分区数少

如果你愿意,可以把 具体报错日志server.properties 贴出来,我可以直接帮你定位。

0