Ubuntu 上 Kafka 故障排查实操手册
一 快速定位流程
二 常见故障与修复要点
| 症状 | 快速检查 | 修复建议 |
|---|---|---|
| 服务起不来或反复重启 | 查看 server.log;核对 server.properties 语法与关键项 | 修正配置(如 listeners/advertised.listeners、zookeeper.connect 或 KRaft 配置);端口冲突则更换端口或停用占用进程 |
| 无法创建 Topic,提示 “Replication factor: 1 larger than available brokers: 0” | 检查 Broker 是否在运行;确认 zookeeper.connect 地址 | 启动 Broker;使用正确的 ZooKeeper 连接串 |
| 端口占用 “Address already in use” | **netstat -tulpen | grep 9092** 或 lsof -i:9092 |
| 客户端连不上或超时 | telnet |
开放 9092/2181;核对 advertised.listeners 为客户端可达地址 |
| 大量 “Too many open files” | ulimit -n;系统限制与进程限制 | 提升 nofile(如 /etc/security/limits.d/99-nofile.conf 设为 65536 或更高),并配置 systemd 服务默认限制 |
| 磁盘写满 | df -h;du -sh $KAFKA_LOG_DIRS | 清理过期日志或扩容磁盘;调整 log.retention.hours / log.retention.bytes |
| 消息延迟高或抖动 | ping 延迟;客户端 producer.buffer.memory / linger.ms / batch.size;Broker/网络 IO | 优化生产者批量与缓冲;排查网络抖动与 GC;必要时扩容分区提升并行 |
| 消息积压 | 消费者 lag;分区数;消费逻辑效率 | 增加分区、优化消费并发与批量;必要时调整再均衡策略 |
| 数据丢失 | 生产者 acks、retries;Broker min.insync.replicas | 设置 acks=all、retries>0;Broker 端 min.insync.replicas≥2 |
| 消费者重复消费 | 提交 Offset 策略;auto.commit.interval.ms | 处理完成后同步提交;缩短自动提交间隔或改为手动提交 |
| 以上条目覆盖了 Ubuntu 上高频的 Kafka 故障场景与处置要点,可据此逐项核对与修复。 |
三 配置与系统优化关键点
四 一键排查命令清单