サーバー管理コマンド
ZooKeeperサーバー制御スクリプトは主要な運用操作を提供します。実行パスを指定せずに起動すると利用可能なオプションが表示されます:
ZooKeeper JMX機能はデフォルトで有効です
設定ファイル: /opt/zk/conf/zoo.cfg
使用法: ./zkServer.sh [--config <設定ディレクトリ>] {起動|フォアグラウンド起動|停止|再起動|状態確認|コマンド表示}
実際の運用シナリオでの主要コマンド:
# サーバー起動処理
zkServer.sh 起動
# 現在のサービス状態確認
zkServer.sh 状態確認
# 安全な停止手順
zkServer.sh 停止
# メンテナンス時の再起動
zkServer.sh 再起動
クライアント操作コマンド
ZooKeeperサーバーへ接続する際は接続先を明示的に指定します:
zkCli.sh -server zk-node01:2181
接続後の主要操作コマンド:
# ディレクトリ構造の確認
ls /config_root
# ノードデータとメタ情報の表示
ls -s /services
# 永続ノードの作成(データをJSON形式で設定)
create /app_config '{"version":"2.1"}'
# ノードデータの取得と変更
get /app_config
set /app_config '{"version":"2.2"}'
# ノード削除操作
# 子ノードが存在する場合は削除失敗
delete /temp_node
# 階層全体の削除(再帰処理)
rmr /legacy_services
4文字コマンドによる診断
ネットワーク経由で内部状態を診断するための特殊コマンド群。実行にはnetcatツールが必要です:
# リーダー選出状態の確認
echo mntr | nc localhost 2181
# サービス生存確認(応答: imok)
echo ruok | nc 192.168.10.5 2181
# クライアント接続詳細の出力
echo cons | nc zk-cluster:2181
# 構成パラメータの完全表示
echo conf | nc 10.0.0.12 2181
# ウォッチ登録状況の分析
# パスベースの詳細表示
echo wchp | nc localhost 2181
主な診断コマンド:mntr(メトリクス), stat(基本状態), dump(セッション一覧), wchs(ウォッチ集計)
ログデータの解析手法
トランザクションログとスナップショットの解析には専用フォーマッタを使用します。実行例:
# トランザクションログの可視化
java -cp /opt/zk/lib/* \
org.apache.zookeeper.server.LogFormatter \
/var/lib/zk/log/version-2/log.1a3f
# スナップショットデータのデコード
java -cp /opt/zk/lib/* \
org.apache.zookeeper.server.SnapshotFormatter \
/var/lib/zk/data/version-2/snapshot.000001b2
ログ解析時の注意点:JARパスは環境に応じて調整が必要。実稼働環境ではログローテーション設定を確認してください。