ZooKeeperに接続しているコネクション一覧

Apache ZooKeeperにおいて表題の通り。

■ 環境

Apache ZooKeeper 3.4.6

■ 4文字コマンド

ふたつの4文字コマンドで表題の結果を得ることができる。`cons`と`stat`である。

`cons`はそのままコネクションの一覧を取得。`stat`はコネクションの一覧とZooKeeperサーバの状態を取得することができる。各コネクションの情報についても`stat`で得られる結果よりも`cons`で得られる情報の方が多い。下記にそれぞれ取得してみたものを表示する。

`cons`

$ echo cons | nc localhost 2181
 /192.168.33.11:47949[1](queued=0,recved=254366,sent=254366,sid=0x151af8e909e001f,lop=PING,est=1453205223034,to=10000,lcxid=0x0,lzxid=0x3c8f7,lresp=1454053106380,llat=0,minlat=0,avglat=0,maxlat=5)
 /192.168.33.11:37597[1](queued=0,recved=282630,sent=282630,sid=0x151af8e909e001e,lop=PING,est=1453205224036,to=10000,lcxid=0x6e68,lzxid=0x3c8f7,lresp=1454053107375,llat=1,minlat=0,avglat=0,maxlat=22)
 /127.0.0.1:38444[0](queued=0,recved=1,sent=0)
 /192.168.110.151:47948[1](queued=0,recved=339112,sent=339112,sid=0x151af8e909e0020,lop=PING,est=1453205223034,to=10000,lcxid=0x14b0a,lzxid=0x3c8f7,lresp=1454053106380,llat=0,minlat=0,avglat=0,maxlat=34)
 /192.168.33.11:47950[1](queued=0,recved=2583739,sent=2583763,sid=0x151af8e909e0021,lop=GETC,est=1453205223034,to=10000,lcxid=0x238b1d,lzxid=0x3c8f7,lresp=1454053108920,llat=0,minlat=0,avglat=0,maxlat=19)
 /192.168.33.11:42157[1](queued=0,recved=254370,sent=254371,sid=0x151af8e909e001d,lop=PING,est=1453205224037,to=10000,lcxid=0x4,lzxid=0x3c8f7,lresp=1454053107376,llat=0,minlat=0,avglat=0,maxlat=4)

$

`stat`

$ echo stat | nc localhost 2181
Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT
Clients:
 /127.0.0.1:38632[0](queued=0,recved=1,sent=0)
 /192.168.33.11:47949[1](queued=0,recved=254442,sent=254442)
 /192.168.33.11:37597[1](queued=0,recved=282716,sent=282716)
 /192.168.33.11:47948[1](queued=0,recved=339214,sent=339214)
 /192.168.33.11:47950[1](queued=0,recved=2584450,sent=2584474)
 /192.168.33.11:42157[1](queued=0,recved=254446,sent=254447)

Latency min/avg/max: 0/0/41
Received: 14954939
Sent: 14955199
Connections: 6
Outstanding: 0
Zxid: 0x3c909
Mode: standalone
Node count: 60
$

どのホストからの接続が多いのかを見ることができるであろう。上記は”standalone“で稼働しているZooKeeperに対して、Dockerのクラスタ情報を格納しているのだがコネクションが5本も張られているようである。ちなみに”192.168.33.11“でどのプロセスが接続しているのかを確認してみる。

$ ssh 192.168.33.11
[withsin@192.168.33.11 ~]$ sudo lsof -i :47949

これから3つは”docker“プロセスが接続していることを確認できた。しかし下記2つのポートはどのプロセスが使用しているのか前述のコマンドでは判明しなかった。

  • 37597
  • 42157

これはまた別途調べる方法について確認する。

以上。