Zookeeper Commands - Four Letter Words

2019. 11. 1. 11:54Open source tools

ZooKeeper는 작은 명령들의 집합에 응답합니다. 각 명령은 네 글자로 구성됩니다. 클라이언트 포트에서 telnet 또는 nc를 통해 ZooKeeper에 명령을 발행합니다.

보다 흥미로운 명령 중 세 가지 : "stat"는 서버 및 연결된 클라이언트에 대한 일반적인 정보를 제공하고 "srvr"및 "cons"는 각각 서버 및 연결에 대한 자세한 정보를 제공합니다.

3.5.3의 새로운 기능 : 사용하기 전에 네 글자가 명시 적으로 흰색으로 표시되어야합니다. 자세한 내용은 클러스터 구성 섹션에 설명 된 4lw.commands.whitelist를 참조하십시오. 앞으로 네 글자는 더 이상 사용되지 않습니다. 대신 AdminServer를 사용하십시오.

 

Command 의미
conf 3.3.0의 새로운 기능 : 구성 제공에 대한 세부 정보를 인쇄합니다. 
cons  3.3.0의 새로운 기능 :이 서버에 연결된 모든 클라이언트에 대한 전체 연결 / 세션 정보를 나열합니다. 수신 / 전송 된 패킷 수, 세션 ID, 작업 대기 시간, 마지막으로 수행 한 작업 등에 대한 정보를 포함합니다. 
crst  3.3.0의 새로운 기능 : 모든 연결에 대한 연결 / 세션 통계를 재설정합니다. 
dump  미해결 세션과 임시 노드를 나열합니다. 이것은 리더에게만 적용됩니다. 
envi  서빙 환경에 대한 세부 사항 인쇄 
ruok  서버가 오류가 아닌 상태에서 실행되고 있는지 테스트합니다. 서버가 실행중인 경우 imok로 응답합니다. 그렇지 않으면 전혀 응답하지 않습니다. "imok"응답은 반드시 서버가 쿼럼에 참가했음을 나타내는 것은 아니며 서버 프로세스가 활성 상태이고 지정된 클라이언트 포트에 바인딩되어 있음을 나타냅니다. 상태 wrt 쿼럼 및 클라이언트 연결 정보에 대한 자세한 내용은 "stat"를 사용하십시오. 
srst  서버 통계를 재설정합니다. 
srvr  3.3.0의 새로운 기능 : 서버에 대한 자세한 정보를 나열합니다. 
stat  서버 및 연결된 클라이언트에 대한 간략한 세부 사항을 나열합니다. 
wchs  3.3.0의 새로운 기능 : 서버 시계에 대한 간단한 정보를 나열합니다. 
wchc  3.3.0의 새로운 기능 : 세션 별 서버 시계에 대한 자세한 정보를 나열합니다. 연결된 시계 (경로)가있는 세션 (연결) 목록이 출력됩니다. 이 작업이 비용이 많이 드는 시계 수에 따라 (즉, 서버 성능에 영향을 미침)주의해서 사용하십시오. 
dirs  3.5.1의 새로운 기능 : 스냅 샷 및 로그 파일의 총 크기를 바이트 단위로 표시합니다 
wchp  3.3.0의 새로운 기능 : 경로별로 서버 시계에 대한 자세한 정보를 나열합니다. 연관된 세션이있는 경로 목록 (znode)을 출력합니다. 이 작업이 비용이 많이 드는 시계 수 (예 : 서버 성능에 영향을 줄 수 있음)에 따라주의해서 사용하십시오. 
mntr 

3.4.0의 새로운 기능 : 클러스터 상태를 모니터링하는 데 사용할 수있는 변수 목록을 출력합니다. 

$ echo mntr | NC localhost 2185

zk_version      3.4.12, built on 03/27/2018 03:55 GMT
zk_avg_latency  0
zk_max_latency  428
zk_min_latency  0
zk_packets_received     3690987446
zk_packets_sent 6549493144
zk_num_alive_connections        98
zk_outstanding_requests 0
zk_server_state follower
zk_znode_count  694
zk_watch_count  2460
zk_ephemerals_count     300
zk_approximate_data_size        182316
zk_open_file_descriptor_count   128
zk_max_file_descriptor_count    65536


출력은 Java 특성 형식과 호환되며 컨텐츠는 시간이 지남에 따라 변경 될 수 있습니다 (새 키 추가). 스크립트는 변경 될 것으로 예상됩니다. 주의 : 일부 키는 플랫폼에 따라 다르며 일부 키는 Leader 만 내 보냅니다. 출력에는 다음 형식의 여러 줄이 포함됩니다.

isro  3.4.0의 새로운 기능 : 서버가 읽기 전용 모드로 실행되고 있는지 테스트합니다. 서버는 읽기 전용 모드 인 경우 "ro"로, 읽기 전용 모드가 아닌 경우 "rw"로 응답합니다.
gtmk 현재 추적 마스크를 10 진수 형식의 64 비트 부호있는 long 값으로 가져옵니다. 가능한 값에 대한 설명은 stmk를 참조하십시오.
stmk 

현재 트레이스 마스크를 설정합니다. 추적 마스크는 64 비트이며, 각 비트는 서버에서 특정 범주의 추적 로깅을 활성화하거나 비활성화합니다. 추적 로깅 메시지를 보려면 TRACE 레벨을 먼저 사용하도록 Log4J를 구성해야합니다. 추적 마스크의 비트는 다음 추적 로깅 범주에 해당합니다.

Trace Mask Bit Values

0b0000000000    사용되지 않음. 예약된 값

0b0000000010    Client 요청들을 로깅한다. Ping Request 도 포함

0b0000000100    사용되지 않음. 예약된 값

0b0000001000    Client ping request 를 로깅함.

0b0000010000    현재 리더로 부터 수신하는 패킷을 로깅함. Ping Request 도 포함

0b0000100000    Client session 의 추가, 삭제 적합성에 대한 로그들

0b0001000000    Client session 로 전송하는 watch event 에 대한 전달 로그들

0b0010000000    현재 리더로 부터 수신하는 Ping 패킷 수신 로그들

0b0100000000    사용되지 않음. 예약된 값

0b1000000000    사용되지 않음. 예약된 값

 

64 비트 값의 나머지 비트는 모두 사용되지 않으며 나중에 사용하기 위해 예약되어 있습니다. 문서화 된 값의 비트 단위 OR을 계산하여 여러 추적 로깅 범주를 지정합니다. 기본 추적 마스크는 0b0100110010입니다. 따라서 기본적으로 추적 로깅에는 클라이언트 요청, 리더로부터받은 패킷 및 세션이 포함됩니다. 다른 추적 마스크를 설정하려면 stmk 4 자 단어와 64 비트 부호있는 long 값으로 표시되는 추적 마스크가 포함 된 요청을 보내십시오. 이 예제는 Perl pack 함수를 사용하여 위에서 설명한 모든 추적 로깅 범주를 사용 가능하게하는 추적 마스크를 구성하고이를 빅 엔디안 바이트 순서로 부호있는 64 비트 long 값으로 변환합니다. 결과는 stmk에 추가되고 netcat을 사용하여 서버로 전송됩니다. 서버는 10 진수 형식의 새 추적 마스크로 응답합니다.

$ perl -e "print 'stmk', pack ( 'q>', 0b0011111010)"| nc localhost 2181250

예제)

1) conf

bash-4.4# echo conf |nc localhost 2181
clientPort=2181
dataDir=/data/version-2
dataLogDir=/datalog/version-2
tickTime=2000
maxClientCnxns=60
minSessionTimeout=4000
maxSessionTimeout=40000
serverId=1
initLimit=5
syncLimit=2
electionAlg=3
electionPort=3888
quorumPort=2888
peerType=0

2) cons

bash-4.4# echo cons |nc localhost 2181
 /192.168.1.46:39194[1](queued=1,recved=3773858,sent=3773858,sid=0x10000233b9962f1,lop=PING,est=1567835148000,to=6000,lcxid=0x133482,lzxid=0xffffffffffffffff,lresp=12481030402,llat=1,minlat=0,avglat=0,maxlat=75)

3) crst 

bash-4.4# echo crst |nc localhost 2181
Connection stats reset.

4) dump 

bash-4.4# echo dump |nc localhost 2181
SessionTracker dump: org.apache.zookeeper.server.quorum.LearnerSessionTracker@63422dd5
ephemeral nodes dump:
Sessions with Ephemerals (300):
0x2000009db33253a: 
~중략~

5) envi

bash-4.4# echo envi |nc localhost 2181
Environment: zookeeper.version=3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT
host.name=data-01
java.version=1.8.0_171
java.vendor=Oracle Corporation
java.home=/usr/lib/jvm/java-1.8-openjdk/jre
java.class.path=/zookeeper-3.4.12/bin/../build/classes:/zookeeper-3.4.12/bin/../build/lib/*.jar:/zookeeper-3.4.12/bin/../lib/slf4j-log4j12-1.7.25.jar:/zookeeper-3.4.12/bin/../lib/slf4j-api-1.7.25.jar:/zookeeper-3.4.12/bin/../lib/netty-3.10.6.Final.jar:/zookeeper-3.4.12/bin/../lib/log4j-1.2.17.jar:/zookeeper-3.4.12/bin/../lib/jline-0.9.94.jar:/zookeeper-3.4.12/bin/../lib/audience-annotations-0.5.0.jar:/zookeeper-3.4.12/bin/../zookeeper-3.4.12.jar:/zookeeper-3.4.12/bin/../src/java/lib/*.jar:/conf: java.library.path=/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.io.tmpdir=/tmp java.compiler=<NA>
os.name=Linux
os.arch=amd64
os.version=3.10.0-862.9.1.el7.x86_64
user.name=zookeeper
user.home=/home/zookeeper
user.dir=/zookeeper-3.4.12

6) ruok

bash-4.4# echo ruok |nc localhost 2181
imok

7) srst 

bash-4.4# echo srst |nc localhost 2181 

srst reset. 

8) srvr 

bash-4.4# echo srvr |nc localhost 2181
Zookeeper version: 3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT
Latency min/avg/max: 0/0/428
Received: 3691264557
Sent: 6549999039
Connections: 106
Outstanding: 0
Zxid: 0x345aeb87c
Mode: follower
Node count: 694

9) stat

bash-4.4# echo stat |nc localhost 2181 Zookeeper version: 3.4.12, built on 03/27/2018 03:55 GMT
Clients:
/192.168.1.46:39194[1](queued=1,recved=17,sent=17) /192.168.1.48:39406[1](queued=1,recved=21,sent=21)
~ 중략 ~

Latency min/avg/max: 0/0/428
Received: 3691056763
Sent: 6549619852
Connections: 95
Outstanding: 0
Zxid: 0x345ade712
Mode: follower
Node count: 694

10) wchs 

bash-4.4# echo wchs |nc localhost 2181
107 connections watching 550 paths
Total watches:1960

11) wchc

bash-4.4# echo wchc |nc localhost 2181

12) dirs

bash-4.4# echo dirs |nc localhost 2181

13) wchp 

bash-4.4# echo wchp |nc localhost 2181 

14) mntr

$ echo mntr | NC localhost 2185
zk_version      3.4.12, built on 03/27/2018 03:55 GMT 
zk_avg_latency  0 
zk_max_latency  428 
zk_min_latency  0 
zk_packets_received     3690987446 
zk_packets_sent 6549493144 
zk_num_alive_connections        98 
zk_outstanding_requests 0 
zk_server_state follower 
zk_znode_count  694 
zk_watch_count  2460 
zk_ephemerals_count     300 
zk_approximate_data_size        182316 
zk_open_file_descriptor_count   128 
zk_max_file_descriptor_count    65536 

15) isro

bash-4.4# echo isro |nc localhost 2181
rw

16) gtmk

bash-4.4# echo gtmk |nc localhost 2181
306

17) stmk 

$ perl -e "print 'stmk', pack ( 'q>', 0b0011111010)"| nc localhost 2181250

'Open source tools' 카테고리의 다른 글

Cuda Encoder 사용하는 방법  (0) 2019.12.09
OpenCV 빌드하기 (OpenCV 3.2 + CUDA + TBB)  (0) 2019.11.01
Zookeeper znode type  (0) 2019.11.01
Docker Zookeeper server install  (0) 2019.11.01
Rabbitmq Docker install  (0) 2019.11.01