Zookeeper 可視化 UI ツール
仕事の効率を高めるために、よく使われる Zookeeper UI ツールをいくつか紹介します。
なぜ UI ツールが必要なのか
Zookeeper 付属のコマンドラインクライアント zkCli.sh でも基本操作は事足りますが、使い勝手はよくありません。ノードツリーを見るには一階層ずつ ls し、ノードデータを見るには別途 get する必要があり、ノードが増えると全体構造を直感的に把握するのが難しくなります。レジストリセンター、分散ロック、設定ノードといった問題を日常的に調査する際、Znode のツリー構造、ノードデータ、stat メタ情報を直接表示してくれるグラフィカルツールがあれば、コマンドを叩く時間をかなり節約できます。
Zookeeper のデータモデル自体は非常にシンプルです。Znode で構成される 1 本の木で、各ノードは少量のデータを保存でき、バージョン番号、ACL、作成/更新時刻などの stat 情報が付属します。そのためこの種の UI ツールのコア機能もだいたい似たり寄ったりで、主にノードの CRUD、データ編集、接続管理です。違いはむしろインターフェースの使用感やメンテナンスの活発さに表れます。以下は私が触れてきた数種類です。
Zookeeper Assistant(有料)
ZooKeeper Assistant - ZooKeeper可視化管理・監視ツール


Redisant 社のデスクトップクライアントで、インターフェースのスタイルは同社の他製品と一貫しています。左側にノードツリー、右側にデータパネルという構成で、ノードデータとメタ情報が一目瞭然です。
有料である点については、個人的には必要ないと感じています。ZK の機能は複雑ではなく、主に Znode ノード情報の CRUD だからです。とはいえ UI インターフェースを丁寧に作り込んでいるのは見て取れるので、その点は称賛に値します。会社が経費で落としてくれて、すぐ使える体験を求めるなら検討の余地はありますが、個人使用なら以下の無料の選択肢で十分です。
PrettyZoo(オープンソース・無料)
これは私自身も使っています。無料で、UI も見栄えがします。

GitHub アドレス:vran-dev/PrettyZoo: 😉 Pretty nice Zookeeper GUI, Support Win / Mac / Linux Platform (github.com)
JavaFX ベースで開発されたデスクトップアプリで、Windows、Mac、Linux の 3 プラットフォームすべてにインストーラがあります。基本的なノードツリーの閲覧とデータ編集に加えて、ノードの stat 情報も確認でき、コマンドライン端末も内蔵しているので、グラフィカルインターフェースでカバーできない操作は直接コマンドを叩いて補えます。私にとっては、「無料 + クロスプラットフォーム + 見た目が悪くない + メンテナンスが続いている」という点を合わせれば、デフォルトの選択にするのに十分です。
zktools
長らくメンテナンスされておらず、GitHub 上ではすでに 4 年前の産物になっていますが、それでも作者の尽力には感謝します。
GitHub - zhangyawei117/zktools: zk可視化ツール zktools
選択肢が少なかった時代には多くの人を助けてくれましたが、今はより活発な代替品があるので、新規ユーザーには基本的におすすめしません。ここに載せているのは主に敬意を表するためです。
zkui
Web アプリケーションとして開発された ZKUI ツールです。最後の更新も 2 年前で、個人的にはほとんど使っていません。
GitHub アドレス:https://github.com/DeemOpen/zkui
前述のデスクトップクライアントと異なり、zkui はサーバーサイドにデプロイする Web アプリで、チームメンバーがブラウザからアクセスします。「1 か所にデプロイして、複数人で共用する」シナリオに向いています。その代償として、サービスを自分で保守する必要があり、ログインや権限の問題も考えなければなりません。個人が日常的にノードを見るだけなら、デスクトップクライアントのほうが手軽です。
ハマりどころと注意点
1)本番環境の ZK に接続するときは特に慎重に。この種のツールではノードの削除やデータの変更がワンクリックで済んでしまい、二重確認という心理的ブレーキがありません。レジストリセンターのノードを誤って削除すれば、影響を受けるのは一群のサービスかもしれません。本番環境では「見る」だけに使い、書き込み操作はスクリプトや変更フローを通すことをおすすめします。
2)ACL に注意。クラスタに ACL 認証が設定されている場合、ツールで接続しても一部のノードしか見えなかったり、データが読めなかったりすることがあります。これはツールのバグではないので、まず接続時に正しい認証情報を渡しているかを確認しましょう。
3)長期間メンテナンスされていないツール(上記の zktools、zkui など)は、新しいバージョンの Zookeeper や新しい JDK で互換性の問題が起きる可能性があります。奇妙なエラーに遭遇したら、まずバージョンを疑い、クラスタを疑うのは後にしましょう。
まとめ
これらのツールの中で、私の選択は明確です。日常の個人使用ならそのまま PrettyZoo。無料でクロスプラットフォーム、見た目もよく、今もメンテナンスされています。商用ソフトウェアの体験を求めて予算に余裕があるなら Zookeeper Assistant を見てみるとよいでしょう。チームで 1 つの入り口を共有する必要がある場合に、Web 版の zkui を検討すればよいと思います。ツール自体はどれも複雑ではないので、手に馴染むものを 1 つ選んで、浮いた時間を本当の問題に使えばよいのです。
COMMENTS