1、zookeeper四字监控命令介绍

zookeeper支持某些特定的四字命令与其的交互。它们大多数是查询命令,用来获取zookeeper服务的当前状态及相关信息。用户再客户端可以通过telnetnczookeeper提交相应的命令。zookeeper常用四字命令见下表所示:

命令

描述

conf

输出相关服务配置的详细信息。比如端口号、zk数据以及日志配置路径、最大连接数,session超时、serverId

cons

列出所有连接到这台服务器的客户端连接/会话的详细信息。包括"接收/发送"的包数量、sessionId、操作延迟、最后的操作执行等信息

crst

重置当前这台服务器所有连接/会话的统计信息

dump

列出未经处理的会话和临时节点,这仅适用于领导者

envi

处理关于服务器的环境详细信息

ruok

测试服务是否处于正确运行状态。如果正常返回"imok",否则返回空

stat

输出服务器的详细信息:接收/发送包数量、连接数、模式(leader/follower)、节点总数、延迟。所有客户端的列表

srst

重置server状态

wchs

列出服务器watchers的简洁信息:连接总数、watching节点总数和watches总数

wchc

通过session分组,列出watch的所有节点,它的输出是一个与watch相关的会话的节点信息,根据watch数量的不同,此操作可能会很昂贵(即影响服务器性能),请小心使用

mntr

列出集群的健康状态。包括"接收/发送"的包数量、操作延迟、当前服务模式(leader/follower)、节点总数、watch总数、临时节点总数

2、配置监控属性

进入到zookeeper的zoo.cfg中,如下图:

sematext监控zookeeper zookeeper监控指标_zookeeper

我们在zoo.cfg中添加如下一行代码并保存退出

#开启四字命令
4lw.commands.whitelist=*

然后我们进到zookeeper的bin目录进行重启zookeeper即可:

./zkServer.sh  restart

3、安装nc

yum install -y nc

 测试:echo conf | nc 192.168.1.7 2181

sematext监控zookeeper zookeeper监控指标_客户端_02

4.conf命令详解

命令:echo conf | nc 192.168.1.7 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:基于UDPLeaderElection1:基于UDPFastLeaderElection2:基于UDP和认证的FastLeaderElection3:基于TCPFastLeaderElection3.4.10版本中,默认值为3,另外三种算法以及被弃用,并且有计划在之后的版本中将它们彻底删除且不再支持

electionPort

选举端口

quorumPort

数据通信端口

peerType

是否为观察者 1为观察者

5、cons命令详解  

命令:echo cons | nc 192.168.1.7 2181    (列出所有连接到这台服务器的客户端连接/会话的详细信息 )

开启一个窗口用.zkCli.sh 进入zookeeper客户端。就会看见如下属性。

sematext监控zookeeper zookeeper监控指标_zookeeper_03

属性

含义

ip

IP地址

port

端口号

queued

等待被处理的请求数,请求缓存在队列中

received

收到的包数

sent

发送的包数

sid

会话id

lop

最后的操作 GETD-读取数据 DELE-删除数据 CREA-创建数据

est

连接时间戳

to

超时时间

lcxid

当前会话的操作id

lzxid

最大事务id

lresp

最后响应时间戳

llat

最后/最新 延迟

minlat

最小延时

maxlat

最大延时

avglat

平均延时

6、crst命令

此命令用于重置当前这台服务器所有连接/会话的统计信息 。

命令:echo crst | nc 192.168.1.7 2181 

7、dump命令

列出未经处理的临时节点,适用于leader

命令:echo dump | nc 192.168.1.7 2181 

8、envi命令

输出关于服务器的环境详细信息

命令:echo envi | nc 192.168.1.7 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

9、ruok命令

测试服务是否处于正确运行状态,如果目标正确运行会返回imok(are you ok | I'm ok)

命令:echo ruok | nc 192.168.1.7 2181     

10、stat命令

输出服务器的详细信息与srvr相似(srvr这里不举例了,官网有一点描述),但是多了每个连接的会话信息

命令:echo stat | nc 192.168.1.7 2181   

属性

含义

zookeeper version

版本

Latency min/avg/max

延时

Received

收包

Sent

发包

Connections

当前服务器连接数

Outstanding

服务器堆积的未处理请求数

Zxid

最大事务id

Mode

服务器角色

Node count

节点数

11、srst命令

重置server状态

命令:echo srst | nc 192.168.1.7 2181   

12、wchs命令

列出服务器watches的简洁信息

命令:echo wchs | nc 192.168.1.7 2181   

属性

含义

connectsions

连接数

watch-paths

watch节点数

watchers

watcher数量

13wchc 命令

通过session分组,列出watch的所有节点,它的输出是一个与watch相关的会话的节点列表

问题

wchc is not executed because it is not in the whitelist

解决办法

# 修改启动指令zkServer.sh
# 注意找到这个信息
else
	echo "JMX disabled by user request" >&2
	ZOOMAIN="org.apache.zookeeper.server.quorum.QuorumPeerMain"
fi
# 下面添加如下信息
ZOOMAIN="-Dzookeeper.4lw.commands.whitelist=* ${ZOOMAIN}"

每一个客户端的连接的watcher信息都会被收集起来,并且监控的路径都会被展示出来(代价高,消耗性能)

[root@localhost bin]# echo wchc | nc 192.168.133.133 2180
0x171be6c6faf0000
        /node2
        /node1
0x171be6c6faf0001
        /node3

14、wchp命令

通过路径分组,列出所有的watchsession id 信息

配置同wchc

15、mntr命令

列出服务器的健康状态

命令:echo mntr | nc 192.168.1.7 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

最大文件描述符数量

 

16、ZooInspector图形化工具

下载:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip

解压后进入目录ZooInspector\build

运行:java -jar zookeeper-dev-ZooInspector.jar (运行后,弹出后面窗口)

sematext监控zookeeper zookeeper监控指标_客户端_04

sematext监控zookeeper zookeeper监控指标_zookeeper_05

看见当前所有节点

sematext监控zookeeper zookeeper监控指标_sematext监控zookeeper_06

sematext监控zookeeper zookeeper监控指标_服务器_07