Zookeeper运维

1、四字命令

Zookeeper 中有很多4个英文字母长度的运维命令,简称为“四字命令”。

1.1、使用方式

四字命令的使用方式非常简单,通常有两种方式。介绍如下:

  • Telnet 方式

    实例:

    #连接
    telnet <ip> <port>
    
    #输入命令
    <命令>
    
  • nc 方式

    echo <命令> | nc <ip> <port>
    

    如果没有安装,请先进行安装

    #root用户安装
    #下载安装包
    wget http://vault.centos.org/6.6/os/x86_64/Packages/nc-1.84-22.el6.x86_64.rpm
    #rpm安装
    rpm -iUv nc-1.84-22.el6.x86_64.rpm
    
1.2、命令介绍
1.2.1、conf

conf 命令用于输出 Zookeeper 服务器运行时使用的基本配置信息。

echo conf | nc localhost 2181
属性说明
clientPort对外暴漏的客户端连接端口号。
dataDir数据快照文件目录,默认情况下100000次事务操作生成一次快照。
dataLogDir事务日志文件目录,生产环境中放在独立的磁盘上。
tickTime服务器之间或客户端与服务器之间维持心跳的时间间隔(以毫秒为单位)。
maxClientCnxns最大连接数。
minSessionTimeout最小session超时 minSessionTimeout=tickTime*2
maxSessionTimeout最大session超时 maxSessionTimeout=tickTime*20
serverId服务器编号。
initLimit集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数。
syncLimit集群中的follower服务器(F)与leader服务器(L)之间 请求和应答之间能容忍的最多心跳数。
electionAlg0:基于UDP的LeaderElection 1:基于UDP的FastLeaderElection 2:基于UDP和认证的FastLeaderElection 3:基于TCP的FastLeaderElection 在3.4.10版本中,默认值为3另外三种算法已经被弃用,并且有计划在之后的版本中将它们彻底删除而不再支持。
electionPort选举端口。
quorumPort数据通信端口。
peerType是否为观察者 1为观察者。
1.2.2、cons

cons命令用于输出当前这台服务器上所有客户端连接的详细信息。

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

crst 命令是一个功能性命令,用于重置所有的客户端连接统计信息。

echo crst | nc localhost 2181
1.2.4、dump

dump 命令用于输出当前集群的所有会话信息,包括这些会话的会话ID,以及每个会话创建的临时节点等信息。

echo dump | nc localhost 2181
属性说明
session idznode path(1对多,处于队列中排队的session和临时节点)
1.2.5、envi

envi 命令用于输出 Zookeeper 所在服务器运行时的环境信息。

echo envi | nc localhost 2181
属性说明
zookeeper.version版本
host.namehost信息
java.versionjava版本
java.vendor供应商
java.home运行环境所在目录
java.class.pathclasspath
java.library.path第三方库指定非java类包的位置(如:dll,so)
java.io.tmpdir默认的临时文件路径
java.compilerJIT 编译器的名称
os.nameLinux
os.archamd64
os.version3.10.0-514.el7.x86_64
user.namezookeeper
user.home用户名目录
user.dir服务所在目录
1.2.6、ruok

ruok 命令用于输出当前 Zookeeper 服务器是否正在运行。

echo ruok | nc localhost 2181

如果当前 Zookeeper 服务器正在运行,那么返回 “imok” ,否则没有任何响应输出。

1.2.7、stat

stat 命令用于获取 Zookeeper 服务器的运行时状态信息。

echo stat | nc localhost 2181
属性说明
Zookeeper version版本
Clients客户端连接列表
Latency min/avg/max延时
Received收包
Sent发包
Connections连接数
Outstanding堆积数
Zxid最大事物id
Mode服务器角色
Node节点数
1.2.8、srvr

srvr 命令和 stat 命令的功能一致,唯一的区别是 srvr 不会将客户端的连接情况输出,仅仅输出服务器的自身信息。

1.2.9、srst

srst 命令是一个功能行命令,用于重置所有服务器的统计信息。

echo srst | nc localhost 2181
1.2.10、wchs

wchs 命令用于输出当前服务器上管理的 Watcher 的概要信息。

echo wchs | nc localhost 2181
属性说明
connectsions连接数
watch-pathswatch节点数
watcherswatcher数量
1.2.11、wchc

wchc 命令用于输出当前服务器上管理的 Watcher 的详细信息,以会话为单位进行归组,同时列出被该会话注册了 Watcher 的节点路径。

echo wchc | nc localhost 2181

问题:

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}"
1.2.12、wchp

wchp 命令和 wchc 命令非常类似,也是用于输出当前服务器上管理的 Watcher 的详细信息,不同点在于 wchp 命令的输出信息以节点路径为单位进行归组。

echo wchp | nc localhost 2181
1.2.13、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_stateleader/follower 状态
zk_znode_countznode数量
zk_watch_countwatch数量
zk_ephemerals_count临时节点(znode)
zk_approximate_data_size数据大小
zk_open_file_descriptor_count打开的文件描述符数量
zk_max_file_descriptor_count最大文件描述符数量
zk_fsync_threshold_exceed_count0

2、Zookeeper 图形化的客户端工具(ZooInspector)

ZooInspector下载地址:

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

解压后进入目录ZooInspector\build,运行zookeeper-dev-ZooInspector.jar

#执行命令如下
java -jar zookeeper-dev-ZooInspector.jar

在这里插入图片描述

点击左上角连接按钮,输入zk服务地址:ip或者主机名:2181

在这里插入图片描述

点击OK,即可查看ZK节点信息

在这里插入图片描述

3、taoKeeper 监控工具

基于zookeeper的监控管理工具taokeeper,由淘宝团队开源的zk管理中间件,安装前要求服务前先配置nc 和 sshd

1.下载数据库脚本

wget https://github.com/downloads/alibaba/taokeeper/taokeeper.sql

2.下载主程序

wget https://github.com/downloads/alibaba/taokeeper/taokeeper-monitor.tar.gz

3.下载配置文件

wget https://github.com/downloads/alibaba/taokeeper/taokeeper-monitor-config.properties

4.配置 taokeeper-monitor-config.properties

#Daily
systemInfo.envName=DAILY
#DBCP
dbcp.driverClassName=com.mysql.jdbc.Driver
#mysql连接的ip地址端口号
dbcp.dbJDBCUrl=jdbc:mysql://localhost:3306/taokeeper
dbcp.characterEncoding=GBK
#用户名
dbcp.username=root
#密码
dbcp.password=root
dbcp.maxActive=30
dbcp.maxIdle=10
dbcp.maxWait=10000
#SystemConstant
#用户存储内部数据的文件夹
#创建/home/zookeeper/taokeeperdata/ZooKeeperClientThroughputStat
SystemConstent.dataStoreBasePath=/home/zookeeper/taokeeperdata
#ssh用户
SystemConstant.userNameOfSSH=zookeeper
#ssh密码
SystemConstant.passwordOfSSH=zookeeper
#Optional
SystemConstant.portOfSSH=22

5.安装配置 tomcat,修改catalina.sh

#指向配置文件所在的位置
JAVA_OPTS=-DconfigFilePath="/home/zookeeper/taokeeper-monitor-tomcat/webapps/ROOT/conf/taokeeper-monitor-config.properties"

6.部署工程启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值