温馨提示×

Debian怎么排查Kafka故障

小樊
44
2026-08-06 20:20:36
栏目: 智能运维

在 Debian 上排查 Kafka 故障,一般从 系统 → Java → Kafka 进程 → 配置 → 网络 → 磁盘/性能 → 业务 逐层排查。下面给你一套常用、实战型的排查流程。


一、基础环境检查

1. 操作系统状态

# 查看系统负载
top
htop

# 查看内存
free -h

# 查看磁盘使用
df -h

# 查看磁盘 IO
iostat -x 1

重点:

  • 磁盘是否满(/var 或 Kafka 数据目录)
  • 是否有大量 IO 等待(Kafka 很吃磁盘)

2. Java 环境

Kafka 依赖 Java:

java -version

建议:

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

二、Kafka 进程与端口

1. 进程是否存活

ps -ef | grep kafka
jps

正常应看到:

  • Kafka
  • QuorumPeerMain(如果用 ZooKeeper)

2. 端口监听

ss -lntp | grep java

常见端口:

  • 9092:Kafka
  • 2181:ZooKeeper(老版本)
  • 9093:SSL / KRaft

三、Kafka 日志排查(最关键)

1. Kafka 日志目录

默认:

/opt/kafka/logs/

或:

/var/log/kafka/

重点文件:

server.log
controller.log
state-change.log

查看错误:

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

2. 启动失败常见错误

  • Address already in use → 端口冲突
  • java.io.FileNotFoundException → 数据目录权限
  • OutOfMemoryError → JVM 内存不足
  • Broker id already exists → broker.id 冲突

四、Kafka 配置检查

1. 配置文件

/opt/kafka/config/server.properties

重点检查:

broker.id
listeners
advertised.listeners
log.dirs
zookeeper.connect   # 或 controller.quorum.voters(KRaft)

2. KRaft 模式(Kafka 3.x)

如果是 KRaft:

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

检查:

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

五、磁盘与数据目录

1. Kafka 数据目录

ls -lh /data/kafka-logs

检查:

  • 分区是否异常多
  • segment 是否损坏

2. 磁盘 inode 是否满

df -i

六、网络与连通性

1. 本机测试

telnet localhost 9092

2. 外部测试

nc -vz kafka-host 9092

3. 查看 advertised.listeners

客户端连不上,90% 是这里配置错误。


七、Kafka 命令行排查

1. 查看 Broker 状态

kafka-broker-api-versions.sh --bootstrap-server localhost:9092

2. 查看 Topic

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

3. 查看消费者组

kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

4. 查看消费堆积

kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--group test-group \
--describe

LAG 很大 → 消费慢或消费失败


八、ZooKeeper / KRaft 排查

1. ZooKeeper(老版本)

echo stat | nc localhost 2181

查看:

  • mode(leader / follower)
  • 是否连接 Kafka

2. KRaft Controller

kafka-metadata-shell.sh \
--snapshot /data/kafka-logs/__cluster_metadata-0/...

九、JVM 排查(OOM / 卡死)

1. JVM 参数

ps -ef | grep kafka

查看:

-Xmx
-Xms

建议:

-Xmx4G -Xms4G

2. 内存溢出

grep -i oom /var/log/syslog

十、Debian 特有排查

1. systemd 服务

如果 Kafka 是 systemd 管理:

systemctl status kafka
journalctl -u kafka -f

2. 防火墙

iptables -L -n
ufw status

十一、常见故障速查表

现象 原因
Kafka 起不来 broker.id 冲突
客户端连不上 advertised.listeners
消费堆积 消费慢 / 消费异常
磁盘满 日志未清理
OOM JVM 内存不足
数据丢失 副本数不足

十二、推荐排查顺序(实战)

  1. systemctl status kafka
  2. server.log 错误
  3. df -h / df -i
  4. advertised.listeners
  5. 消费 LAG
  6. JVM 内存

如果你愿意,可以告诉我:

  • Kafka 版本
  • 是否有报错日志
  • 起不来 / 连不上 / 消费慢 / 丢数据

我可以直接帮你 定位具体原因并给出修复命令

0