zookeeper 서버에서 leader인지 follower인지를 다음처럼 간단히 확인할 수 있다.
$ echo srvr | nc localhost 2181
그러면 Mode로 쉽게 파악할 수 있다.
$ echo srvr | nc localhost 2181
Zookeeper version: 3.3.3-1203054, built on 11/17/2011 05:47 GMT
Latency min/avg/max: 0/0/82
Received: 70940852
Sent: 71197941
Outstanding: 1
Zxid: 0x2000016bf
Mode: follower
Node count: 4325
$ echo srvr | nc localhost 2181 | grep Mode
Mode: leader
실제 요청(request)이 들어오고 있는지 확인하려면 다음과 같이 진행하다.
$ echo stat | nc localhost 2181
Zookeeper version: 3.3.3-1203054, built on 11/17/2011 05:47 GMT
Clients:
...
Latency min/avg/max: 0/0/16
Received: 4288
Sent: 4288
Outstanding: 0
Zxid: 0x1007f3e40
Mode: follower
Node count: 4317
stat 또는 srvr 정보는 다음과 같다.
지표 | 내용 |
Latency min/avg/max | 클라이언트 요청을 처리하는데 소요되는 전체 지연 시간(latency) 지연시간이 길어질수록 좋지 않다. |
Outstanding | 서버에서 큐잉되고 있는 요청 개수. 점점 요청 개수가 많아질 수록 개수는 늘어난다. 1,2까지는 괜찮은 것 같다. 하지만 그 이상이 되면 확인해볼 필요가 있다. |
Received | 지금까지 받은 클라이언트 요청 개수 |
Sent | 지금까지 보낸 클라이언트 패킷 수(응답과 상태 알림) |
Mode | 노드의 상태 |
Zxid | 노드의 id |
Node Count | 주키퍼 네임스페이스의 znode 개수 |
참고로 나는 클러스터의 zookeeper 정보의 node count를 통해서 동기 상태를 파악한다.
정상적으로 동작하는지 확인하려면 ruok를 실행한다. imok이 들어오면 괜찮다.
$ echo ruok | nc 127.0.0.1 2181
imok
클러스터 정보를 보고 싶으면, jmx로 연결해서 확인한다. org.apache.ZookeeperService에서 ReplicatedServer mbean을 확인한다.
환경 정보(java, zookeeper classpath 등등)는 envi 커맨드를 사용한다.
$ echo envi | nc 127.0.0.1 2181
dump 커맨드를 사용하면 zookeeper의 모든 노드 정보를 출력한다. 노드의 값은 나오지 않는다.
$ echo dump | nc 127.0.0.1 2181
SessionTracker dump:
org.apache.zookeeper.server.quorum.LearnerSessionTracker@63f69aa9
ephemeral nodes dump:
Sessions with Ephemerals (225):
0x54f9dca900afb7f:
/google/plus/real/monitor/n_0000000040
.....
zookeeper의 어드민은 현재 장비를 기준으로 되어 있지, 전체적으로 모니터링이 조금 어렵다.
zktop.py 소스를 다운받아 통합 모니터링이 가능하다.
$ wget https://raw.githubusercontent.com/phunt/zktop/master/zktop.py
$ chmod 755 zktop.py
$ ./zktop.py --server "a.google.com:2181,b.google.com:2181,c.google.com:2181"
'nosql' 카테고리의 다른 글
zookeeper rmr 커맨드 (0) | 2017.01.12 |
---|---|
[hbase]-로컬 환경 - Failed to become active master 해결 (0) | 2016.08.03 |
[redis] redis cluster 셋업하기 (0) | 2016.06.07 |
[cassandra] history 보기 (0) | 2016.05.06 |
[cassandra] Unsupported null value (0) | 2015.12.28 |