パッシブチェック
目次
- 1 導入 Introduction
- 2 パッシブチェックの使用 Uses For Passive Checks
- 3 パッシブチェックの動作 How Passive Checks Work
- 4 パッシブチェックの有効化 Enabling Passive Checks
- 5 パッシブサービスチェックの登録 Submitting Passive Service Check Results
- 6 パッシブホストチェックの登録 Submitting Passive Host Check Results
- 7 パッシブチェックとホストのステート Passive Checks and Host States
- 8 リモートホストからのパッシブチェックの登録 Submitting Passive Check Results From Remote Hosts
導入 Introduction
ほとんどのケースではNagiosでホストやサービスの監視を行うには定期的にスケジューリングされるアクティブチェック を使うと思います。アクティブチェックは毎回、機器やサービスの状態や情報を”ポーリング”します。Nagiosは積極的に監視に行く方法ではない受動的(パッシブ)にサービスを監視する手段もサポートしています。パッシブチェックの主な機能は以下のとおりです:
- パッシブチェックは外部のアプリケーションやプロセスに開始され、処理されます。
- パッシブチェックの結果はNagiosが処理するために登録されます
アクティブチェックとパッシブチェックの主な違いはアクティブチェックはNagiosによって開始され処理されます、一方でパッシブチェックは外部のアプリケーションによってされます。
パッシブチェックの使用 Uses For Passive Checks
パッシブチェックは以下のようなサービスの監視に有用です:
- 非同期で定期的にステータスをポーリングしても有効な結果が得られない場合
- ファイアウォールの向こう側に位置して、監視ホストからアクセスできずアクティブチェックが行えない場合
非同期なサービスの例としてはSNTPトラップやセキュリティアラートがあります。これらは一定の時間にどの程度トラップやアラートが発生するか知る由がないので一定の間隔でモニタすることは不可能です。
パッシブチェックの動作 How Passive Checks Work
ここでパッシブチェックがどのように働くかの詳細を掲載します...
- 外部のアプリケーションがホストやサービスのチェックを行います。
- 外部のアプリケーションがチェックの結果を|外部コマンドファイル に書き込みます。
- 次にNagiosが外部コマンドファイルを読み込んだ際に後の処理のために外部コマンドファイルのパッシブチェックの結果をキューに入れます。
- Nagiosは定期的にチェックリザルト リーパー イベント を実行し、キューのチェック結果をスキャンします。キューに見つかったそれぞれのサービスチェックの結果をそれがアクティブチェック、パッシブチェックによるチェック結果と関係なく同じように処理します。つまり、通知を送り、アラートをログに出す、などチェック結果に応じた処理をします。
アクティブとパッシブチェックの結果の処理は本質的にはまったく同じです。これはNagiosと外部のアプリケーションからのステータスの情報をシームレスに統合できます。
パッシブチェックの有効化 Enabling Passive Checks
- accept_passive_service_checks ディレクティブを1にします。
- ホストやサービスの定義のpassive_checks_enabledディレクティブを1にします。
グローバル設定で、パッシブチェックを無効にしたい場合は、accept_passive_service_checks ディレクティブを0にします。
いくつかのホストやサービスでパッシブチェックを無効にしたい場合は、そのホストやサービスの定義でpassive_checks_enabledを0にします。
パッシブサービスチェックの登録 Submitting Passive Service Check Results
外部のアプリケーションはNagiosの外部コマンドファイルにPROCESS_SERVICE_CHECK_RESULTの外部コマンド を書き込むことでパッシブチェックの結果を登録できます。
コマンドのフォーマットは次のとおりです:
[<timestamp>] PROCESS_SERVICE_CHECK_RESULT;<host_name>;<svc_description>;<return_code>;<plugin_output>
詳細
- timestamp はサービスチェックを実施した(あるいは登録した)時間でtime_tフォーマット(UNIXエポックからの秒数)です。右の括弧の後のシングルスペースに注意してください。
- host_name はサービス定義のサービスに関連付けられたホストのショートネームです。
- svc_description は特定のサービス定義のサービス名です。
- return_code はそのチェックの返り値です(0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN)。
- plugin_output はサービスチェックのテキスト出力です(例:プラグインの出力)
パッシブホストチェックの登録 Submitting Passive Host Check Results
外部のアプリケーションはNagiosの外部コマンドファイルにPROCESS_HOST_CHECK_RESULTコマンドを書き込むことでホストのチェック結果を登録できます。
コマンドのフォーマットは以下のとおりです:
[<timestamp>] PROCESS_HOST_CHECK_RESULT;<host_name>;<host_status>;<plugin_output>
詳細
- timestamp はチェックを実施した(あるいは登録した)時間でtime_tフォーマット(UNIXエポックからの秒数)です。右の括弧の後のシングルスペースに注意してください。
- host_name はサービス定義のサービスに関連付けられたホストのショートネームです。
- host_status はそのホストのステータスです(0=UP, 1=DOWN, 2=UNREACHABLE)。
- plugin_output はそのホストチェックのテキスト出力です。
パッシブチェックとホストのステート Passive Checks and Host States
アクティブホストチェックと差異があるのはNagiosは(デフォルトでは)パッシブチェックではホストがDOWNあるいはUNREACHABLEであると判定しようとしません。つまり、Nagiosは 到達性ロジック に基づいた実際のホストの状態の判定をするのではなく、パッシブチェックの結果を実際のホストの結果として捕らえます。これは、リモートホストあるいは 親子関係が異なる分散監視 からパッシブチェックを登録した場合に問題になり得ます。
Nagiosがパッシブチェックからの状態を”適切に”DOWN/UNREACHABKLEに処理するよう変換するには translate_passive_host_checks 変数を使用します。より詳しい情報はここ にあります。
リモートホストからのパッシブチェックの登録 Submitting Passive Check Results From Remote Hosts
パッシブチェックの結果を登録するアプリケーションがNagiosと同じホストにある場合は、単にチェック結果を上に示したフォーマットで直接外部コマンドファイルに書き込めばよいです。しかしながら、Nagiosホスト以外のリモートホストのアプリケーションで同じことをやるにはそれほど簡単には行えません。
リモートホストから監視ホストに対してパッシブチェックの結果を送るために NSCA アドオンを開発しました。 NSCAアドオンはNagiosホスト上で稼動するデーモンと、リモートホストから実行されるクライアントで構成されます。デーモンはリモートクライアントからの接続をリスンし、登録された結果にたいしていくつか基本的な検証を行い、(上で述べた)外部コマンドファイルに直接書き込みます。NSCAアドオンのより詳しい情報は ここ にあります。