zookeeper 四字命令操作

ZooKeeper 3.4.6支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnetncZooKeeper 提交相应的命令。

其中 statsrvrcons 三个命令比较类似:

  • stat 提供服务器统计和客户端连接的一般信息;

  • srvr 只有服务的统计信息;

  • cons 提供客户端连接的更加详细的信息。

使用方式,在终端中输入:

shell
1
echo mntr | nc localhost 2181
命令 示例                描述
conf `echo conf \ nc localhost 2181` (New in 3.3.0)输出相关服务配置的详细信息。比如端口、zk数据及日志配置路径、最大连接数,session超时时间、serverId等
cons `echo cons \ nc localhost 2181` (New in 3.3.0)列出所有连接到这台服务器的客户端连接/会话的详细信息。包括“接受/发送”的包数量、session id 、操作延迟、最后的操作执行等信息。
crst `echo crst \ nc localhost 2181` (New in 3.3.0)重置当前这台服务器所有连接/会话的统计信息
dump `echo dump \ nc localhost 2181` 列出未经处理的会话和临时节点(只在leader上有效)。
envi `echo envi \ nc localhost 2181` 输出关于服务器的环境详细信息(不同于conf命令),比如host.name、java.version、java.home、user.dir=/data/zookeeper-3.4.6/bin之类信息
ruok `echo ruok \ nc localhost 2181` 测试服务是否处于正确运行状态。如果正常返回”imok”,否则返回空。
srst `echo srst \ nc localhost 2181` 重置服务器的统计信息
srvr `echo srvr \ nc localhost 2181` (New in 3.3.0)输出服务器的详细信息。zk版本、接收/发送包数量、连接数、模式(leader/follower)、节点总数。
stat `echo stat \ nc localhost 2181` 输出服务器的详细信息:接收/发送包数量、连接数、模式(leader/follower)、节点总数、延迟。 所有客户端的列表。
wchs `echo wchs \ nc localhost 2181` (New in 3.3.0)列出服务器watches的简洁信息:连接总数、watching节点总数和watches总数
wchc `echo wchc \ nc localhost 2181` (New in 3.3.0)通过session分组,列出watch的所有节点,它的输出是一个与 watch 相关的会话的节点列表。如果watches数量很大的话,将会产生很大的开销,会影响性能,小心使用。
wchp `echo wchp \ nc localhost 2181` (New in 3.3.0)通过路径分组,列出所有的 watch 的session id信息。它输出一个与 session相关的路径。如果watches数量很大的话,将会产生很大的开销,会影响性能,小心使用。
mntr `echo mntr \ nc localhost 2181` (New in 3.4.0)列出集群的健康状态。包括“接受/发送”的包数量、操作延迟、当前服务模式(leader/follower)、节点总数、watch总数、临时节点总数。

示例

查看 zookeeper 版本

shell
1
echo stat | nc localhost 2181

返回值

返回值
1
2
3
4
5
6
7
8
9
10
11
12
Zookeeper version: 3.5.5-390fe37ea45dee01bf87dc1c042b5e3dcce88653, built on 05/03/2019 12:07 GMT
Clients:
/0:0:0:0:0:0:0:1:55684[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 4
Sent: 3
Connections: 1s
Outstanding: 0
Zxid: 0x400018f72
Mode: follower
Node count: 108

如遇查询是出现如下报错

error
1
stat is not executed because it is not in the whitelist.

解决方法

以下方法二选一即可

  1. 修改 $zookeeper/bin/zkServer.sh 文件

    bin/zkServer.sh
    1
    2
    3
    4
    5
    6
    7
    8
    ...
    # 找到如下内容
    else
    echo "JMX disabled by user request" >&2
    ZOOMAIN="org.apache.zookeeper.server.quorum.QuorumPeerMain"
    fi
    # 在后面插入如下新内容
    ZOOMAIN="-Dzookeeper.4lw.commands.whitelist=* ${ZOOMAIN}"

    保存退出后重启 zookeeper 即可。

  2. 修改配置文件 $zookeeper/conf/zoo.cfg推荐

    zoo.cfg 中添加如下配置项

    conf/zoo.cfg
    1
    2
    #开启四字命令
    4lw.commands.whitelist=*

    保存退出后重启 zookeeper 即可。

备注不建议在生产环境开启四字命令配置

参考文章:
文章转载自: https://www.cnblogs.com/kuku0223/p/8428341.html

评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...