Apache ZooKeeper - FourLetterCommands运维命令

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 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

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
1月前
|
运维 Kubernetes 监控
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?
48 0
|
4月前
|
缓存 网络协议 数据安全/隐私保护
[运维笔记] - (命令).Windows server常用网络相关命令总结
[运维笔记] - (命令).Windows server常用网络相关命令总结
196 0
|
1月前
|
运维 Kubernetes 容器
K8S运维命令必备kubectl命令总结
K8S运维命令必备kubectl命令总结
31 3
|
5天前
|
运维 自然语言处理 开发工具
【专栏】为啥运维人员更喜欢 NeoVim 而不是 Vim?这 8 个原因或许是答案,命令对比一目了然!
【4月更文挑战第28天】NeoVim正逐渐取代Vim成为运维人员首选的文本编辑器。其优势包括更好的扩展性、现代化界面、多语言编程支持、异步处理能力、协作功能、持续更新及活跃社区。NeoVim的命令与Vim相似,但在启动配置、插件管理和窗口管理等方面有所优化。总的来说,NeoVim提供了更强大、灵活和现代的编辑体验。
|
14天前
|
存储 Shell 数据安全/隐私保护
ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
【4月更文挑战第11天】ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
26 7
|
15天前
|
Shell
ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
【4月更文挑战第10天】ZooKeeper【基础 02】zookeeper-3.6.0 常用Shell命令(节点增删改查+监听器+四字指令)
21 0
|
19天前
|
运维 安全 Swift
openstack 运维命令
OpenStack包含多个服务,如Keystone(认证服务,管理Swift、Glance、Nova等的认证与授权),Nova(管理虚拟机实例生命周期),Glance(镜像服务),Swift(分布式对象存储),Cinder(块存储服务)和Neutron(虚拟网络)。此外,介绍了在OpenStack环境中操作用户、项目、角色、端点、镜像、实例规格、网络、云主机、云硬盘、容器、安全组等的命令行步骤。这些命令涉及创建、查看、修改和删除资源,以及监控资源使用情况。
17 0
|
19天前
|
运维 网络协议 安全
neutron 运维命令
OpenStack Neutron是OpenStack的网络服务,它负责管理虚拟机和其他计算资源之间的网络连接。Neutron提供API和插件,支持多种网络拓扑和服务,包括虚拟网络和物理网络的配置、管理和调度。它还支持IP地址分配、网络连接和安全策略等。
12 1
|
19天前
|
存储 运维 Swift
openstack cinder、swift运维命令
Cinder是OpenStack的块存储服务,提供虚拟机块设备功能,包括卷的创建、挂载等。它由cinder-api、cinder-scheduler和cinder-volume三个组件构成,前者处理请求,中间者负责调度,后者执行卷管理。Swift是OpenStack的分布式对象存储服务,高可用、持久性,适用于大文件存储。Swift架构对称,无单点故障,提供类似文件系统的简单逻辑和高效读写。Cinder关注虚拟机层面的块存储,而Swift则提供对象存储服务。命令示例展示了如何使用cinder和openstack命令操作云硬盘和Swift容器。
15 0
|
19天前
|
存储 运维 API
openstack glance 运维命令
Glance是OpenStack的镜像服务,负责虚拟机镜像的查找、注册和检索,不存储镜像但保存到多种后端存储。
7 0

推荐镜像

更多