目录

  1. 什么是四字命令
  2. 常用四字命令列表
  3. 如何使用四字命令
  4. 命令示例与输出解析
  5. 参考资料

什么是四字命令

ZooKeeper 的四字命令是一组简短的四字符命令,用于与 ZooKeeper 服务端交互,主要用于监控服务器状态、调试和故障排查。这些命令通过 TCP 连接直接发送到 ZooKeeper 的客户端端口(默认 2181),无需进入交互式客户端(如 zkCli.sh)。它们简单高效,常用于生产环境的管理。


常用四字命令列表

以下是 ZooKeeper 支持的主要四字命令及其功能:

  1. conf
  • 功能:返回服务器的配置信息。
  • 用途:检查运行时的配置参数。
  1. cons
  • 功能:列出所有客户端连接的详细信息。
  • 用途:监控客户端会话。
  1. crst
  • 功能:重置所有连接统计信息。
  • 用途:清除统计数据以重新开始监控。
  1. dump
  • 功能:列出会话和临时节点信息。
  • 用途:调试集群中的临时数据。
  1. envi
  • 功能:返回服务器的环境变量和系统信息。
  • 用途:检查运行环境。
  1. ruok
  • 功能:检查服务器是否正常运行。
  • 用途:快速健康检查。
  1. srvr
  • 功能:返回服务器的统计信息。
  • 用途:查看运行状态和性能指标。
  1. stat
  • 功能:返回服务器状态和连接统计信息。
  • 用途:综合监控服务器。
  1. wchs
  • 功能:列出 Watcher 的总数和相关信息。
  • 用途:检查 Watcher 负载。
  1. mntr
    • 功能:返回详细的监控数据(键值对格式)。
    • 用途:自动化监控和脚本处理。
  2. isro
    • 功能:检查服务器是否为只读模式。
    • 用途:验证只读状态。

如何使用四字命令

四字命令通过网络工具(如 telnetnc)或直接脚本发送到 ZooKeeper 的客户端端口。

方法 1:使用 nc(Netcat)

echo "命令" | nc localhost 2181
  • 替换 命令 为四字命令(如 ruok)。
  • localhost2181 替换为你的 ZooKeeper 地址和端口。

方法 2:使用 telnet

telnet localhost 2181

连接后输入命令并按回车,例如:

ruok

注意事项

  • 确保 ZooKeeper 服务运行。
  • 默认情况下,四字命令是启用的,但可能通过配置文件 zoo.cfg4lw.commands.whitelist 参数限制部分命令。

命令示例与输出解析

1. ruok – 检查服务器是否运行

echo "ruok" | nc localhost 2181

输出

imok
  • 解析:表示服务器正常运行。如果无响应或返回错误,可能表示服务异常。

2. stat – 查看服务器状态

echo "stat" | nc localhost 2181

输出

Zookeeper version: 3.8.4-...
Latency min/avg/max: 0/0.1/2
Received: 123
Sent: 122
Connections: 2
Outstanding: 0
Zxid: 0x100000005
Mode: standalone
Node count: 4
  • 解析
  • Latency:请求延迟(最小/平均/最大)。
  • Connections:当前客户端连接数。
  • Mode:运行模式(standaloneleader/follower)。
  • Node count:ZNode 总数。

3. conf – 查看配置

echo "conf" | nc localhost 2181

输出

clientPort=2181
dataDir=/var/lib/zookeeper
tickTime=2000
initLimit=10
syncLimit=5
  • 解析:显示 zoo.cfg 中的配置参数。

4. mntr – 详细监控数据

echo "mntr" | nc localhost 2181

输出

zk_version    3.8.4-...
zk_avg_latency    0
zk_max_latency    2
zk_min_latency    0
zk_packets_received    150
zk_packets_sent    149
zk_num_alive_connections    3
zk_outstanding_requests    0
zk_server_state    standalone
zk_znode_count    5
zk_approximate_data_size    128
  • 解析
  • 键值对格式,便于脚本解析。
  • zk_server_state:服务器角色。
  • zk_znode_count:节点数量。

5. dump – 查看会话和临时节点

echo "dump" | nc localhost 2181

输出

SessionTracker dump:
Session Sets:
ephemeral nodes dump:
Connections:
/tempNode: sessionId=0x100000123
  • 解析:列出会话和临时节点,适合调试。

参考资料


这些四字命令是管理和监控 ZooKeeper 的实用工具。如果您需要特定命令的深入解析或自动化脚本示例,请告诉我!