温馨提示×

怎么调试Linux Kafka

小樊
41
2026-08-01 15:15:53
栏目: 智能运维

调试 Linux 上的 Kafka,通常可以从 服务状态、日志、配置、网络、客户端、系统资源 几个层面入手。下面给你一套比较系统的调试思路,适合新手和常见问题排查。


一、确认 Kafka 是否正常运行

1. 查看 Kafka 进程

ps -ef | grep kafka

jps

应至少看到:

  • Kafka
  • QuorumPeerMain(如果用 ZooKeeper)

2. 查看端口是否监听

netstat -tulnp | grep 9092
# 或
ss -lntp | grep 9092

二、查看 Kafka 日志(最重要)

1. Kafka 日志位置

默认在:

$KAFKA_HOME/logs/

常见文件:

  • server.log ✅(最重要)
  • controller.log
  • state-change.log

实时查看:

tail -f server.log

2. 常见错误示例

  • java.net.BindException → 端口被占用
  • java.io.IOException: No such file or directory → 数据目录问题
  • Broker may not be available → 服务未启动或地址错误

三、检查 Kafka 配置

1. server.properties 关键配置

vim $KAFKA_HOME/config/server.properties

重点检查:

broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092
log.dirs=/data/kafka-logs
zookeeper.connect=localhost:2181

常见坑

  • advertised.listeners 没配或配成 localhost
  • 多 broker 时 broker.id 重复

四、测试 Kafka 是否可用

1. 创建 topic

kafka-topics.sh \
--bootstrap-server localhost:9092 \
--create \
--topic test-topic \
--partitions 1 \
--replication-factor 1

2. 查看 topic

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

3. 生产消息

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

4. 消费消息(新终端)

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

✅ 如果能收发消息,说明 Kafka 基本正常


五、ZooKeeper 调试(老版本 Kafka)

1. 检查 ZooKeeper 状态

zkServer.sh status

2. 进入 ZooKeeper

zkCli.sh -server localhost:2181
ls /

Kafka 相关路径:

/brokers/ids
/controller

六、连接问题调试(非常常见)

1. 客户端连不上 Kafka

检查:

  • advertised.listeners 是否对外可访问
  • 防火墙
iptables -L
# 或
firewall-cmd --list-all

2. 测试端口连通性

telnet <kafka-ip> 9092

七、Kafka 内部状态检查

1. 查看 broker 信息

kafka-broker-api-versions.sh --bootstrap-server localhost:9092

2. 查看 topic 详情

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

八、系统资源问题

1. 磁盘

df -h

2. 内存 / CPU

free -h
top

Kafka 吃内存很厉害,建议:

  • JVM 堆不要太大(一般 4–8G)

九、JVM / 性能调试(进阶)

1. 查看 JVM 参数

ps -ef | grep kafka

2. 常见 JVM 参数

-Xmx4G -Xms4G

十、快速排查清单(推荐)

✅ 进程在
✅ 端口监听
✅ server.log 无 ERROR
✅ advertised.listeners 正确
✅ topic 能创建
✅ 生产 / 消费成功


如果你愿意,我可以帮你:

  • ✅ 根据 具体报错日志 精确定位问题
  • ✅ 给你一份 Kafka 生产环境标准配置
  • ✅ 区分 Kafka + ZooKeeper / KRaft
  • ✅ 用 docker / 裸机 / 云服务器 场景分别说明

你可以直接贴:

Kafka 版本 + 报错日志 + 使用场景

0