サービスとホストのフレッシュネスチェック
目次
導入 Introduction
Nagiosは、ホストやサービスの監視結果の"新鮮さ"をチェックできます。その目的は監視情報を確実なものにすることで、外部アプリケーションによって定期的かつ受動的に提供されます。
フレッシュネスチェックはパッシブチェックの結果を希望する間隔で受け取っていることを確実にしたい場合に有効です。これは分散監視やフェイルオーバー監視に非常に役立ちます。
フレッシュネスチェックはどのように働くのか? How Does Freshness Checking Work?
Nagiosは、全てのホストとサービスのフレッシュネスチェックのために定期的に監視結果のチェックを行います。
- 各々のホスト又はサービスに適したフレッシュネス閾値を設定します。
- 最新のチェック後の経過秒数が、各ホスト又はサービス毎にフレッシュネス閾値と比較されます。
- 最新のチェック後の経過秒数がフレッシュネス閾値より大きい場合は、チェック結果が"古い"とみなされます。
- チェック結果が"古い"とみなされた場合は、Nagiosはホスト又はサービスにアクティブチェックを強制します。
Tip ポイント:ホスト又はサービスが、アクティブチェックを実行しないという設定でも、この場合はアクティブチェックが実行されます。
例えば、あるサービスにフレッシュネス閾値として60を設定した場合、最新のチェック後の経過秒数が60より大きい場合はNagiosはそのチェック結果が"古い"と判断します。
フレッシュネスチェックの有効化 Enabling Freshness Checking
フレッシュネスチェックを有効にする為に必要なことは以下の通りです...
- check_service_freshnessとcheck_host_freshnessで、フレッシュネスチェックを有効にしてください。
- service_freshness_check_intervalとhost_freshness_check_intervalオプションで、Nagiosがフレッシュネスチェックをしなければならないことを指定します。
- ホスト又はサービス定義のcheck_freshnessオプションに1を設定して、フレッシュネスチェックを有効にしてください。
- ホスト又はサービス定義のfreshness_thresholdオプションにフレッシュネス閾値を設定してください。
- チェック結果が"古い"とみなされた場合にアクティブチェックを実行するためのコマンドを、ホスト又はサービス定義のcheck_commandオプションに設定してください。
- Nagiosがホスト又はサービスのフレッシュネスチェックをいつ実行するか決定するのにcheck_periodオプションを利用するので、その値が有効なものであることを確認してください
Tip ポイント:ホスト又はサービスのフレッシュネス閾値を設定しない(又は0を指定した)場合、Nagiosは各々のホスト又はサービスの設定に基づいて自動的に閾値を計算します。
設定例 Example
例えば、夜間のバックアップジョブの結果を報告させる場合はフレッシュネスチェックが有効です。バックアップジョブの完了時にその結果をNagiosに提出する外部スクリプトが存在していると、バックアップジョブのチェックと結果はパッシブチェックを行う外部アプリケーションによって提供されますので、バックアップジョブの結果が毎日確実に報告されるようにしたい時はフレッシュネスチェックを有効にするとよいでしょう。Nagiosに、外部スクリプトからバックアップジョブの結果が返ってこない場合は重大な問題が発生していると誤認識させるようにできます。
この場合のサービス定義は以下のようになります(必須のオプションはいくつか省略されています)...
define service{ host_name backup-server service_description ArcServe Backup Job active_checks_enabled 0 ; アクティブチェックは無効です passive_checks_enabled 1 ; パッシブチェックが有効になっています(このサービス実行結果の報告方法です) check_freshness 1 freshness_threshold 93600 ; バックアップは必ずしも24時間以内に完了するとは限らないので、26時間がフレッシュネスチェック閾値として設定されています check_command no-backup-report ; このコマンドはチェック結果が"古い"場合にのみ実行されます ...other options... }
アクティブチェックは無効にするよう通知されます。これは、パッシブチェックを利用する外部アプリケーションしかチェック結果を提供できないからです。フレッシュネスチェックは有効であり、その閾値は26時間に設定されています。これは、バックアップジョブは日々遅れが発生する可能性があるため(バックアップデータ量やトラフィックなどに左右されます)で、24時間より少し長めに設定してあります。no-backup-reportコマンドは、チェック結果が更新されていないと判断された場合のみ実行されます。no-backup-reportコマンドの定義は次のようなものです...
define command{ command_name no-backup-report command_line /usr/local/nagios/libexec/check_dummy 2 "CRITICAL: Results of backup job were not reported!" }
Nagiosが、チェック結果が"古い"ことに気付いた場合は、no-backup-reportコマンドの実行によりアクティブチェックを行います。これによりcheck_dummyプラグインが実行され、Nagiosにはその結果としてクリティカルが返されます。サービス状態はクリティカルとなり(例え既に回復していたとしても)、監視者はこの問題を知らされることになるでしょう。