Ubuntu Kafka配置如何进行故障排查
导读:Ubuntu Kafka 配置故障排查手册 一 快速定位流程 服务状态与日志 查看服务状态:sudo systemctl status kafka 查看 systemd 日志:journalctl -u kafka -n 100 --n...
Ubuntu Kafka 配置故障排查手册
一 快速定位流程
- 服务状态与日志
- 查看服务状态:
sudo systemctl status kafka - 查看 systemd 日志:
journalctl -u kafka -n 100 --no-pager -f - 查看 Kafka 运行时日志:
tail -f /var/log/kafka/server.log
- 查看服务状态:
- 配置与关键项
- 核对
server.properties中的 broker.id(集群内唯一)、listeners/advertised.listeners(对外可达地址)、zookeeper.connect(或 KRaft 相关配置)、log.dirs(数据目录权限与空间)。
- 核对
- 网络连通
- 本机端口:
ss -ltnp | grep :9092或lsof -i :9092 - 跨机连通:
ping < broker_ip>、telnet < broker_ip> 9092或nc -vz < broker_ip> 9092
- 本机端口:
- 资源与依赖
- 资源:
free -h、df -h、top/htop、iostat -x 1 - 依赖:ZooKeeper 是否就绪(若使用 ZK 模式);KRaft 模式则检查 process.roles、controller.quorum.voters 等配置是否正确。
- 资源:
二 常见故障与修复要点
- systemd 启动失败
- 现象:
Active: failed,主进程很快退出。 - 处理:用
journalctl -u kafka定位;检查 Type=forking/ExecStart/Restart;必要时设置 SuccessExitStatus;在单元文件里提升 LimitNOFILE=65536;确认脚本确实拉起 Kafka 且未立即退出。
- 现象:
- Fatal error during KafkaServer startup
- 常见根因:配置错误(端口、目录、ZooKeeper 地址)、端口冲突、Java 版本/环境不对、文件权限不足、磁盘空间不足。
- 处理:逐项核对
server.properties、释放或更改端口、校正 JAVA_HOME、修正目录权限、清理磁盘或扩容 log.dirs。
- 无法远程连接
- 现象:本地可连
localhost:9092,远程连不通。 - 处理:确保
listeners=PLAINTEXT://0.0.0.0:9092且advertised.listeners为客户端可达的 IP:9092;云主机需放通安全组/防火墙;用telnet/nc验证连通。
- 现象:本地可连
- 配置与系统限制问题
- 文件描述符过低:在
/etc/security/limits.d/99-nofile.conf设置nofile 65536+,并在 systemd 单元中LimitNOFILE=65536;重启会话或系统生效。 - 端口冲突:更换
listeners端口或释放占用进程。 - 权限/磁盘:确保 Kafka 用户对配置、日志、数据目录可读写;清理或扩容磁盘。
- 文件描述符过低:在
- 消息延迟或吞吐异常
- 检查生产者
acks、retries、batch.size、linger.ms、compression.type; - 检查消费者
fetch.min.bytes、max.poll.records、会话超时; - 监控 CPU/内存/磁盘 I/O/网络;必要时升级至 SSD、优化分区数与并发度。
- 检查生产者
三 最小连通性验证脚本
- 创建测试主题
bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
- 列出主题
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
- 控制台生产
bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
- 控制台消费
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
- 远程连通测试
nc -vz < broker_ip> 9092或telnet < broker_ip> 9092
四 关键配置与优化建议
- listeners 与 advertised.listeners
- 内网:
listeners=PLAINTEXT://0.0.0.0:9092 - 外网:
advertised.listeners=PLAINTEXT://< 公网或内网可达IP> :9092
- 内网:
- 资源与系统
- 文件描述符:
nofile ≥ 65536(limits 与 systemd 同时设置) - 内存与 GC:堆大小适度(如
-Xms/-Xmx一致),推荐 G1GC;为操作系统 Page Cache 留出余量 - 存储:优先 SSD;监控 磁盘使用率 与 I/O 等待
- 文件描述符:
- 生产者可靠性
- 至少使用
acks=1;强一致用acks=all并配置min.insync.replicas≥2 - 启用重试与幂等:
retries> 0、enable.idempotence=true
- 至少使用
- 消费者可靠性
- 处理完成再提交(禁用自动提交或改为手动提交),实现 幂等 与 可重入 处理
- 版本与模式
- 新集群建议考虑 KRaft 模式(Kafka ≥ 3.0),减少 ZooKeeper 依赖并简化部署与恢复。
五 高频命令速查表
| 目标 | 命令 |
|---|---|
| 服务状态 | sudo systemctl status kafka |
| 查看 systemd 日志 | journalctl -u kafka -n 100 -f |
| 查看 Kafka 日志 | tail -f /var/log/kafka/server.log |
| 端口占用 | `ss -ltnp |
| 连通性测试 | ping <
ip>
、telnet <
ip>
9092、nc -vz <
ip>
9092 |
| 资源检查 | free -h、df -h、top/htop、iostat -x 1 |
| Topic 管理 | bin/kafka-topics.sh --list/create --bootstrap-server localhost:9092 |
| 控制台生产/消费 | bin/kafka-console-producer.sh / bin/kafka-console-consumer.sh |
| 文件描述符限制 | ulimit -n;配置于 /etc/security/limits.d/ 与 systemd LimitNOFILE |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Kafka配置如何进行故障排查
本文地址: https://pptw.com/jishu/780608.html
