You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下ZooKeeper与Kafka Broker运行状态检查咨询

关于ZooKeeper与Kafka Broker状态检查的问题解答

首先说明:active (exited)状态并不代表ZooKeeper已停止。这是因为部分LSB风格的启动脚本仅负责启动ZooKeeper进程就退出,systemd会将其标记为active (exited),但实际ZooKeeper进程可能仍在后台运行。需要通过以下方法确认实际状态:


1. 检查ZooKeeper是否正常运行

  • 查看进程是否存在
    执行以下命令确认ZooKeeper进程是否在运行:

    ps aux | grep zookeeper | grep -v grep
    # 或者更简洁的方式
    pgrep zookeeper
    

    若有输出,说明ZooKeeper进程正在运行。

  • 使用ZooKeeper客户端连接测试
    利用Kafka自带的ZooKeeper客户端工具连接并验证:

    /opt/kafka/bin/zookeeper-shell.sh localhost:2181
    

    连接成功后,执行ls /,若能看到/brokers、/config等ZooKeeper节点,说明ZooKeeper正常提供服务;若出现连接超时、拒绝连接等报错,则服务异常。

  • 检查日志文件
    查看ZooKeeper的日志文件排查问题,默认日志路径通常为/opt/kafka/logs/zookeeper.out或/var/log/zookeeper/zookeeper.log:

    tail -n 50 /opt/kafka/logs/zookeeper.out
    

    重点关注ERROR级别的日志信息,比如端口绑定失败、初始化异常等。

  • 检查端口监听状态
    确认ZooKeeper默认端口2181是否被监听:

    ss -tulpn | grep 2181
    # 或者使用netstat(若已安装)
    netstat -tulpn | grep 2181
    

    若输出中显示java进程监听2181端口,说明ZooKeeper正常监听。


2. 检查Kafka Broker是否正常运行

单个Broker节点检查

  • 查看Broker进程
    执行命令确认Kafka Broker进程是否存在:

    ps aux | grep kafka | grep -v grep
    # 或
    pgrep kafka
    
  • 通过Kafka工具验证Broker响应
    尝试列出当前主题(即使无主题也能验证Broker连通性):

    /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
    

    也可以检查Broker的API版本支持,确认服务正常响应:

    /opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092
    
  • 检查Broker日志
    查看Broker的核心日志server.log,路径默认在/opt/kafka/logs/:

    tail -n 100 /opt/kafka/logs/server.log
    

    排查ERROR级日志,比如无法连接ZooKeeper、端口占用、配置错误等问题。

  • 检查端口监听
    确认Kafka默认端口9092是否被监听:

    ss -tulpn | grep 9092
    

集群所有Broker节点检查

  • 通过ZooKeeper查看已注册的Broker
    连接ZooKeeper客户端后,执行以下命令查看集群中所有已注册的Broker ID:

    ls /brokers/ids
    

    输出的数字即为集群中正常注册的Broker标识,若某个Broker未出现在列表中,说明该节点未正常加入集群。

  • 查看集群整体状态
    使用Kafka集群工具查看集群的控制器、Broker列表及状态:

    /opt/kafka/bin/kafka-cluster.sh --bootstrap-server <任意Broker节点IP>:9092 describe --cluster
    
  • 发送测试消息验证集群可用性
    先启动生产者发送测试消息:

    /opt/kafka/bin/kafka-console-producer.sh --bootstrap-server <Broker节点IP>:9092 --topic test-check
    

    输入任意消息后退出,再启动消费者接收消息:

    /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server <Broker节点IP>:9092 --topic test-check --from-beginning
    

    若能正常接收消息,说明集群整体运行正常。


内容的提问来源于stack exchange,提问作者user16798185

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 19:23:13