温馨提示×

kafka在linux咋排错

小樊
39
2026-10-05 06:58:08
栏目: 智能运维

下面给你一套在 Linux 上排查 Kafka 问题的常见思路和命令,按「从外到内」的顺序来,比较实用。


一、先确认 Kafka 是否在跑

ps -ef | grep kafka

或

jps

看有没有 Kafka 进程。

如果没起来:

# 看启动日志
tail -n 200 /opt/kafka/logs/server.log

二、看 Kafka 日志(最重要)

Kafka 日志一般在:

$KAFKA_HOME/logs/server.log

常用:

tail -f logs/server.log
grep ERROR logs/server.log
grep WARN logs/server.log

常见错误:

  • Address already in use → 端口被占用
  • No route to host → 网络问题
  • Leader not available → topic 没 Leader
  • Disk error → 磁盘问题

三、检查端口和监听

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

确认:

  • 9092 是否监听
  • 监听的是 0.0.0.0 还是 127.0.0.1

如果是 127.0.0.1,外部连不上。


四、检查配置文件

重点看:

config/server.properties

关键项:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<外网IP>:9092
zookeeper.connect=localhost:2181
log.dirs=/data/kafka-logs

常见坑:

  • advertised.listeners 配错 → 客户端连不上
  • log.dirs 磁盘满 → 无法写入

五、磁盘 & 权限问题

df -h
du -sh /data/kafka-logs

权限:

ls -ld /data/kafka-logs

Kafka 用户必须有写权限。


六、Topic / 消费问题排查

1. 查看 topic

kafka-topics.sh --list --bootstrap-server localhost:9092

2. 查看 topic 状态

kafka-topics.sh --describe --topic test --bootstrap-server localhost:9092

看:

  • Leader 是否存在
  • ISR 是否正常

3. 生产消息测试

kafka-console-producer.sh --topic test --bootstrap-server localhost:9092

4. 消费消息测试

kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092

七、消费组问题

kafka-consumer-groups.sh --describe --group my-group --bootstrap-server localhost:9092

看:

  • LAG 是否很大
  • 是否无活跃消费者

八、ZooKeeper(老版本 Kafka)

echo stat | nc localhost 2181

或看日志:

tail -f zookeeper.log

九、网络和防火墙

ping <kafka-ip>
telnet <kafka-ip> 9092

防火墙:

iptables -L
# 或
firewall-cmd --list-all

十、常见排错顺序总结

  1. 进程在不在
  2. 端口 listening 没
  3. server.log 报错
  4. 磁盘 / 权限
  5. listeners 配置
  6. topic / 消费组状态
  7. 网络 & 防火墙

如果你愿意,可以告诉我:

  • Kafka 版本
  • 报错日志内容
  • 是「连不上 / 消费不到 / 生产失败 / 丢消息」哪一类

我可以直接帮你定位。

0 踩