什么是四字监控命令
zookeeper支持某些特定的四字命令与其的交互。它们大多数是查询命令,用来获取zookeeper
服务的当前状态及相关信息。用户在客户端可以通过telnet
或nc
向zookeeper
提交相应的命令。
zookeeper
常用四字命令见下表所示:
四字命令 | 说明 |
---|---|
echo conf | nc 192.168.74.128 2181 | conf 输出zookeeper相关服务的详细配置信息,如客户端端口、数据存储路径、最大连接数、日志路径、数据同步端口、主节点推举端口、session超时时间等 |
echo cons | nc 192.168.74.128 2181 | cons 命令会用于输出当前这台服务器上所有客户端连接的详细信息,包括队列、数据接收量、数据发送量、sessionID、操作延时、最后的操作信息等 |
echo crst | nc 192.168.74.128 2181 | crst 命令是一个功能性命令,用于重置所有的客户端连接统计信息。 |
echo dump | nc 192.168.74.128 2181 | dump 命令用于输出当前集群的所有会话信息,包括会话的sessionID,以及每个会话创建的临时节点等信息。如果在Leader服务器上执行该命令的话,我们还能够看到每个会话的超时时间。 |
echo envi | nc 192.168.74.128 2181 | envi 命令用于输出Zookeeper所在服务器运行时的环境信息。包括os.version, java.version, user.home等。 |
echo ruok | nc 192.168.74.128 2181 | ruok 命令用于输出当前Zookeeper服务器是否在运行如果在运行返回imok,否则返回空 |
echo stat | nc 192.168.74.128 2181 | stat 命令用于获取Zookeeper服务器的运行时状态信息,包括基本的Zookeeper版本,打包信息,运行时角色,集群数据节点个数等信息,另外还会将当前服务器的客户端连接信息打出来。另外,stat命令还会输出一些服务器的统计信息,包括延迟情况,收到的请求数和返回的响应数等。这些信息可以通过srst命令进行重置。 |
echo srvr | nc 192.168.74.128 2181 | srvr 命令和stat命令的功能一致,唯一的区别是srvr不会将客户端的链接情况输出,仅仅输出服务器端的自身信息。 |
echo srst | nc 192.168.74.128 2181 | srst 命令是一个功能性命令,用于重置所有服务器的统计信息。 |
echo wchs | nc 192.168.74.128 2181 | wchs 命令用于输出当前服务器上管理的watcher的概要信息。 |
echo wchc | nc 192.168.74.128 2181 | wchc 命令用于输出当前服务器上管理的watcher的详细信息,以会话为单位进行归组,同时列出被该会话信息注册了watcher的节点路径。 |
echo wchp | nc 192.168.74.128 2181 | wchp 命令和wchc命令非常类似,也是用于输出当前服务器上管理的watcher的详细信息,不同点在于wchp命令的输出信息是以节点路径为单位进行归组。 |
echo mntr | nc 192.168.74.128 2181 | mntr 命令用于输出比stat命令更为详尽的服务器统计信息,列出集群的关键性能数据,包括zk的版本、最大/平均/最小延迟数、数据包接收/发送量、连接数、zk角色(Leader/Follower)、node数量、watch数量、临时节点数。在输出结果中,每一行都是一个key-value键值对。 |
配置监控属性
- 再
zoo.cfg
中添加如下一行代码并保存退出
# 开启四字命令
4lw.commands.whitelist=*
- 重启zookeeper
./zkServer.sh restart
安装nc
yum install -y nc
conf
命令
命令:echo conf | nc 192.168.74.138 2181
输出相关服务配置的详细信息:
属性 | 含义 |
---|---|
clientPort | 客户端端口号 |
dataDir | 数据快照文件目录,默认情况下10w次事务操作生成一次快照 |
dataLogDir | 事务日志文件目录,生产环节中放再独立的磁盘上 |
tickTime | 服务器之间或客户端与服务器之间维持心跳的时间间隔(以毫秒为单位) |
maxClientCnxns | 最大连接数 |
minSessionTimeout | 最小session 超时minSessionTimeout=tickTime*2 ,即使客户端连接设置了会话超时,也不能打破这个限制 |
maxSessionTimeout | 最大session 超时maxSessionTimeout=tickTime*20 ,即使客户端连接设置了会话超时,也不能打破这个限制 |
serverId | 服务器编号 |
initLimit | 集群中follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数,实际上以tickTime为单位,换算为毫秒数 |
syncLimit | 集群中follower服务器(F)与leader服务器(L)之间请求和应答之间能容忍的最大心跳数,实际上以tickTime为单位,换算为毫秒数 |
electionAlg | 0:基于UDP的LeaderElection;1:基于UDP的FastLeaderElection;2:基于UDP和认证的FastLeaderElection;3:基于TCP的FastLeaderElection。在3.4.10版本中,默认值为3,另外三种算法以及被弃用,并且有计划在之后的版本中将它们彻底删除且不再支持 |
electionPort | 选举端口 |
quorumPort | 数据通信端口 |
peerType | 是否为观察者 (1为观察者) |
cons
命令
命令:echo cons | nc 192.168.74.138 2181
列出所有连接到这台服务器的客户端连接/会话的详细信息
属性 | 含义 |
---|---|
ip | IP地址 |
port | 端口号 |
queued | 等待被处理的请求数,请求缓存在队列中 |
received | 收到的包数 |
sent | 发送的包数 |
sid | 会话id |
lop | 最后的操作 GETD-读取数据 DELE-删除数据 CREA-创建数据 |
est | 连接时间戳 |
to | 超时时间 |
lcxid | 当前会话的操作id |
lzxid | 最大事务id |
lresp | 最后响应时间戳 |
llat | 最后/最新 延迟 |
minlat | 最小延时 |
maxlat | 最大延时 |
avglat | 平均延时 |
crst
命令
此命令用于重置当前这台服务器所有连接/会话的统计信息 。
命令:echo crst | nc 192.168.74.138 2181
dump
命令
列出未经处理的临时节点,适用于leader
命令:echo dump | nc 192.168.74.138 2181
envi
命令
输出关于服务器的环境详细信息
命令:echo envi | nc 192.168.74.138 2181
属性 | 含义 |
---|---|
zookeeper.version | 版本 |
host.name | host信息 |
java.version | java版本 |
java.vendor | 供应商 |
java.home | 运行环境所在目录 |
java.class.path | classpath |
java.library.path | 第三方库指定非Java类包的为止(如:dll,so) |
java.io.tmpdir | 默认的临时文件路径 |
java.compiler | JIT编辑器的名称 |
os.name | Linux |
os.arch | amd64 |
os.version | 3.10.0-1062.el7.x86_64 |
user.name | zookeeper |
user.home | /opt/zookeeper |
user.dir | /opt/zookeeper/zookeeper2181/bin |
ruok
命令
测试服务是否处于正确运行状态,如果目标正确运行会返回imok
(are you ok | I’m ok)
命令:echo ruok | nc 192.168.74.138 2181
stat
命令
输出服务器的详细信息与srvr
相似(srvr
这里不举例了,官网有一点描述),但是多了每个连接的会话信息
命令:echo stat | nc 192.168.74.138 2181
属性 | 含义 |
---|---|
zookeeper version | 版本 |
Latency min/avg/max | 延时 |
Received | 收包 |
Sent | 发包 |
Connections | 当前服务器连接数 |
Outstanding | 服务器堆积的未处理请求数 |
Zxid | 最大事务id |
Mode | 服务器角色 |
Node count | 节点数 |
srst
命令
重置server
状态
命令:echo srst | nc 192.168.74.138 2181
wchs
命令
列出服务器watches
的简洁信息
命令:echo wchs | nc 192.168.74.138 2181
属性 | 含义 |
---|---|
connectsions | 连接数 |
watch-paths | watch节点数 |
watchers | watcher数量 |
wchc
命令
通过session
分组,列出watch
的所有节点,它的输出是一个与watch
相关的会话的节点列表
命令:echo wchc | nc 192.168.74.138 2181
wchp
命令
通过路径分组,列出所有的watch
的session id
信息
配置同wchc
mntr
命令
列出服务器的健康状态
命令:echo mntr | nc 192.168.74.138 2181
属性 | 含义 |
---|---|
zk_version | 版本 |
zk_avg_latency | 平均延时 |
zk_max_latency | 最大延时 |
zk_min_latency | 最小延时 |
zk_packets_received | 收包数 |
zk_packets_sent | 发包数 |
zk_num_alive_connections | 连接数 |
zk_outstanding_requests | 堆积请求数 |
zk_server_state | leader/follower状态 |
zk_znode_count | znode数量 |
zk_watch_count | watch数量 |
zk_ephemerals_count | l临时节点(znode) |
zk_approximate_data_size | 数据大小 |
zk_open_file_descriptor_count | 打开的文件描述符数量 |
zk_max_file_descriptor_count | 最大文件描述符数量 |