排查 Linux 上 Kafka 故障,一般遵循 “从外到内、从集群到应用” 的思路。下面给你一套实战向的排查清单,覆盖常见故障场景。
# 查看进程
ps -ef | grep kafka
# 或用 systemd
systemctl status kafka
netstat -tunlp | grep 9092
# 或
ss -tunlp | grep 9092
Kafka 对磁盘非常敏感:
df -h
df -i
常见问题:
默认路径(视安装方式):
# 原生安装
tail -f /opt/kafka/logs/server.log
# 包管理或 systemd
journalctl -u kafka -f
重点关注:
ERRORShutdownIOExceptionNot enough replicasLeader not availablekafka-broker-api-versions.sh --bootstrap-server localhost:9092
kafka-topics.sh --bootstrap-server localhost:9092 --describe
关注:
-1kafka-consumer-groups.sh \
--bootstrap-server localhost:9092 \
--describe --group your-group
关注:
LAG 是否持续增长CURRENT-OFFSET 是否不前进可能原因:
auto.create.topics.enable=false排查:
telnet broker_ip 9092
kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
检查:
kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test --from-beginning
原因:
排查:
# GC 日志
grep -i "full gc" /opt/kafka/logs/kafkaServer-gc.log
# IO
iostat -x 1
临时处理:
log.retention.hoursdu -sh /opt/kafka/logs/*
如果是 Kafka < 2.8:
zkCli.sh
ls /brokers/ids
get /controller
若 /brokers/ids 为空 → broker 未注册
# CPU / 内存
top
free -h
# 网络
ping broker_ip
tcpdump -i eth0 port 9092
# 文件句柄
ulimit -n
如果你能告诉我:
我可以直接帮你定位具体原因。