Apache ZooKeeper監視
- Apache ZooKeeper――概要
- Apache ZooKeeperの監視――当社が提供すること
- 新規Apache ZooKeeper監視を追加する|AddMonitor APIを利用する
- 監視対象のパラメーター
Apache ZooKeeper――概要
Apache ZooKeeperは、分散プロセスとアプリケーションを確実に調和させるオープン ソース サーバーです。 分散プロセス間の協調を共有の階層型名前空間で実現、この名前空間を、通常のファイル システムと同じように体系づけることが可能となっています。ZooKeeperサーバーでは、設定情報、命名、分散環境での同期機能、グループ サービスを提供しており、分散型アプリケーションに適したつくりとなっています。
Apache ZooKeeperの監視――当社が提供すること
Apache ZooKeeper znodeをシステム ファイルとして階層型のファイル システムを提供します。異なるマシンで動作しているサービスの検出、登録、設定、ロック、リーダー選挙、キューイングなどに便利です。Applications ManagerはZooKeeperサーバーの管理やメトリックの収集に便利で、トラブルシュートの役に立つほか、問題の可能性があれば、自動的にアラートします。ここでは、ZooKeeper監視に必要なことと、収集できるパフォーマンス メトリックを案内します。
- リソース利用率詳細:ZooKeeperクラスターを自動検ディスカバリし、znodeのメモリを監視(ヒープと非ヒープ)、リソース消費に変動があればアラートします。
- スレッドとJVMの利用率:デーモンやピーク スレッド数とライブ スレッド数などのメトリックで、読み込み利用率を追跡します。起動したスレッドがサーバー メモリに過剰負荷となっていないか、把握可能です。
- パフォーマンス統計:サーバーがクライアントからのリクエストやキューイング済みリクエストに応答するのにかかる時間や、サーバーでの接続数を測るとともに、クライアント パケットの送受信によるパフォーマンス低下も対象としています。
- クラスターと設定詳細:znode数、ノードへのウォッチャー構成、アンサンブルにあるフォロワーの数などを追跡します。リーダー選挙統計とクライアント セッション時間も監視しています。
- パフォーマンス低下を迅速に解決:Apache ZooKeeperのコンポーネントでパフォーマンスの問題が発生すると、ただちに通知します。パフォーマンスのボトルネックを把握し、エンド ユーザー体感に影響する予兆のうちに、手早く是正アクションを起こせます。
Apache ZooKeeper――新規監視を追加するには
サポート対象のバージョン:3.4.9
Apache ZooKeeper監視の要件
- リモートJMXを有効にしてください。
- 上記を確実に実行するため、binフォルダーからZKServerファイルを開き、下記の点を確認ください。
新規監視の作成手順
- Apache ZooKeeper監視を作成するには、次の手順に従ってください。
- 新規監視のリンクをクリックします。Apache ZooKeeperを選択ください。
- 監視の表示名を入力します。
- ZooKeeperサーバーを実行しているホストのIPアドレスか名前を入力してください。
- ZooKeeperサーバーのJMXポートを入力してください。デフォルトでは7199番です。または、zkServer.shファイルでJMX_PORTを確認ください。
- 該当ノードのみをディスカバリし、クラスター内の全ノード検出は行わない場合、クラスター内のすべてのノードをディスカバリのオプションは無効にしてください。デフォルトでは有効となっており、クラスターの全ノードが検出されます。
- ユーザー名、パスワード、JNDIパスなど認証情報を入力するか、認証情報マネージャーのリストから選択してください。
- 認証を必要とするのフィールドをチェックし、ZooKeeperサーバーへの接続につかうJMX認証情報を入力します。
- ポーリング間隔を入力してください(分)。
- Apache ZooKeeperサーバーにアクセス可能か確認するには、認証情報のテスト ボタンをクリックしてください。
- Apache ZooKeeper監視を関連付ける監視グループを、コンボボックスで選択します(任意項目)。監視は複数グループに関連付け可能です。
- 監視の追加をクリックすると、ネットワークからApache ZooKeeperを検出し、監視が始まります。
AddMonitor APIでApache ZooKeeper監視を追加する
構文:
http://[Host]:[Port]/AppManager/xml/AddMonitor?apikey=[API_KEY]&type=Zookeeper&displayname=Zookeeper&host=[HOST_NAME]&port=[PORT_NUMBER]&discoverclusternodes=[Yes/No:NOT_MANDATORY_FOR_Yes]&authReq=[true/false::NOT_MANDATORY_FOR_true]&username=[USER_NAME]&password=[PASS_WORD]
リクエスト パラメーター:
APIリクエストにかかわるパラメーターを下に記します。
フィールド |
説明 |
---|---|
type |
追加するサービスのタイプです。値はZooKeeperにしてください。 |
host |
ZooKeeperを実行しているホストの名前です。 |
port |
ZooKeeperを実行しているポートの番号です。 |
username |
ZooKeeperへのアクセス権限があるユーザーの名前です。 |
password |
ZooKeeperへのアクセス権限があるユーザーのパスワードを指します。 |
discoverclusternodes |
クラスター ノードのディスカバリが必要かを指します。値はYESかNOです(任意項目)。 |
authReq |
認証が必要かを示します。値はtrueかfalseです。 |
リクエスト サンプル
http://prod-server3:9090/AppManager/xml/AddMonitor?apikey=849c51ce33436587873a08d69d5447fc&type=Zookeeper&displayname=Zookeeper&host=172.20.7.36&port=7199&username=&password=123
監視対象のパラメーター
監視タブをクリックすると監視カテゴリ ビューへ移動します。サービス テーブルで、Apache ZooKeeperをクリックしてください。ZooKeeper一括設定ビューが、3つのタブに分類・表示されます。
- 可用性タブでは、過去24時間か30日の可用性履歴がわかります。
- パフォーマンスタブでは、過去24時間か30日のステータスとイベントがわかります。
- リスト ビューでは、一括管理設定が可能です。
監視名をクリックすると、全サーバーの詳細が次のタブで表示されます。
パラメーター | 説明 |
---|---|
リーダー選挙ステータス
|
|
レプリカ名 | シャード レプリカ名 |
ステータス | 動作モードを示します。リーダー、フォロワー、リーダー選挙があるほか、アンサンブルでの実行中でない場合はスタンドアロンになります。 |
選挙が進行中 | 選挙が進行中かを示します(Yes、No)。 |
選挙の起動時刻 | リーダー選挙の起動時刻です。 |
メモリ詳細 | |
総物理メモリ サイズ | ZooKeeperが実行・データ記憶に利用できる物理メモリの総量を指します。 |
空き物理メモリ サイズ | ZooKeeperクラスターとノードで利用できる空き物理メモリの総量を指します。 |
コミット済み仮想メモリ サイズ | ZooKeeperノードが占有している仮想メモリの総量を指します。 |
総スワップ スペース サイズ | 仮想メモリが上限に達したときに利用できる、総スワップ スペース量を指します。 |
空きスワップ スペース サイズ | 仮想メモリが上限に達したときに、スワップに利用できる空きスワップ スペース サイズを示します。 |
スレッド詳細 | |
デーモン スレッド数 | 実行中のデーモン スレッドの数です。デーモン スレッドは、自身が実行中で合っても、プログラム終了時にJVM停止を妨げることはしません。 |
ピーク スレッド数 | JVM起動以来の最多スレッド数を表します。 |
ライブ スレッド数 | ノードにある現在のライブ スレッドの数を表します。デーモン スレッドか、非デーモン スレッドかを問いません。 |
総起動スレッド数 | 起動済みのスレッドの総数を示します。 |
ヒープ メモリ詳細 | |
コミット済みヒープ メモリ | コミット済みヒープ メモリの総量です。 |
初期ヒープ メモリ | 割り当てのあった最小ヒープ メモリです。 |
最大ヒープ メモリ | ZooKeeperが利用できる最大ヒープ メモリを指します。 |
利用済みヒープ メモリ | 利用中の総ヒープ メモリを指します。 |
非ヒープ メモリ詳細 | |
コミット済み非ヒープ メモリ | コミット済み非ヒープ メモリの総量です。 |
初期非ヒープ メモリ | 割り当てのあった最小非ヒープ メモリを表します。 |
最大非ヒープ メモリ | ZooKeeperが利用できる最大非ヒープ メモリを指します。 |
利用済み非ヒープ メモリ | 利用中の非ヒープ メモリ総量を指します。 |
パラメーター | 説明 |
---|---|
パケット統計 | |
受信パケット数/分 | パケット受信速度を表します(数/分)。 |
送信パケット数/分 | パケット送信速度を表します(数/分)。 |
遅延 | |
最小リクエスト遅延 | サーバーが再起動して以来の、クライアント リクエストへの最短応答時間を示します(ミリ秒)。 |
平均リクエスト遅延 | サーバーが再起動して以来の、クライアント リクエストへの平均応答時間を示します(ミリ秒)。 |
最大リクエスト遅延 | サーバーが再起動して以来の、クライアント リクエストへの最長応答時間を示します(ミリ秒)。 |
アライブ接続数 | |
アライブ接続数 | アライブ接続の数を表します。 |
未処理のリクエスト数 | |
未処理のリクエスト数 | サーバーにキューイングされているリクエストの数を示します。サーバーの処理能力を超えたリクエストを受信すると、この値が上昇します。 |
パラメーター | 説明 |
---|---|
ノード数 | |
ノード数 | ZooKeeperにあるノードの数を指します。 |
ウォッチ数 | |
ウォッチ数 | ZooKeeperノードに設定されたウォッチャーの数です。 |
一時ノード数(Ephemeral) | |
一時ノード数(Ephemeral) | 一時ノードの数を表します(Ephemeral)。 |
およそのデータサイズ | |
およそのデータサイズ | 利用中のデータサイズを指します(バイト) |
パラメーター | 説明 |
---|---|
ノード数 | |
ノード数 | ZooKeeperクラスターにあるznodeの数です。 |
ウォッチ数 | |
ウォッチ数 | ZooKeeperノードに設定されたウォッチャーの数です。 |
一時ノード数(Ephemeral) | |
一時ノード数(Ephemeral) | 一時ノードの数を表します(ephemeral node)。ZooKeeperの一時ノードは遷移性のデータに向いています。ノードは、自分が作成したセッションがアクティブな限り、存続します。 |
およそのデータサイズ | |
およそのデータサイズ | 利用中のデータサイズを表します(バイト)。 |
パラメーター | 説明 |
---|---|
ZooKeeper設定詳細 | |
レプリカ名 | |
ステータス | |
クライアント ポート | クライアント接続のリスニングを行うポートです。 |
初期化制限(initTick) | フォロワーがリーダーへの接続と同期までに許可される制限時間を、ティック単位で表現したものです(詳細はティック時間を参照ください)。 |
最大クライアント接続Perホスト | IPアドレスで特定できる単一クライアントが行った、ソケットレベルでの最多同時接続の数を表します。 |
最長セッション タイムアウト | サーバーがネゴシエーション時にクライアントに許容する、最長セッション タイムアウトを示します(ミリ秒)。デフォルトでティック時間の20倍です(tickTime)。 |
最短セッション タイムアウト | サーバーがネゴシエーション時にクライアントに許容する、最短セッション タイムアウトを示します(ミリ秒)。デフォルトでティック時間の2倍です(tickTime)。 |
クォーラム アドレス | 同一アプリケーションにあるサーバーのレプリケーション グループをクォーラムと呼び、レプリケーション モードでは、すべてのサーバーがクォーラム アドレスで互いに通信しています。 |
ZooKeeper起動時刻 | ZooKeeperの起動時刻です。 |
同期上限(syncLimit) | フォロワーがZooKeeperとの同期に許容される制限時間を、ティック単位で表現したものです(ティック時間を参照)フォロワーがリーダーから大きく遅れると、同期を止められます。 |
ティック | ZooKeeperが使う基礎時間単位で、ミリ秒で測ります。 |
ティック時間(tickTime) | ZooKeeperが使う基礎時間単位で、ミリ秒で測ります。ハートビート屋タイムアウトの制御に使います。たとえば、最短セッション タイムアウトはティック2回です。 |
バージョン | インストールしたZooKeeperのバージョンを指します。 |
設定詳細 | |
VM名 | Java仮想マシン名 |
ブート クラス パス | ブート ストラップ クラス ローダーが、クラス ファイルの検索に使うパスを示します。 |
VMベンダー | Java仮想マシンのインプリメンテーション ベンダーを表します。 |
クラス パス | システム クラス ローダーがクラス ファイルの検索に使うJavaクラス パスを示します。 |
Specベンダー | 製品が実装しているJMX Specificationのベンダーを表します。 |
Specバージョン | ZooKeeperでインプリしているJMX Specificationのバージョンを指します。 |