ZooKeeper中有一系列的命令可以查看服务器的运行状态,它们的长度通常都是4个英文字母,因此又被称之为“四字命令”。
常用命令:
使用方式: echo {command} | nc localhost 2181
conf
conf命令用于输出ZooKeeper服务器运行时使用的基本配置信息,包括clientPort、dataDir和tickTime等。
$ echo conf | nc localhost 2181
clientPort=2181
dataDir=/home/tim/zkdata/version-2
dataLogDir=/home/tim/zkdata/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=1000
maxSessionTimeout=1500
serverId=1
initLimit=10
syncLimit=5
electionAlg=3
electionPort=3888
quorumPort=2888
peerType=0
cons
cons命令用于输出当前这台服务器上所有客户端连接的详细信息,包括每个客户端的客户端IP、会话ID和最后一次与服务器交互的操作类型等。
$ echo cons | nc localhost 2181
/0:0:0:0:0:0:0:1:40596[0](queued=0,recved=1,sent=0)
stat
stat命令用于获取ZooKeeper服务器的运行时状态信息,包括基本的ZooKeeper版本、打包信息、运行时角色、集群数据节点个数等信息。
$ echo stat | nc localhost 2181
Zookeeper version: 3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
Clients:
/0:0:0:0:0:0:0:1:40598[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 17
Sent: 16
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: follower
Node count: 4
mntr
mntr命令用于输出比stat命令更为详尽的服务器统计信息,包括请求处理的延迟情况、服务器内存数据库大小和集群的数据同步情况。
$ echo mntr | nc localhost 2181
zk_version 3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
zk_avg_latency 0
zk_max_latency 0
zk_min_latency 0
zk_packets_received 14
zk_packets_sent 13
zk_num_alive_connections 1
zk_outstanding_requests 0
zk_server_state follower
zk_znode_count 4
zk_watch_count 0
zk_ephemerals_count 0
zk_approximate_data_size 27
zk_open_file_descriptor_count 30
zk_max_file_descriptor_count 65536
zk_fsync_threshold_exceed_count 0
crst
crst命令是一个功能性命令,用于重置所有的客户端连接统计信息。
dump
dump命令用于输出当前集群的所有会话信息,包括这些会话的会话ID,以及每个会话创建的临时节点等信息。
envi
envi命令用于输出ZooKeeper所在服务器运行时的环境信息,包括os.version、java.version和user.home等。
ruok
ruok命令用于输出当前ZooKeeper服务器是否正在运行。该命令的名字非常有趣,其谐音正好是“Are you ok”。执行该命令后,如果当前ZooKeeper服务器正在运行,那么返回“imok”,否则没有任何响应输出。
$ echo ruok | nc localhost 2181
imok$
请注意,ruok命令的输出仅仅只能表明当前服务器是否正在运行,准确地讲,只能说明2181端口打开着,同时四字命令执行流程正常,但是不能代表ZooKeeper服务器是否运行正常。在很多时候,如果当前服务器无法正常处理客户端的读写请求,甚至已经无法和集群中的其他机器进行通信,ruok命令依然返回“imok”。
srvr
srvr命令和stat命令的功能一致,唯一的区别是srvr不会将客户端的连接情况输出,仅仅输出服务器的自身信息。
$ echo srvr | nc localhost 2181
Zookeeper version: 3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
Latency min/avg/max: 0/0/0
Received: 26
Sent: 25
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: follower
Node count: 4
srst
srst命令是一个功能行命令,用于重置所有服务器的统计信息。
wchs
wchs命令用于输出当前服务器上管理的Watcher的概要信息。
$ echo wchs | nc localhost 2181
0 connections watching 0 paths
Total watches:0
wchc
wchc命令用于输出当前服务器上管理的Watcher的详细信息,以会话为单位进行归组,同时列出被该会话注册了Watcher的节点路径。
wchp
wchp命令和wchc命令非常类似,也是用于输出当前服务器上管理的Watcher的详细信息,不同点在于wchp命令的输出信息以节点路径为单位进行归组。