目录
什么是四字命令
ZooKeeper 的四字命令是一组简短的四字符命令,用于与 ZooKeeper 服务端交互,主要用于监控服务器状态、调试和故障排查。这些命令通过 TCP 连接直接发送到 ZooKeeper 的客户端端口(默认 2181),无需进入交互式客户端(如 zkCli.sh
)。它们简单高效,常用于生产环境的管理。
常用四字命令列表
以下是 ZooKeeper 支持的主要四字命令及其功能:
conf
- 功能:返回服务器的配置信息。
- 用途:检查运行时的配置参数。
cons
- 功能:列出所有客户端连接的详细信息。
- 用途:监控客户端会话。
crst
- 功能:重置所有连接统计信息。
- 用途:清除统计数据以重新开始监控。
dump
- 功能:列出会话和临时节点信息。
- 用途:调试集群中的临时数据。
envi
- 功能:返回服务器的环境变量和系统信息。
- 用途:检查运行环境。
ruok
- 功能:检查服务器是否正常运行。
- 用途:快速健康检查。
srvr
- 功能:返回服务器的统计信息。
- 用途:查看运行状态和性能指标。
stat
- 功能:返回服务器状态和连接统计信息。
- 用途:综合监控服务器。
wchs
- 功能:列出 Watcher 的总数和相关信息。
- 用途:检查 Watcher 负载。
mntr
- 功能:返回详细的监控数据(键值对格式)。
- 用途:自动化监控和脚本处理。
isro
- 功能:检查服务器是否为只读模式。
- 用途:验证只读状态。
如何使用四字命令
四字命令通过网络工具(如 telnet
、nc
)或直接脚本发送到 ZooKeeper 的客户端端口。
方法 1:使用 nc
(Netcat)
echo "命令" | nc localhost 2181
- 替换
命令
为四字命令(如ruok
)。 localhost
和2181
替换为你的 ZooKeeper 地址和端口。
方法 2:使用 telnet
telnet localhost 2181
连接后输入命令并按回车,例如:
ruok
注意事项
- 确保 ZooKeeper 服务运行。
- 默认情况下,四字命令是启用的,但可能通过配置文件
zoo.cfg
的4lw.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
:运行模式(standalone
或leader/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 官方文档 – 四字命令 – 官方命令说明。
- ZooKeeper Monitoring – 监控相关指南。
- Baeldung – ZooKeeper 四字命令 – 基础教程。
- Apache ZooKeeper FAQ – 四字命令常见问题。
这些四字命令是管理和监控 ZooKeeper 的实用工具。如果您需要特定命令的深入解析或自动化脚本示例,请告诉我!
发表回复