稼働中のZooKeeperのversionを調べる

Apache ZooKeeperにおいて表題の通り。先日のエントリの一部に既に書いているが、1エントリとして残しておく。

■ 環境

  • ZooKeeper 3.4.5, 3.4.6

■ ZooKeeper

稼働しているZooKeeperは、Dockerで起動させている。先日の通り”jplock/zookeeper“の”latest“と”3.4.6“である。

$ docker run -d --name zookeeper-3.4.5 -p 2181:2181 jplock/zookeeper
$ docker run -d --name zookeeper-3.4.6 -p 2182:2181 jplock/zookeeper:3.4.6

Dockerホストの”2181“ポートを”3.4.5“に、”2182“ポートを”3.4.6“で稼働しているZooKeeperのコンテナにforwardしている。

■ version確認

ZooKeeperが稼働している対象のサーバにログイン可能であれば、プロセス等からでも十分確認できるはずだ。しかし、対象のサーバのログインできない・クライアントでのアクセスができないという場合には、ZooKeeperの4文字コマンドを利用すると得ることができる。

ZooKeeper Commands: The Four Letter Words
http://zookeeper.apache.org/doc/r3.4.6/zookeeperAdmin.html#sc_zkCommands

いくつかのコマンドでversionの表示を含む出力を得ることができるのだが、今回は`envi`の出力結果を確認する。ZooKeeperサーバの環境変数等が取得できるので妥当であろう。

コマンドは下記の通り。4文字を`nc`でZooKeeperサーバのClientPortに送る。

$ echo [command] | nc [IP] [ort]

ZooKeeper-3.4.5への実行例は下記の通り。

$ echo envi | nc 192.168.99.100 2181
Environment:
zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
host.name=6a41317bfd37
java.version=1.7.0_03
  :
$

ZooKeeper-3.4.6への実行例は下記の通り。

$ echo envi | nc 192.168.99.100 2182
Environment:
zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
host.name=41fdd2fe206b
java.version=1.7.0_65
  :
$

それぞれ”zookeeper.version“で得られていることがわかるであろう。

以上。

■ 関連