본문 바로가기
Old Posts/Zookeeper

[Zookeeper] 4 letter words 명령어 사용법

by A6K 2021. 10. 31.

주키퍼는 주키퍼 클러스터와 관련된 정보들을 조회할 수 있도록 몇 가지 유용한 명령어들을 제공한다. 이 명령어들은 알파벳 4글자로 구성되어 있어 '4 letter words' 명령어라고 부른다.

4 letter words 명령어 사용법

주키퍼의 '4 letter word' 명령어는 telnet이나 nc 명령을 주키퍼의 클라이언트 포트로 전송해서 사용할 수 있다.

$ echo srvr | nc localhost 2181
Zookeeper version: 3.7.0-e3704b390a6697bfdf4b0bef79e3da7a4f6bac4b, built on 2021-03-17 09:46 UTC
Latency min/avg/max: 0/0.0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: standalone
Node count: 5

이런식으로 nc 명령으로 localhost에 떠있는 주키퍼의 2181 포트에 4 letter words 명령을 전송하면 된다.

버전에 따라 다르지만 기본적으로 4-letter-word 명령어는 활성화되어 있지 않다. 따라서 주키퍼를 구동할 때, 화이트리스트에 허용할 4 letter word 커맨드를 설정해야한다.

zookeeper.properties 파일에 4lw.commands.whitelist 설정값으로 써주면 된다.

4lw.commands.whitelist=*

이렇게 써두면 모든 4 letter word 커맨드가 활성화된다. 이 경우 주키퍼의 사용 패턴에 따라 원하지 않는 정보가 새어 나갈 수도 있다. (dump 명령 등으로...)
따라서 일부 명령만 허용하도록 설정 할 수도 있다.

4lw.commands.whitelist=stat, ruok, conf

4 letter words 명령어

명령어  
stat 서버와 클라이언트 연결에 대한 간략한 정보 조회
srvr 서버에 대한 상세 정보 조회
cons 해당 서버로 연결된 모든 클라이언트 연결과 세션에 대한 상세 정보 조회
(주고 받은 패킷과 세션ID, 레이턴시와 마지막으로 수행된 연산 등 조회가능)
conf 서버의 설정 값을 조회
crst 모든 연결에 대한 통계정보 조회
dump 임시노드(Ephemeral Node)와 Outstanding 세션 정보 조회. 리더 주키퍼에서만 사용 가능
envi 서버의 환경 정보
ruok 주키퍼 서버가 제대로 동작하고 있는지 확인
정상동작한다면 "Imok", 그렇지 않으면 응답을 안함
단, 응답을 한다고 주키퍼 쿼럼에 속해있다는 뜻은 아님
srst 서버의 통계 정보를 초기화
wchs 서버의 워치(watch)에 대한 간략한 정보 조회
wchc 서버의 워치(watch)에 대한 자세한 정보들 조회 (by session)
wchp 서버의 워치(watch)에 대한 자세한 정보들 조회 (by path)
dirs 스냅샷과 로그 파일의 총 사이즈
mntr 클러스터의 헬스모니터링을 위해 사용되는 변수들 조회. 정보들은 시간에 따라 바뀔 수 있음
isro 서버가 읽기 전용 모드인지 확인.
읽기 전용 모드라면 "ro" 아니라면 "rw"로 응답
gtmk 현재 트레이스 마스크 정보를 출력.
stmk 현재 트레이스 마스크 정보를 설정. 트레이스 마스크에 따라서 서버의 동작중 트레이스 로그로 남길 정보들이 활성화 혹은 비활성화된다.

트레이스 마스크는 다음 의미로 사용된다.

0b0000000000 : 사용안됨, 추후 사용예정
0b0000000010 : 핑 요청을 제외한 클라이언트 요청을 로깅
0b0000000100 : 사용안됨, 추후 사용예정
0b0000001000 : 클라이언트의 핑 요청을 로깅
0b0000010000 : 핑 요청을 제외한 Quorum의 리더로부터 받은 요청들을 로깅
0b0000100000 : 클라이언트 세션의 추가, 제거, 검증을 로깅
0b0001000000 : 클라이언트 세션의 워치 이벤트의 전달을 로깅
0b0010000000 : Quorum 리더로부터의 핑 요청을 로깅
0b0100000000 : 사용안됨, 추후 사용예정
0b1000000000 : 사용안됨, 추후 사용예정

 

댓글