CentOS 上 Kafka 故障排查手册
一 快速定位流程
二 常见故障与修复对照表
| 症状 | 高频原因 | 快速检查 | 修复建议 |
|---|---|---|---|
| 启动失败,提示“Failed to start Kafka Server” | Zookeeper 未起或连接串错误;log.dirs不存在/权限不足;9092端口被占用 | systemctl status zookeeper;cat server.properties 中 zookeeper.connect;ls -ld log.dirs;netstat/ss 查 9092 | 启动/修复 Zookeeper;修正连接串;mkdir -p 并 chown/chmod 目录;释放或更换端口 |
| Fatal error during KafkaServer startup | 配置项错误(端口、目录、broker.id 冲突)、磁盘满、Java 环境异常 | 查看 server.log 首屏异常;df -h;java -version;echo $JAVA_HOME | 修正配置、清理磁盘、安装合适 JDK 并正确设置 JAVA_HOME |
| 启动即退或报“Cannot allocate memory” | 物理内存不足或 JVM 堆过大 | 前台启动直接看到 mmap 失败;free -m;dmesg | 释放内存或降低堆(如 KAFKA_HEAP_OPTS=“-Xms2G -Xmx2G”),必要时加 swap |
| 创建/生产/消费时报 LEADER_NOT_AVAILABLE | listeners/advertised.listeners/hostname配置不当,跨主机无法解析 | kafka-topics.sh --describe;cat server.properties 中 listeners/advertised.listeners | 统一用IP配置 advertised.listeners=PLAINTEXT:// |
| 客户端超时或无法连接 | 防火墙/SELinux 拦截、监听地址绑定到 127.0.0.1 | firewall-cmd --list-ports;getenforce;ss -lntp | 开放 9092/tcp;必要时临时 setenforce 0;确保监听 0.0.0.0 或正确网卡 |
| 偶发报错或性能骤降 | 文件句柄/进程数限制过低 | ulimit -a;cat /etc/security/limits.conf | 提升 nofile/nproc 至65536并重启会话/服务 |
三 关键配置与网络连通性检查
四 系统资源与性能瓶颈排查
五 最小复现与验证步骤