29. 分散監視マニュアル

29.1. 分散監視とは

分散監視とはX-MONを二台以上使用し、直接監視するX-MONから一台の中央監視をするX-MONへデータを送り管理画面ですべての監視を確認出来る機能です。

overview

中央のX-MONにて他のX-MONの監視結果を確認できますので通常監視で確認するのは中央のみとなり、 運用の負荷を下げるとともに、アラートの発生も集約されるためすぐに対応する事が出来ます。

また、それぞれの分散X-MONサーバでも管理画面や通常のX-MONの機能は使用できます。

本書では直接監視を行い、データを送信する元のX-MONを「子X-MONサーバ」、各X-MONからデータを受けるX-MONを「親X-MONサーバ」と記載します。

29.1.1. 分散監視を行うシナリオ

分散監視を行うシナリオとしては、前章で記載したようなサーバを設置しているデータセンターが遠隔地に複数ある場合が考えられます。

それぞれのサイトにてX-MONを設置し、中央の1台(例えばオフィスなど)に集約する形です。

また、遠隔地でなくても、監視サービスが多い場合に負荷分散をする目的にも利用できます。

監視の遅延が発生し、アラートの対応が遅くなるようなケースを避けるために分散して監視を行い、SLAなどの基準に達するように運用を管理出来るようにします。

29.1.2. 親子間X-MONの通信について

子X-MONから親X-MONへ監視結果を送信するために、HTTP通信を利用します。

このため、遠隔地にそれぞれのX-MONを設置する場合は、何らかの手段で通信経路を確保する必要があります。

また、親X-MONから子X-MONへの通信は発生しません。

29.1.3. 監視設定について

親子でのホスト、サービスの設定方法が異なります。

詳細は2 分散監視の監視設定方法にて解説しますが、監視するホストとサービスは親と子で両方登録する必要があります。

どちらか1つしか登録されていない場合はデータが受信、送信が出来ずに監視を見逃す可能性がありますのでご注意ください。

29.2. 分散監視の監視設定方法

分散監視を行うには親X-MONサーバと子X-MONサーバで設定が必要となります。

設定はX-MONの設定と、ホストやサービスでそれぞれ必要となります。

また、以下のサンプルネットワークを使用して解説していきます。

servers_config

29.2.1. X-MONの設定方法

X-MONでは分散監視の設定を行います。

分散監視は子X-MONサーバでは送信の設定を行い、親X-MONサーバでは受信の設定を行います。

通信には送信先サーバのアドレスと送信用認証トークンを使用します。

分散監視の設定の流れは、親X-MONサーバで設定を行った後に子X-MONサーバで設定を行います。

分散監視の設定画面は、親X-MONサーバと子X-MONサーバ同じ画面で設定を行います。

[管理者メニュー] – [その他の設定] から[外部連携]をクリックします。

admin_alignment

外部連携一覧が表示されたら、[分散監視設定]をクリックします。

admin_distrib

分散監視設定が表示されます。

29.2.1.1. 親X-MONサーバ

親X-MONサーバでは、監視結果の受信許可の設定および、監視結果の送信に必要な認証トークンの発行を行います。

まず、親X-MONで監視結果の受信を許可するために、[分散監視の受信設定]のトグルボタンをクリックします。

初期状態では監視結果の受信は[無効]に設定されています。

distrib_receive_on

トグルボタンをクリックすると、[分散監視 受信有効化設定]が表示されます。

表示された[分散監視 受信有効化設定]の[受信する]をクリックすることで監視結果の受信を許可し、 子X-MONサーバで送信に必要な認証トークンを発行します。

distrib_popup_on

認証トークンはこの[分散監視 受信有効化設定]でしか確認できません。

認証トークン発行後は[認証トークンの確認]をクリックして、認証トークンの確認とテキストファイルなどに保存を行うか、 [CSVエクスポート]をクリックして、CSVファイルとしてダウンロードを行い手元に保存してください。

distrib_token

認証トークンの保存が行えましたら、[閉じる]をクリックして親X-MONサーバの分散監視設定は終了です。

29.2.1.2. 子X-MONサーバ

子X-MONサーバでは監視結果の送信先設定および、親X-MONサーバで発行した認証トークンの登録を行います。

[送信設定]の[親X-MON URL]欄には[http://]もしくは[https://]から始まるURLを入力します。

末尾に[/]が無いURLを登録すると、登録時に自動的に[/]が末尾に入力されます。

[認証トークン]欄には親X-MONで発行しておいた認証トークンを入力します。

distrib_send

入力し終わりましたら、[登録]をクリックして子X-MONサーバの分散監視設定は終了です。

29.2.2. ホストの設定方法

ホストの設定では詳細な設定にて、子X-MONサーバ側と親X-MONサーバ側で設定が異なります。

基本設定は親、子共通の設定となります。

distrib_host_config

29.2.2.1. 親X-MONサーバ

親X-MONサーバではホストの登録は行いますが、監視結果は子X-MONから受け取りますので監視は行いません。

監視結果を管理する役割になりますので、通知メールの送信や警告灯点灯、パフォーマンスデータの処理を行います。

以下のように設定を行います。

項目名

設定内容

HostID

子X-MONと同じホストIDを設定する必要があります。

アクティブチェック

無効にする

パッシブチェック

有効にする

試行回数

1

監視間隔

0

フレッシュネスチェック

有効

フレッシュネス閾値(秒)

子X-MONで設定している監視間隔よりも大きい値を設定する必要があります。

フレッシュネスチェックとは、今受け取ったデータはいつまで有効なのかどうかを設定します。

フレッシュネスしきい値で入力した秒数を超えると「古いデータ」として扱われるためアラートを出します。

そのため、子X-MONの監視間隔より短い秒数を指定すると、しきい値を超えた段階でアラートが出てしまいますのでご注意ください。

ホストの場合はオンデマンドホストチェックで動作します。サービスがアラートを検知した段階でホストチェックが動作するため、監視間隔が「0分」です。

そのため、フレッシュネスチェックは再試行間隔の1分に30秒を加えた値にしています。

ホストIDは子X-MONと同じにします。

distrib_receive_host_basic

監視は行わないので、アクティブチェックは無効にします。子X-MONサーバから監視結果を受け取るのでパッシブチェックは有効にします。

ホストを分散監視する際は試行回数と監視間隔を設定します。

distrib_receive_host_detail

フレッシュネスチェックを有効にしてしきい値を入力します。

distrib_receive_host_advanced

入力が出来たら[作成]をクリックし、再起動を実行して設定反映を完了してください。

29.2.2.2. 子X-MONサーバ

監視を実行し、親X-MONサーバにデータを送るために「分散監視送信機能」を有効にします。

また、監視の通知は親X-MONにて行いますので通知先グループでは何も選択はしないようにします。

ホストIDは親X-MONと同じにします。

distrib_send_host_basic

アクティブチェック、パッシブチェック両方有効にします。

distrib_send_host_detail

親X-MONへ監視結果を送るので有効にします。

distrib_send_host_advanced

入力が出来たら[作成]をクリックし、再起動を実行して設定反映を完了してください。

29.2.2.3. 確認

まだサービスを登録していない状態ですが、下記のようにホストが作成されます。

親X-MON サーバ

distrib_receive_host_result

子X-MONサーバ

distrib_send_host_result

29.2.3. サービスの設定方法

親、子X-MONでそれぞれサービス監視を追加します。 今回はPINGサービスを例に追加してみます。

29.2.3.1. 親X-MONサーバ

親X-MONサーバでサービスの登録は行いますが、監視結果は子X-MONから受け取るますので、監視は行いません。

監視結果を管理する役割になりますので、通知メールの送信や警告灯のエスカレーション、パフォーマンスデータの処理を行います。

以下のように設定を行います。

項目名

設定内容

サービスID

子X-MONと同じサービスIDを設定する必要があります。

サービス監視用コマンド

ダミープラグインを選択します。子X-MONからの監視結果が受信できなかった場合に通知するステータスを設定します。例えば、ステータス「UNKNOWN」を選択してメッセージに「子X-MONからの監視結果が受信できませんでした。」と設定すると、監視結果が受信できなかった場合にUNKNOWNステータスで通知します

アクティブチェック

無効にする

パッシブチェック

有効にする

試行回数

1

監視間隔

0

フレッシュネスチェック

有効

フレッシュネス閾値(秒)

子X-MONで設定している監視間隔よりも大きい値を設定する必要があります。

フレッシュネスチェックとは、今受けったデータはいつまで有効なのかどうかを設定します。

フレッシュネスしきい値で入力した秒数を超えると「古いデータ」として扱われるためアラートを出します。

そのため、子X-MONの監視間隔より短い秒数を指定すると、しきい値を超えた段階でアラートが出てしまいますのでご注意ください。

今回は子X-MONのPINGサービスは5分間隔に設定するので、330秒と設定します。

330秒の間、子X-MONから監視結果を受け取らなかったら、サービス監視用コマンドで設定したメッセージが表示されます。

サービスIDは子X-MONと同じものを指定します。

ダミープラグインを選択してステータスとメッセージを記入します。

フレッシュネス閾値を超えた場合、このステータスとメッセージが表示されます。

distrib_receive_service_basic

アクティブチェックを無効にします。

分散監視をする際は試行回数と監視間隔を設定します。

distrib_receive_service_detail

フレッシュネスチェックを有効にしてしきい値を入力します。

distrib_receive_service_advanced

入力が出来たら[作成]をクリックし、再起動を実行して設定反映を完了してください。

29.2.3.2. 子X-MONサーバ

親X-MONに監視を送信するサービスを登録します。

サービスIDは親X-MONと同じものを指定します。

サービスプラグインは送信したいプラグインを選択します。

distrib_send_service_basic

アクティブチェックを有効にします。

監視間隔は親側のフレッシュネスチェックのしきい値の元になります。

distrib_send_service_detail

分散監視送信機能を有効にします。

distrib_send_service_advanced

入力が出来たら[作成]をクリックし、再起動を実行して設定反映を完了してください。

29.2.3.3. 確認

登録が出来たら、監視結果の送受信を確認しましょう。

子X-MONでは通常の監視となります。

distrib_send_service_result

親X-MONでは監視データを受け取るまでは、以下のように表示されます。

ホストは「このホストはチェックするようにはスケジュールされていません」、サービス「このサービスはチェックするようにはスケジュールされていません」と表示されます。

distrib_receive_service_result_before

子X-MONで監視が実行され結果を受けると下記のような表示されます。

distrib_receive_service_result_after

「Distributed monitoring results [check_xmon3_ping!300!30!500!50!5!10] PING OK - Packet loss = 0%, RTA = 0.98 ms」とステータス欄に表示されていますが、 これが「分散監視で送られてきたデータ=子X-MONの監視結果を受け取った」となります。

うまくデータを受け取っていない場合は、以下のようになりますので設定の見直しを行ってください。

distrib_receive_service_result_unknown

ホストはサービスとは違い、「Distributed monitoring results~」と表示されませんが、アクティブチェックが無効になっているのでこれが分散監視で結果を受け取った事となります。

29.2.4. その他

29.2.4.1. 子X-MONサーバでサービスプラグインや閾値を変更した場合

子X-MONサーバでサービスプラグインや閾値の変更を行った場合、親X-MONサーバでも設定を反映する必要があります。

子X-MONサーバでサービスプラグインや閾値を変更した場合は再起動処理は行わず、先に親X-MONで再起動処理を実施したのち、子X-MONのサービスを再起動してください。

29.2.4.2. 親X-MONサーバでサービスのグラフ描画や閾値がおかしくなったら

子X-MONサーバでサービスの変更を行った後に、親X-MONサーバを先に再起動せずに子X-MONを再起動した場合、グラフ描画などの表示に崩れが見られる場合があります。

その場合、[分散監視設定]の画面の[親X-MONにサービス設定を送信する]の[送信]をクリックしてください。

その後に親X-MONサーバで再起動を実施してください。

再起動後グラフ描画などが正しく表示されているか確認してください。

distrib_service_config_send