Apache ZooKeeper - FourLetterCommands运维命令

本文涉及的产品
云原生网关 MSE Higress,422元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: Apache ZooKeeper - FourLetterCommands运维命令

20201222145456500.png

Pre

Apache ZooKeeper - JMX监控 ZooKeeper 的运行状态


除了 JConsole 监控控制台之外,ZooKeeper 还提供了一些命令,可使我们更加灵活地统计监控 ZooKeeper 服务的状态信息。

ZooKeeper 提供的这些命令也叫作四字母命令,如它们的名字一样,每一个命令都是由四个字母组成的。

比如,输入相关的命令来查询 ZooKeeper 服务,可以输入 stat 命令来查看数据节点等信息。

echo {command} | nc 127.0.0.1 2181


安装nc


netcat(nc)不仅可以通过使用TCP或UDP协议的网络连接读写数据,同时还是一个功能强大的网络调试和探测工具。

默认未安装 ,安装如下


yum install -y nc


常见的四字母命令


FourLetterCommands


org.apache.zookeeper.server.command.FourLetterCommands
    // specify all of the commands that are available
    static {
        cmd2String.put(confCmd, "conf");
        cmd2String.put(consCmd, "cons");
        cmd2String.put(crstCmd, "crst");
        cmd2String.put(dirsCmd, "dirs");
        cmd2String.put(dumpCmd, "dump");
        cmd2String.put(enviCmd, "envi");
        cmd2String.put(getTraceMaskCmd, "gtmk");
        cmd2String.put(ruokCmd, "ruok");
        cmd2String.put(setTraceMaskCmd, "stmk");
        cmd2String.put(srstCmd, "srst");
        cmd2String.put(srvrCmd, "srvr");
        cmd2String.put(statCmd, "stat");
        cmd2String.put(wchcCmd, "wchc");
        cmd2String.put(wchpCmd, "wchp");
        cmd2String.put(wchsCmd, "wchs");
        cmd2String.put(mntrCmd, "mntr");
        cmd2String.put(isroCmd, "isro");
        cmd2String.put(telnetCloseCmd, "telnet close");
    }


命令解析

image.png

image.png

confs

image.png

image.png

image.pngimage.png


cons


cons 命令用于输出当前这台服务器上所有客户端连接的详细信息,包括每个客户端的客户端 IP 、会话 ID 和最后一次与服务器交互的操作类型等。


image.png

stat


stat 命令的作用是监控 ZooKeeper 服务器的状态,我们通过 stat 命令统计 ZooKeeper 服务器的 ZooKeeper 版本信息、集群数节点等信息


image.png

[root@localhost ~]# echo stat  | nc 192.168.126.136 2181
Zookeeper version: 3.5.8-f439ca583e70862c3068a1f2a7d4d068eec33315, built on 05/04/2020 15:07 GMT
Clients:
 /192.168.126.136:54644[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 3
Sent: 2
Connections: 1
Outstanding: 0
Zxid: 0x69ce
Mode: standalone
Node count: 5
[root@localhost ~]# 


mntr


属性 说明
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, observer, read-only, standalone
zk_znode_count znode节点总数
zk_watch_count watch总数
zk_ephemerals_count 临时节点总数(znode)
zk_approximate_data_size 数据的近似大小
zk_open_file_descriptor_count 打开的文件描述符数量
zk_max_file_descriptor_count 最大文件描述符数量
zk_followers follower数量
zk_synced_followers 已同步的follower数量
zk_pending_syncs 等待同步请求的数量


[root@localhost ~]# echo mntr | nc 192.168.126.136 2181
zk_version  3.5.8-f439ca583e70862c3068a1f2a7d4d068eec33315, built on 05/04/2020 15:07 GMT
zk_avg_latency  0
zk_max_latency  0
zk_min_latency  0
zk_packets_received 4
zk_packets_sent 3
zk_num_alive_connections  1
zk_outstanding_requests 0
zk_server_state standalone
zk_znode_count  5
zk_watch_count  0
zk_ephemerals_count 0
zk_approximate_data_size  44
zk_open_file_descriptor_count 74
zk_max_file_descriptor_count  65536
[root@localhost ~]# 

srvr

srvr 命令与 stat 命令的功能十分相似,唯一不同的地方是 srvr 命令不会将与客户端的连接情况输出,通过 srvr 命令只会查询服务器的自身信息。

[root@localhost ~]# echo srvr | nc 127.0.0.1 2181 
Zookeeper version: 3.5.8-f439ca583e70862c3068a1f2a7d4d068eec33315, built on 05/04/2020 15:07 GMT
Latency min/avg/max: 0/0/0
Received: 5
Sent: 4
Connections: 1
Outstanding: 0
Zxid: 0x69ce
Mode: standalone
Node count: 5
[root@localhost ~]# 
[root@localhost ~]# 

ruok


ruok 命令的主要作用是查询 ZooKeeper 服务器是否正常运行。如果 ZooKeeper 服务器正常运行,执行完 ruok 命令后,会得到 “imok” 返回值。如果 ZooKeeper 服务没有正常运行,则不会有任何返回值。在使用 ruok 命令的时候,在这里我们要注意的一点是,有些时候即使返回了 “imok” 字段,ZooKeeper 服务也可能没有正常运行,唯一能确定的是该台服务器的 2181 端口是打开的.

[root@localhost ~]# echo ruok | nc 127.0.0.1 2181 
imok
[root@localhost ~]# 

Question


[root@localhost bin]# echo stat | nc 192.168.126.136  2181
stat is not executed because it is not in the whitelist.


需要加入白名单才能使用 , 开启 -Dzookeeper.4lw.commands.whitelist=*

解析类 org.apache.zookeeper.server.NettyServerCnxn#checkFourLetterWord


20201222150412757.png


20201222152851597.png

相关文章
|
3月前
|
人工智能 运维 Kubernetes
别再手动敲命令了!运维自动化才是打工人的“自救之道”
别再手动敲命令了!运维自动化才是打工人的“自救之道”
91 8
|
2月前
|
人工智能 运维 监控
智能运维与数据治理:基于 Apache Doris 的 Data Agent 解决方案
本文基于 Apache Doris 数据运维治理 Agent 展开讨论,如何让 AI 成为 Doris 数据运维工程师和数据治理专家的智能助手,并在某些场景下实现对人工操作的全面替代。这种变革不仅仅是技术层面的进步,更是数据运维治理思维方式的根本性转变:从“被动响应”到“主动预防”,从“人工判断”到“智能决策”,从“孤立处理”到“协同治理”。
281 11
智能运维与数据治理:基于 Apache Doris 的 Data Agent 解决方案
|
7月前
|
弹性计算 人工智能 运维
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
阿里云操作系统控制台提供了便捷的服务器监控与管理功能,简化了运维工作。通过将多台服务器纳入统一监控平台,用户可以快速查看CPU、内存、磁盘和网络等关键资源的使用情况,避免了逐一远程连接查询的繁琐操作。此外,该工具支持自动化数据汇总,极大地方便了日报、周报和月报的编写。测试过程中,系统展示了良好的稳定性和响应速度,尤其在网络抖动和大文件健康状态测试中表现出色。整体体验流畅,显著提升了运维效率。 操作系统控制台地址:[点击访问](https://alinux.console.aliyun.com/)
190 26
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
|
7月前
|
Java 网络安全 Apache
SshClient应用指南:使用org.apache.sshd库在服务器中执行命令。
总结起来,Apache SSHD库是一个强大的工具,甚至可以用于创建你自己的SSH Server。当你需要在服务器中执行命令时,这无疑是非常有用的。希望这个指南能对你有所帮助,并祝你在使用Apache SSHD库中有一个愉快的旅程!
373 29
|
10月前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
9月前
|
运维
阿里云服务器批量执行命令(系统运维管理oos)
阿里云【系统运维管理oos】批量执行详情
185 5
|
12月前
|
运维 监控 网络协议
|
11月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
808 3
|
11月前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
720 3
|
12月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
176 1

热门文章

最新文章

推荐镜像

更多