什么是四字监控命令
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=*
1
2
重启zookeeper
./zkServer.sh restart
1
安装nc
yum install -y nc
1
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 最大文件描述符数量