“Linux 上 Kafka 崩了”这个说法比较笼统,要先看是进程挂了、起不来,还是运行异常(丢消息、消费堆积、频繁 GC/OOM)。下面按排查顺序 + 常见场景 + 应急操作给你一套实战流程。
ps -ef | grep kafka
# 或
jps | grep Kafka
cd $KAFKA_HOME/logs
tail -n 500 server.log
重点看:
OutOfMemoryErrorShutdown brokerFatal errorFailed to acquire lock onZooKeeper session expireddmesg | grep -i kill
# 或
grep -i "out of memory" /var/log/messages
常见于:
现象
Out of memory: Kill process解决
# 看内存
free -h
调整 Kafka 堆内存(不要超过物理内存 50%):
export KAFKA_HEAP_OPTS="-Xms4G -Xmx4G"
⚠️ Kafka 依赖 page cache,堆太大反而更慢
现象
ZooKeeper session expired
Controller moved to another broker
解决
echo stat | nc zk_host 2181
# 先 ZK
zkServer.sh start
# 再 Kafka
kafka-server-start.sh -daemon server.properties
现象
df -h
解决
du -sh /data/kafka-logs/*
log.retention.hours=72
log.cleanup.policy=delete
现象
Configured broker.id 1 doesn't match stored broker.id 2
解决
rm /data/kafka-logs/meta.properties
或修改 server.properties
broker.id=2
现象
原因
解决
-XX:+UseG1GC
# 1. 停 Kafka
kafka-server-stop.sh
# 2. 查日志
tail -n 500 logs/server.log
# 3. 查磁盘 / 内存
df -h
free -h
# 4. 重启
kafka-server-start.sh -daemon config/server.properties
✅ 不要立刻删数据
✅ 先确认:
如果你是:
把下面信息发我,我可以直接帮你定位:
我可以按你的具体报错“对症下药”。