在 Linux 上查看 ZooKeeper 的状态,常见有以下几种方式,按使用频率从高到低说明:
zkServer.sh status
输出示例:
ZooKeeper JMX enabled by default
Using config: /etc/zookeeper/conf/zoo.cfg
Mode: leader
或
Mode: follower
如果提示
Error contacting service. It is probably not running.,说明服务未启动或端口不通。
zkServer.sh start
zkServer.sh stop
zkServer.sh restart
ZooKeeper 提供了一组 四字命令(4-letter words),可直接查看运行状态。
echo stat | nc localhost 2181
输出示例:
Zookeeper version: 3.7.1
Clients:
/127.0.0.1:12345[1](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 10
Sent: 9
Connections: 1
Outstanding: 0
Zxid: 0x100000000
Mode: leader
Node count: 4
echo ruok | nc localhost 2181 # 健康检查,返回 imok
echo mntr | nc localhost 2181 # 监控指标(推荐)
echo conf | nc localhost 2181 # 配置信息
echo envi | nc localhost 2181 # 环境信息
如果
nc不存在,可用:
echo stat | telnet localhost 2181
⚠️ 注意:
四字命令需要在 zoo.cfg 中未被禁用:
4lw.commands.whitelist=*
zkCli.sh -server localhost:2181
ls /
stat /
ps -ef | grep zookeeper
netstat -tnlp | grep 2181
# 或
ss -tnlp | grep 2181
日志位置取决于安装方式:
/var/log/zookeeper/zookeeper.log
$ZOOKEEPER_HOME/logs/
| 现象 | 说明 |
|---|---|
| Mode: leader / follower | 正常 |
| Error contacting service | 未启动或端口异常 |
| ruok → imok | 服务健康 |
| mntr 无输出 | 四字命令被禁用 |
如果你能告诉我:
我可以给你更精确的命令。