温馨提示×

debian kafka如何排查故障

小樊
37
2026-09-28 02:40:41
栏目: 智能运维

在 Debian 上排查 Apache Kafka 故障,一般可以按“系统层 → Kafka 进程层 → 日志层 → 集群/配置层 → 客户端层”逐层进行。下面给你一套实用排查思路和常用命令。


一、基础环境与系统排查

1. 检查 Kafka 进程是否运行

ps -ef | grep kafka
# 或
systemctl status kafka

如果是 systemd 安装:

systemctl status kafka
journalctl -u kafka -n 200

2. 检查端口监听

Kafka 默认端口:

  • 9092(客户端)
  • 2181(ZooKeeper,若使用)
ss -lntp | grep 9092
ss -lntp | grep 2181

3. 检查系统资源

top
free -h
df -h
iostat -x 1

常见问题:

  • 磁盘满 → Kafka 停止写入
  • 内存不足 → OOM
  • CPU 飙高 → GC 或消息积压

二、Kafka 日志排查(最重要)

1. Kafka 日志位置

通常在:

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

关键日志文件:

  • server.log:核心日志
  • controller.log:控制器相关
  • state-change.log:分区状态变更
  • kafkaServer.out:启动输出

查看最近错误:

tail -n 200 /opt/kafka/logs/server.log | grep -i error

2. 常见错误关键词

  • Leader not available
  • Not enough replicas
  • Offset out of range
  • Connection refused
  • ZooKeeper session expired
  • Failed to acquire lock

三、ZooKeeper 排查(如使用)

1. 检查 ZooKeeper 状态

systemctl status zookeeper
/opt/kafka/bin/zookeeper-shell.sh localhost:2181
> ls /
> ls /brokers/ids

2. 常见问题

  • ZooKeeper 宕机 → Kafka 无法选主
  • Session 超时 → Broker 频繁掉线

四、Kafka 集群状态排查

1. 查看 Broker 列表

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

或(旧版本):

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

2. 查看 Topic 状态

kafka-topics.sh --bootstrap-server localhost:9092 \
  --describe --topic your_topic

重点看:

  • Leader 是否存在
  • ISR 是否完整
  • 副本是否 Under-Replicated

3. 消费者组状态

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

关注:

  • LAG 是否持续增长
  • 消费者是否存活

五、配置层面排查

1. 检查 server.properties

cat /opt/kafka/config/server.properties

重点配置:

listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your_host:9092
num.partitions=
default.replication.factor=
min.insync.replicas=
log.dir=

常见坑:

  • advertised.listeners 配置错误 → 客户端连不上
  • log.dir 磁盘满
  • 副本数 > Broker 数

六、客户端排查

1. 生产者测试

kafka-console-producer.sh \
  --bootstrap-server localhost:9092 \
  --topic test

2. 消费者测试

kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test --from-beginning

3. 常见客户端问题

  • 网络不通
  • 防火墙
  • 使用了错误 hostname
  • 客户端版本不兼容

七、典型故障速查表

现象 可能原因 排查点
无法启动 配置错误 server.log
写入失败 磁盘满 df -h
消费滞后 消费慢 LAG
Leader 不存在 Broker 宕机 broker 列表
频繁重平衡 消费慢 GC / 线程
连不上 防火墙 ss / iptables

八、建议的监控(长期)

  • Kafka Manager / CMAK
  • Prometheus + Kafka Exporter
  • Grafana
  • 日志集中(ELK / Loki)

如果你能贴出:

  • Kafka 版本
  • 错误日志
  • 是生产/消费/启动问题

我可以给你更精确的排查步骤。

0 踩