日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache ZooKeeper - FourLetterCommands运维命令

發(fā)布時間:2025/3/21 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache ZooKeeper - FourLetterCommands运维命令 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • Pre
  • 安裝nc
  • 常見的四字母命令
    • FourLetterCommands
    • 命令解析
      • confs
      • cons
      • stat
      • mntr
      • srvr
      • ruok
  • Question


Pre

Apache ZooKeeper - JMX監(jiān)控 ZooKeeper 的運(yùn)行狀態(tài)

除了 JConsole 監(jiān)控控制臺之外,ZooKeeper 還提供了一些命令,可使我們更加靈活地統(tǒng)計監(jiān)控 ZooKeeper 服務(wù)的狀態(tài)信息。

ZooKeeper 提供的這些命令也叫作四字母命令,如它們的名字一樣,每一個命令都是由四個字母組成的。

比如,輸入相關(guān)的命令來查詢 ZooKeeper 服務(wù),可以輸入 stat 命令來查看數(shù)據(jù)節(jié)點等信息。

echo {command} | nc 127.0.0.1 2181

安裝nc

netcat(nc)不僅可以通過使用TCP或UDP協(xié)議的網(wǎng)絡(luò)連接讀寫數(shù)據(jù),同時還是一個功能強(qiáng)大的網(wǎng)絡(luò)調(diào)試和探測工具。

默認(rèn)未安裝 ,安裝如下

yum install -y nc

常見的四字母命令

FourLetterCommands

org.apache.zookeeper.server.command.FourLetterCommands // specify all of the commands that are availablestatic {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");}

命令解析

命令示例描述
confecho conf | nc localhost 2181(New in 3.3.0)輸出相關(guān)服務(wù)配置的詳細(xì)信息。比如端口、zk數(shù)據(jù)及日志配置路徑、最大連接數(shù),session超時時間、serverId等
consecho cons | nc localhost 2181(New in 3.3.0)列出所有連接到這臺服務(wù)器的客戶端連接/會話的詳細(xì)信息。包括“接受/發(fā)送”的包數(shù)量、session id 、操作延遲、最后的操作執(zhí)行等信息。
crstecho crst | nc localhost 2181(New in 3.3.0)重置當(dāng)前這臺服務(wù)器所有連接/會話的統(tǒng)計信息
dumpecho dump | nc localhost 2181列出未經(jīng)處理的會話和臨時節(jié)點(只在leader上有效)。
enviecho envi | nc localhost 2181輸出關(guān)于服務(wù)器的環(huán)境詳細(xì)信息(不同于conf命令),比如zookeeper.version、host.name、java.version、java.home、user.dir=/data/zookeeper-3.4.6/bin之類信息
ruokecho ruok | nc localhost 2181測試服務(wù)是否處于正確運(yùn)行狀態(tài)。如果正常返回"imok",否則返回空。
srstecho srst | nc localhost 2181重置服務(wù)器的統(tǒng)計信息
srvrecho srvr | nc localhost 2181(New in 3.3.0)輸出服務(wù)器的詳細(xì)信息。zk版本、接收/發(fā)送包數(shù)量、連接數(shù)、模式(leader/follower)、節(jié)點總數(shù)。
statecho stat | nc localhost 2181輸出服務(wù)器的詳細(xì)信息:接收/發(fā)送包數(shù)量、連接數(shù)、模式(leader/follower)、節(jié)點總數(shù)、延遲。 所有客戶端的列表。
wchsecho wchs | nc localhost 2181(New in 3.3.0)列出服務(wù)器watches的簡潔信息:連接總數(shù)、watching節(jié)點總數(shù)和watches總數(shù)
wchcecho wchc | nc localhost 2181(New in 3.3.0)通過session分組,列出watch的所有節(jié)點,它的輸出是一個與 watch 相關(guān)的會話的節(jié)點列表。如果watches數(shù)量很大的話,將會產(chǎn)生很大的開銷,會影響性能,小心使用。
wchpecho wchp | nc localhost 2181(New in 3.3.0)通過路徑分組,列出所有的 watch 的session id信息。它輸出一個與 session 相關(guān)的路徑。如果watches數(shù)量很大的話,將會產(chǎn)生很大的開銷,會影響性能,小心使用。
mntrecho mntr | nc localhost 2181(New in 3.4.0)列出集群的健康狀態(tài)。包括“接受/發(fā)送”的包數(shù)量、操作延遲、當(dāng)前服務(wù)模式(leader/follower)、節(jié)點總數(shù)、watch總數(shù)、臨時節(jié)點總數(shù)。

confs

屬性說明默認(rèn)值、配置說明補(bǔ)充說明
clientPort客戶端端口號2181客戶端所連接的服務(wù)器所監(jiān)聽的TCP端口
dataDir數(shù)據(jù)文件目錄${zkDir}/data/version-2用于配置內(nèi)存數(shù)據(jù)庫保存的快照目錄,(文件名snapshot.xxxxx)
dataLogDir日志文件目錄${zkDir}/data/version-2記錄的是事務(wù)日志 (文件名如log.xxxx), 服務(wù)端會順序?qū)懭胧聞?wù)日志,由于快照的寫入可能會影響事務(wù)日志的寫入吞吐能力,可以將dataLogDir指向?qū)S玫娜罩敬鎯υO(shè)備
tickTimeZk使用的基本時間度量單位3000 (單位毫秒)客戶端的最小會話超時時間為兩個tickTime
更低的tickTime可以更快的發(fā)現(xiàn)超時問題,但也會導(dǎo)致更高的網(wǎng)絡(luò)流量(心跳消息)和更高的CPU利用率(會話存儲器的處理)
maxClientCnxns客戶端最大連接數(shù)60個允許每個IP地址的并發(fā)socket連接的最大連接數(shù)。為了解決某些錯誤的客戶端每秒創(chuàng)建很多個Zookeeper連接,最后導(dǎo)致Dos而添加的選項。
minSessionTimeout最小會話超時2個tickTime時間客戶端建立連接后會請求一個明確的超時值,此值不能低于minSessionTimeout
該參數(shù)配置過低可能會導(dǎo)致錯誤的客戶端故障檢測,過高會延遲客戶端故障的檢測時間
maxSessionTimeout最大會話超時20個tickTime時間客戶端建立連接后會請求一個明確的超時值,此值不能高于maxSessionTimeout
該參數(shù)不會影響系統(tǒng)的性能,但卻可以限制一個客戶端消耗系統(tǒng)資源的時間
serverIdid
initLimitfollower最初連接到master時的超時值沒有默認(rèn)值,單位是tickTime的倍數(shù)當(dāng)某個follower最初與master建立連接時,之間會傳輸大量的數(shù)據(jù),尤其是follower落后整體很多的時候。此參數(shù)的配置取決于follower與master之間的網(wǎng)絡(luò)速度情況,以及傳輸?shù)臄?shù)據(jù)量大小,如果Zookeeper中保存的數(shù)據(jù)量很大,例如存在大量的znode節(jié)點或者傳輸網(wǎng)絡(luò)很慢,就需要增大時initLimit值,可以配置initLimit值為2倍你所期待的值,此值最好在網(wǎng)絡(luò)中進(jìn)行follower和master之間進(jìn)行網(wǎng)絡(luò)基準(zhǔn)測試后再決定
屬于集群配置
syncLimitfollower與master進(jìn)行sync操作時的超時值沒有默認(rèn)值,單位為tickTime的倍數(shù)當(dāng)master與follower無法進(jìn)行sync操作,而且超過了syncLimit的tickTime,就會放棄該follower
屬于集群配置與initLimit不同的是,syncLimit 并不依賴于Zk中保存的數(shù)據(jù)量大小,而是依賴于網(wǎng)絡(luò)的延遲和吞吐量
高延遲的網(wǎng)絡(luò)中或者相對較大的事務(wù)傳輸時,都需要提高syncLimit值
electionAlg選舉算法默認(rèn)3此配置不需要更改,目前其他的選舉算法已被棄用
0基于UDP的LeaderElection
屬于集群配置1基于UDP的FastLeaderElection
2基于UDP和認(rèn)證的FastLeaderElection
3基于TCP的FastLeaderElection
electionPort選舉端口在ZK的配置文件中配置,格式為:
server.x=[hostname]:port1:port2[:observer]
配置文件可拷貝conf/zoo_sample.cfg文件,加入如上格式的配置,其中
x表示服務(wù)器的ID(需要是整數(shù)),必須配置在data/myid文件中
hostname表示當(dāng)前服務(wù)器在網(wǎng)絡(luò)中的名稱
port1表示用于事務(wù)發(fā)送的端口號,如2888
port2表示用于master選舉的端口號,如3888
observer表示將當(dāng)前服務(wù)器設(shè)置為觀察者模式。此選項可選
quorumPort法人端口
peerType角色類型對應(yīng)的序號默認(rèn)0,表示參與者的角色在源碼中使用LearnerType枚舉類來表示,有2種類型 PARTICIPANT(0), OBSERVER(1)
可選值有0和1分別表示參與者和觀察者,默認(rèn)是參與者,可以參與投票進(jìn)行選舉的角色
若需要修改為觀察者,需要在ZK配置文件中加入
peerType=observer
以及
server.x=[hostname]:port1:port2
后加入:observer

cons

cons 命令用于輸出當(dāng)前這臺服務(wù)器上所有客戶端連接的詳細(xì)信息,包括每個客戶端的客戶端 IP 、會話 ID 和最后一次與服務(wù)器交互的操作類型等。

屬性說明
ip+portip地址+端口
[interestOps]netty/NIO中定義的interestOps
queued已經(jīng)提交但未響應(yīng)的請求數(shù)
recved收到的包數(shù)量
sent發(fā)送的數(shù)據(jù)包數(shù)量(包括通知)
sidsession id
lop即 last operation 此連接執(zhí)行的上一個操作
est即 Established 建立連接的時間戳
to會話超時時間,單位毫秒值
lcxid此連接的最后一個 cxid (指客戶端發(fā)送一個數(shù)據(jù)包到服務(wù)器之前在服務(wù)器生成一個單調(diào)遞增的整數(shù))
lzxid此連接的最后一個 zxid (事務(wù)ID)
lresp上次服務(wù)器在此連接上向客戶端發(fā)送的響應(yīng)時間
llat即 LastLatency 此連接對應(yīng)客戶端的上次響應(yīng)的延遲 (單位ms)
minlat最小延遲 ms
avglat平均延遲 ms
maxlat最大延遲 ms

stat

stat 命令的作用是監(jiān)控 ZooKeeper 服務(wù)器的狀態(tài),我們通過 stat 命令統(tǒng)計 ZooKeeper 服務(wù)器的 ZooKeeper 版本信息、集群數(shù)節(jié)點等信息

屬性說明
Zookeeper versionzookeeper版本號
Clients客戶端相關(guān)信息
Latency min/avg/max最小/平均/最大延遲 ms
Received收包數(shù)
Sent發(fā)包數(shù)
Connections已連接的客戶端數(shù)量
Outstanding隊列中尚未完成的請求數(shù)
Zxid上次處理的zxid
Mode所屬角色
Node count節(jié)點數(shù)
[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收包數(shù)
zk_packets_sent發(fā)包數(shù)
zk_num_alive_connections存活的連接數(shù)
zk_outstanding_requests堆積的請求數(shù)
zk_server_state服務(wù)器的狀態(tài),包括:leader, follower, observer, read-only, standalone
zk_znode_countznode節(jié)點總數(shù)
zk_watch_countwatch總數(shù)
zk_ephemerals_count臨時節(jié)點總數(shù)(znode)
zk_approximate_data_size數(shù)據(jù)的近似大小
zk_open_file_descriptor_count打開的文件描述符數(shù)量
zk_max_file_descriptor_count最大文件描述符數(shù)量
zk_followersfollower數(shù)量
zk_synced_followers已同步的follower數(shù)量
zk_pending_syncs等待同步請求的數(shù)量
[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 命令只會查詢服務(wù)器的自身信息。

[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 服務(wù)器是否正常運(yùn)行。如果 ZooKeeper 服務(wù)器正常運(yùn)行,執(zhí)行完 ruok 命令后,會得到 “imok” 返回值。如果 ZooKeeper 服務(wù)沒有正常運(yùn)行,則不會有任何返回值。在使用 ruok 命令的時候,在這里我們要注意的一點是,有些時候即使返回了 “imok” 字段,ZooKeeper 服務(wù)也可能沒有正常運(yùn)行,唯一能確定的是該臺服務(wù)器的 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

總結(jié)

以上是生活随笔為你收集整理的Apache ZooKeeper - FourLetterCommands运维命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。