CentOS 上 Kafka 故障排查方法
一 快速定位流程
二 常见故障与对应排查要点
| 故障现象 | 快速检查 | 处理建议 |
|---|---|---|
| 启动失败,提示 Failed to start Kafka Server | 查看 server.log;检查 Zookeeper 状态与 zookeeper.connect;核对 log.dirs 权限与存在性;检查 9092 端口占用 | 启动/修复 Zookeeper;创建目录并赋权(如 mkdir -p /data/kafka && chown kafka:kafka /data/kafka);释放或更换端口;修正 listeners 配置后重启 |
| 启动报错 Cannot allocate memory | 查看 journalctl/kafkaServer.out;执行 free -m、dmesg | 释放内存或降低 Kafka/JVM 内存占用(如调小堆);必要时扩容;前台启动确认具体报错 |
| 只有部分 Broker 能启动 | 对比各节点 server.properties 的 broker.id;检查 log.dirs/meta.properties 中 broker.id 是否一致 | 若更换数据目录或复用旧数据,确保 meta.properties 的 broker.id 与当前 broker.id 一致;新增节点需清理旧 log 目录后启动 |
| 通过 systemctl 起不来,手动脚本可起 | 检查 systemd 单元 Environment=JAVA_HOME=…;确认 ExecStart 路径与用户;查看 journalctl | 在 kafka-server-start.sh 或 systemd 单元中显式设置 JAVA_HOME 与 PATH;核对用户、工作目录与权限 |
| 生产者/消费者超时或无法发现 Topic | 用 telnet/nc 测试 9092;核对 listeners/advertised.listeners 与客户端 bootstrap.servers;排查 firewalld/SELinux | 统一使用可达的 IP 或 FQDN;开放 9092/tcp;必要时临时关闭防火墙/SELinux 验证;客户端使用 broker 列表 提高容错 |
| 消费者 Rebalance 失败或滞后严重 | 查看消费者组状态 kafka-consumer-groups.sh --describe;检查 group.id 一致性与网络稳定性 | 修正配置、稳定网络、必要时重启消费者;升级客户端版本;优化分区数与处理逻辑以降低滞后 |
三 系统与服务配置核查清单
四 验证与性能基线测试