1悟狱、四字命令
Zookeeper 中有很多4個(gè)英文字母長(zhǎng)度的運(yùn)維命令堰氓,簡(jiǎn)稱(chēng)為“四字命令”双絮。
1.1囤攀、使用方式
四字命令的使用方式非常簡(jiǎn)單焚挠,通常有兩種方式蝌衔。介紹如下:
-
Telnet 方式
實(shí)例:
#連接 telnet <ip> <port> #輸入命令 <命令>
-
nc 方式
echo <命令> | nc <ip> <port>
如果沒(méi)有安裝,請(qǐng)先進(jìn)行安裝
#root用戶(hù)安裝 #下載安裝包 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 服務(wù)器運(yùn)行時(shí)使用的基本配置信息斥废。
echo conf | nc localhost 2181
屬性 | 說(shuō)明 |
---|---|
clientPort | 對(duì)外暴漏的客戶(hù)端連接端口號(hào)牡肉。 |
dataDir | 數(shù)據(jù)快照文件目錄荚板,默認(rèn)情況下100000次事務(wù)操作生成一次快照跪另。 |
dataLogDir | 事務(wù)日志文件目錄,生產(chǎn)環(huán)境中放在獨(dú)立的磁盤(pán)上唧席。 |
tickTime | 服務(wù)器之間或客戶(hù)端與服務(wù)器之間維持心跳的時(shí)間間隔(以毫秒為單位)淌哟。 |
maxClientCnxns | 最大連接數(shù)徒仓。 |
minSessionTimeout | 最小session超時(shí) minSessionTimeout=tickTime*2 |
maxSessionTimeout | 最大session超時(shí) maxSessionTimeout=tickTime*20 |
serverId | 服務(wù)器編號(hào)掉弛。 |
initLimit | 集群中的follower服務(wù)器(F)與leader服務(wù)器(L)之間初始連接時(shí)能容忍的最多心跳數(shù)殃饿。 |
syncLimit | 集群中的follower服務(wù)器(F)與leader服務(wù)器(L)之間 請(qǐng)求和應(yīng)答之間能容忍的最多心跳數(shù)乎芳。 |
electionAlg | 0:基于UDP的LeaderElection 1:基于UDP的FastLeaderElection 2:基于UDP和認(rèn)證的FastLeaderElection 3:基于TCP的FastLeaderElection 在3.4.10版本中奈惑,默認(rèn)值為3另外三種算法已經(jīng)被棄用携取,并且有計(jì)劃在之后的版本中將它們徹底刪除而不再支持。 |
electionPort | 選舉端口不撑。 |
quorumPort | 數(shù)據(jù)通信端口焕檬。 |
peerType | 是否為觀(guān)察者 1為觀(guān)察者实愚。 |
1.2.2腊敲、cons
cons命令用于輸出當(dāng)前這臺(tái)服務(wù)器上所有客戶(hù)端連接的詳細(xì)信息碰辅。
echo cons | nc localhost 2181
屬性 | 說(shuō)明 |
---|---|
ip | ip地址 |
port | 端口號(hào) |
queued | 等待被處理的請(qǐng)求數(shù)介时,請(qǐng)求緩存在隊(duì)列中 |
received | 收到的包數(shù) |
sent | 發(fā)送的包數(shù) |
sid | 會(huì)話(huà)id |
lop | 最后的操作 GETD-讀取數(shù)據(jù) DELE-刪除數(shù)據(jù) CREA-創(chuàng)建數(shù)據(jù) |
est | 連接時(shí)間戳 |
to | 超時(shí)時(shí)間 |
lcxid | 當(dāng)前會(huì)話(huà)的操作id |
lzxid | 最大事務(wù)id |
lresp | 最后響應(yīng)時(shí)間戳 |
llat | 最后/最新 延時(shí) |
minlat | 最小延時(shí) |
maxlat | 最大延時(shí) |
avglat | 平均延時(shí) |
1.2.3循衰、crst
crst 命令是一個(gè)功能性命令会钝,用于重置所有的客戶(hù)端連接統(tǒng)計(jì)信息乱凿。
echo crst | nc localhost 2181
1.2.4徒蟆、dump
dump 命令用于輸出當(dāng)前集群的所有會(huì)話(huà)信息型型,包括這些會(huì)話(huà)的會(huì)話(huà)ID闹蒜,以及每個(gè)會(huì)話(huà)創(chuàng)建的臨時(shí)節(jié)點(diǎn)等信息。
echo dump | nc localhost 2181
屬性 | 說(shuō)明 |
---|---|
session id | znode path(1對(duì)多好乐,處于隊(duì)列中排隊(duì)的session和臨時(shí)節(jié)點(diǎn)) |
1.2.5、envi
envi 命令用于輸出 Zookeeper 所在服務(wù)器運(yùn)行時(shí)的環(huán)境信息催式。
echo envi | nc localhost 2181
屬性 | 說(shuō)明 |
---|---|
zookeeper.version | 版本 |
host.name | host信息 |
java.version | java版本 |
java.vendor | 供應(yīng)商 |
java.home | 運(yùn)行環(huán)境所在目錄 |
java.class.path | classpath |
java.library.path | 第三方庫(kù)指定非java類(lèi)包的位置(如:dll荣月,so) |
java.io.tmpdir | 默認(rèn)的臨時(shí)文件路徑 |
java.compiler | JIT 編譯器的名稱(chēng) |
os.name | Linux |
os.arch | amd64 |
os.version | 3.10.0-514.el7.x86_64 |
user.name | zookeeper |
user.home | 用戶(hù)名目錄 |
user.dir | 服務(wù)所在目錄 |
1.2.6哺窄、ruok
ruok 命令用于輸出當(dāng)前 Zookeeper 服務(wù)器是否正在運(yùn)行。
echo ruok | nc localhost 2181
如果當(dāng)前 Zookeeper 服務(wù)器正在運(yùn)行咽白,那么返回 “imok” 鸟缕,否則沒(méi)有任何響應(yīng)輸出懂从。
1.2.7番甩、stat
stat 命令用于獲取 Zookeeper 服務(wù)器的運(yùn)行時(shí)狀態(tài)信息缘薛。
echo stat | nc localhost 2181
屬性 | 說(shuō)明 |
---|---|
Zookeeper version | 版本 |
Clients | 客戶(hù)端連接列表 |
Latency min/avg/max | 延時(shí) |
Received | 收包 |
Sent | 發(fā)包 |
Connections | 連接數(shù) |
Outstanding | 堆積數(shù) |
Zxid | 最大事物id |
Mode | 服務(wù)器角色 |
Node | 節(jié)點(diǎn)數(shù) |
1.2.8漱抓、srvr
srvr 命令和 stat 命令的功能一致恕齐,唯一的區(qū)別是 srvr 不會(huì)將客戶(hù)端的連接情況輸出仪或,僅僅輸出服務(wù)器的自身信息。
1.2.9蕾域、srst
srst 命令是一個(gè)功能行命令束铭,用于重置所有服務(wù)器的統(tǒng)計(jì)信息契沫。
echo srst | nc localhost 2181
1.2.10昔汉、wchs
wchs 命令用于輸出當(dāng)前服務(wù)器上管理的 Watcher 的概要信息会通。
echo wchs | nc localhost 2181
屬性 | 說(shuō)明 |
---|---|
connectsions | 連接數(shù) |
watch-paths | watch節(jié)點(diǎn)數(shù) |
watchers | watcher數(shù)量 |
1.2.11涕侈、wchc
wchc 命令用于輸出當(dāng)前服務(wù)器上管理的 Watcher 的詳細(xì)信息裳涛,以會(huì)話(huà)為單位進(jìn)行歸組端三,同時(shí)列出被該會(huì)話(huà)注冊(cè)了 Watcher 的節(jié)點(diǎn)路徑。
echo wchc | nc localhost 2181
問(wèn)題:
wchc is not executed because it is not in the whitelist.
解決方法:
# 修改啟動(dòng)指令 zkServer.sh
?
# 注意找到這個(gè)信息
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 命令非常類(lèi)似,也是用于輸出當(dāng)前服務(wù)器上管理的 Watcher 的詳細(xì)信息谨履,不同點(diǎn)在于 wchp 命令的輸出信息以節(jié)點(diǎn)路徑為單位進(jìn)行歸組欢摄。
echo wchp | nc localhost 2181
1.2.13、mntr
mntr 命令用于輸出比 stat 命令更為詳盡的服務(wù)器統(tǒng)計(jì)信息屉符。
屬性 | 說(shuō)明 |
---|---|
zk_version | 版本 |
zk_avg_latency | 平均延時(shí) |
zk_max_latency | 最大延時(shí) |
zk_min_latency | 最小延時(shí) |
zk_packets_received | 收包數(shù) |
zk_packets_sent | 發(fā)包數(shù) |
zk_num_alive_connections | 連接數(shù) |
zk_outstanding_requests | 堆積請(qǐng)求數(shù) |
zk_server_state | leader/follower 狀態(tài) |
zk_znode_count | znode數(shù)量 |
zk_watch_count | watch數(shù)量 |
zk_ephemerals_count | 臨時(shí)節(jié)點(diǎn)(znode) |
zk_approximate_data_size | 數(shù)據(jù)大小 |
zk_open_file_descriptor_count | 打開(kāi)的文件描述符數(shù)量 |
zk_max_file_descriptor_count | 最大文件描述符數(shù)量 |
zk_fsync_threshold_exceed_count | 0 |
2剧浸、Zookeeper 圖形化的客戶(hù)端工具(ZooInspector)
ZooInspector下載地址:
https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
解壓后進(jìn)入目錄ZooInspector\build锹引,運(yùn)行zookeeper-dev-ZooInspector.jar
#執(zhí)行命令如下
java -jar zookeeper-dev-ZooInspector.jar
點(diǎn)擊左上角連接按鈕矗钟,輸入zk服務(wù)地址:ip或者主機(jī)名:2181
點(diǎn)擊OK唆香,即可查看ZK節(jié)點(diǎn)信息
3吨艇、taoKeeper 監(jiān)控工具
基于zookeeper的監(jiān)控管理工具taokeeper,由淘寶團(tuán)隊(duì)開(kāi)源的zk管理中間件组贺,安裝前要求服務(wù)前先配置nc 和 sshd
1.下載數(shù)據(jù)庫(kù)腳本
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地址端口號(hào)
dbcp.dbJDBCUrl=jdbc:mysql://localhost:3306/taokeeper
dbcp.characterEncoding=GBK
#用戶(hù)名
dbcp.username=root
#密碼
dbcp.password=root
dbcp.maxActive=30
dbcp.maxIdle=10
dbcp.maxWait=10000
#SystemConstant
#用戶(hù)存儲(chǔ)內(nèi)部數(shù)據(jù)的文件夾
#創(chuàng)建/home/zookeeper/taokeeperdata/ZooKeeperClientThroughputStat
SystemConstent.dataStoreBasePath=/home/zookeeper/taokeeperdata
#ssh用戶(hù)
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.部署工程啟動(dòng)