Zookeeper运维秘籍:四字命令基础、详解及业务应用全解析

文章目录

ZooKeeper,作为一款分布式协调服务,提供了丰富的四字命令(也称为四字短语)来与其进行交互。这些命令大多用于查询ZooKeeper服务的当前状态、环境变量以及临时会话等信息,是运维人员监控ZooKeeper集群状态的重要工具。在客户端,用户可以通过 nc(Netcat)命令向ZooKeeper提交相应的四字命令。

一、四字命令基础

要使用ZooKeeper的四字命令,首先需要确保系统中已安装Netcat工具。四字命令的基本格式如下:

bash 复制代码
echo [command] | nc [ip] [port]

其中,[command]为具体的四字命令,[ip]为ZooKeeper服务器的IP地址,[port]为ZooKeeper服务的端口号(默认为2181)。

二、四字命令详解

  1. conf:打印ZooKeeper的配置信息,包括端口号、数据目录、日志目录、心跳间隔、最大连接数、会话超时时间等。

  2. cons:列出所有连接到当前ZooKeeper服务器的客户端的详细信息,包括接收/发送的包数量、会话ID、操作延迟、最后操作时间等。

  3. crst:重置所有连接的连接和会话统计信息。

  4. dump:列出重要的会话和临时节点信息,该命令仅在Leader节点上有效。

  5. envi:打印ZooKeeper服务的环境配置信息,如版本、主机信息、Java版本、运行环境等。

  6. reqs:列出未经处理的请求。

  7. ruok:测试ZooKeeper服务是否处于正常状态,如果正常则返回"imok"。

  8. stat:输出ZooKeeper的性能信息和连接的客户端列表。

  9. srst:重置ZooKeeper服务器的统计信息。

  10. srvr:列出ZooKeeper服务器的详细信息。

  11. wchs:列出当前服务器管理的Watcher信息。

  12. wchc:通过会话列出Watcher信息,输出与Watcher相关的会话列表。

  13. wchp:通过路径列出Watcher信息,输出与会话相关的路径。

  14. mntr :输出可用于检测集群健康状态的变量列表,比stat命令更为详尽。

三、四字命令的开启与配置

$HOME/Zoo.cfg

以上*为开启所有四字命令,也可以指定四字命令,指定几个开启

四、结合业务解读四字命令

conf

打印出配置的详细信息。比如端口、zookeeper数据及日志配置路径、最大连接数,session超时时间、serverId等

属性 含义
clientPort 客户端端口号
dataDir 数据快照文件目录 默认情况下100000次事务操作生成一次快照
dataLogDir 事物日志文件目录,生产环境中放在独立的磁盘上
tickTime 服务器之间或客户端与服务器之间维持心跳的时间间隔(以毫秒为单位)
maxClientCnxns 最大连接数
minSessionTimeout 最小session超时 minSessionTimeout=tickTime* 2
maxSessionTimeout maxSessionTimeout 最大session超时 maxSessionTimeout=tickTime * 20
serverId 服务器编号
initLimit 集群中的follower服务器(F)与leader服务器(L)之间 初始连接时能容忍的最多心跳数
syncLimit 集群中的follower服务器(F)与leader服务器(L)之间 请求和应答之间能容忍的最多心跳数
electionAlg 0:基于UDP的LeaderElection 1:基于UDP的 FastLeaderElection 2:基于UDP和认证的FastLeaderElection
electionPort 选举端口
quorumPort 数据通信端口
peerType 是否为观察者 1为观察者

cons

echo cons|nc localhost 2181 输出当前服务器所有客户端连接的详细信息,

看下带业务情况:

属性说明

ip :ip地址
port :端口号
queued :等待被处理的请求数,请求缓存在队列中
received :收到的包数
sent :发送的包数
sid :会话id
lop :最后的操作 GETD-读取数据 DELE-删除数据 CREA-创建数据
est :连接时间戳
to :超时时间
lcxid :当前会话的操作id
lzxid :最大事务id
lresp :最后响应时间戳
llat :最后/最新 延时
minlat :最小延时
maxlat :最大延时
avglat:平均延时

envi命令

envi:输出关于服务器的环境配置信息

shell终端输入:echo envi| nc localhost 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-514.el7.x86_64
user.name zookeeper
user.home /root
user.dir /sys/fs/cgroup
Os.memory.free 空间内存
Os.memory.max 最大空间
Os.memory.total 最大内存

Stat命令

stat:输出服务器的详细信息与srvr相似,但是多了每个连接的会话信息

shell终端输入:echo stat| nc localhost 2181

说明:

Zookeeper version 版本

Latency min/avg/max 延时

Received 收包

Sent 发包

Connections 连接数

Outstanding 堆积数

Zxid 最大事物id

Mode 服务器角色

Node count 节点数

SRVR:和stat功能一致,但不会输出客户端连接情况

MNTR命令

mntr :列出服务器的健康状态,比stat更为详尽的服务器信息,截取部分信息如下:

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 临时节点(znode)

zk_approximate_data_size 数据大小

zk_open_file_descriptor_count 打开的文件描述符数量

zk_max_file_descriptor_count 最大文件描述符数量

ruok命令

ruok:测试服务是否处于正确运行状态

shell终端输入:echo ruok| nc localhost 2181

dump命令

dump:列出未经处理的会话和临时节点

shell终端输入:echo dump| nc localhost 2181

wchs

echo wchs|nc localhost 2181,输出当前服务器管理的Watcher信息

wchp

echo wchp|nc localhost 2181,与wchs类似,但以节点路径为单位对Watcher信息进行归组;

五、实战应用

在实际应用中,运维人员可以通过定期执行这些四字命令来监控ZooKeeper集群的状态和性能。例如,可以使用mntr命令定期获取集群的健康状态信息,并使用statsrvr命令来评估集群的性能。同时,在出现故障时,可以使用consenvidump等命令来排查问题。

总之,ZooKeeper的四字命令是运维人员监控和调优ZooKeeper集群的重要工具。通过熟练掌握这些命令,运维人员可以更好地了解ZooKeeper的运行状态和性能,及时发现并解决潜在问题。

相关推荐
Data跳动4 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
Java程序之猿6 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
来一杯龙舌兰6 小时前
【RabbitMQ】RabbitMQ保证消息不丢失的N种策略的思想总结
分布式·rabbitmq·ruby·持久化·ack·消息确认
节点。csn8 小时前
Hadoop yarn安装
大数据·hadoop·分布式
NiNg_1_2349 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式
隔着天花板看星星11 小时前
Spark-Streaming集成Kafka
大数据·分布式·中间件·spark·kafka
技术路上的苦行僧15 小时前
分布式专题(8)之MongoDB存储原理&多文档事务详解
数据库·分布式·mongodb
龙哥·三年风水15 小时前
workman服务端开发模式-应用开发-后端api推送修改二
分布式·gateway·php
小小工匠16 小时前
分布式协同 - 分布式事务_2PC & 3PC解决方案
分布式·分布式事务·2pc·3pc
闯闯的日常分享18 小时前
分布式锁的原理分析
分布式