温馨提示×

ubuntu kafka配置怎么排查故障

小樊
43
2026-10-02 15:17:00
栏目: 智能运维

在 Ubuntu 上排查 Kafka 故障,通常可以按「系统层 → Kafka 进程层 → 配置层 → 日志层 → 业务层」逐步定位。下面给你一套实用排查清单。


一、先确认基础环境

1. 查看 Kafka 是否在运行

ps -ef | grep kafka
# 或
systemctl status kafka

如果是 Docker:

docker ps | grep kafka
docker logs <container_id>

2. 端口是否监听

Kafka 默认端口:9092

netstat -tunlp | grep 9092
# 或
ss -tunlp | grep 9092

二、检查 Kafka 配置文件(最常见问题)

Kafka 配置文件通常在:

/etc/kafka/server.properties

或

/opt/kafka/config/server.properties

重点检查项 ✅

1. listeners 和 advertised.listeners

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092

❌ 常见错误:

  • advertised.listeners 写成了 localhost
  • 客户端在外网,但 Kafka 只监听内网

测试:

telnet <kafka_ip> 9092

2. broker.id

每个 broker 必须唯一:

broker.id=0

3. Zookeeper(老版本)

zookeeper.connect=localhost:2181

Zookeeper 必须正常:

systemctl status zookeeper

Kafka 3.x+ 可用 KRaft,无 Zookeeper。


三、查看 Kafka 日志(最关键)

日志位置

/var/log/kafka/
# 或
/opt/kafka/logs/

实时查看:

tail -f /var/log/kafka/server.log

常见错误关键字

  • Address already in use → 端口冲突
  • Failed to bind → listeners 配置错误
  • Connection refused → Zookeeper / broker 未启动
  • Topic authorization failed → ACL 问题
  • Leader not available → Topic 未正确创建

四、Kafka 自带命令行排查

1. 查看 broker 是否在线

kafka-broker-api-versions.sh --bootstrap-server <ip>:9092

2. 查看 Topic 状态

kafka-topics.sh --bootstrap-server <ip>:9092 --list
kafka-topics.sh --bootstrap-server <ip>:9092 --describe --topic test

3. 生产 / 消费测试

kafka-console-producer.sh --bootstrap-server <ip>:9092 --topic test
kafka-console-consumer.sh --bootstrap-server <ip>:9092 --topic test --from-beginning

五、系统资源问题

1. 磁盘

Kafka 对磁盘非常敏感:

df -h

⚠️ 磁盘满 → Kafka 停止写入

2. 内存 / JVM

free -h

Kafka 默认堆内存:

export KAFKA_HEAP_OPTS="-Xms1G -Xmx1G"

3. 文件描述符

ulimit -n

建议 ≥ 65535


六、网络 & 防火墙

ufw status
iptables -L

开放端口:

ufw allow 9092

七、快速定位思路总结

连不上 Kafka?

  1. telnet ip 9092
  2. 看 advertised.listeners
  3. 看 server.log

Topic 无法写入?

  1. describe topic
  2. 看 leader 是否 available
  3. 看磁盘是否满

Kafka 起不来?

  1. 看日志第一条 ERROR
  2. 看端口 / broker.id / zookeeper

如果你愿意,可以把:

  • Kafka 版本
  • server.properties 关键配置
  • server.log 报错片段

贴出来,我可以帮你精准定位问题。

0 踩