序論
Nagiosはホストとサービス・チェックの結果に付いて"新鮮さ"チェックの特徴をサポートします。 新鮮さチェックの目的は次の事を保証することです。それは、ホストとサービスのチェックが定期的な外部アプリケーション実行で渡されることです。
パッシブ・チェックの結果が思った時間間隔で受信されているのを確認したければ新鮮さチェックは役に立ちます。 これは分散系やフェイルオーバー監視環境で非常に役に立つ場合があります。
新鮮さの照合はどのように働いていますか?
新鮮さチェックが可能の場合、Nagiosは全てのホストのサービスの結果の定期的に新鮮さチェックをします。
- 新鮮さの閾値は各ホストかサービスのために計算されます。
- 各ホスト/サービスにおいて、最後のチェック結果の時期と新鮮さ・閾値と比較されます。
- 最後のチェック結果の時期が新鮮さ・閾値より大きいなら、チェック結果は「古い」と考えられています。
- チェック結果が古いと分かると、Nagiosは強制的にコマンドを実行してホストまたはサービスのアクティブ・チェックを実行します。実行するコマンドはホストまたは、サービス定義に指定されています。
チップ: アクティブ・チェックがプログラム全体、または、ホストやサービス特有のベースで無効でも、アクティブ・チェックは実行されます。
例えば、一つのサービスに60の新鮮さの閾値を指定したら、Nagiosは最後のチェック結果が60秒以上古ければ、サービスは古いと考えます。
新鮮さチェックを可能にします。
ここに、新鮮さチェックを可能にするために必要な事があることがあります…
- 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のオプションが使用されます。それゆえ有効なtimeperiodに設定されるのを確認します。
Tip: チップ: ホストかサービス特有の freshness_threshold を指定しないと(またはゼロに設定)、Nagiosは自動的に閾値を計算します。どのくらいの頻度で特定のホストやサービスを監視するかを基準にして行われます。 Nagiosに選ばせるより、私はあなたがはっきり新鮮さ・閾値を設定する事を勧めます。
例
新鮮さの照合を必要とするであろうサービスの例の一つは、連夜のバックアップ業務の状態の報告かもしれません。 多分、バックアップがいったん終わるとバックアップ・ジョブの結果をNagiosに出す外部のスクリプトがあります。 この場合、パッシブ・チェックを使って、外部のアプリケーションでサービスのチェック/結果のすべてが提供されます。 バックアップ・ジョブの状態が毎日報告されるのを確実にするために、サービスの新鮮さチェックを可能にしたいかもしれません。 外部のスクリプトがバックアップ仕事の結果を出さないなら、こんな事をすることでNagiosから見せかけの重大な結果を出す事ができます。…
ここに、サービスの定義がどの様にみえるかがあります。(いくつかの必要なオプションが省略されます)…
define service{
host_name backup-server
service_description ArcServe Backup Job
active_checks_enabled 0 ; active checks are NOT enabled
passive_checks_enabled 1 ; passive checks are enabled (this is how results are reported)
check_freshness 1
freshness_threshold 93600 ; 26 hour threshold, backups may not always finish at the same time
check_command no-backup-report ; this command is run only if the service results are "stale"
...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 プラグインを実行し,それはCRITICAL状態をNagiosに返します。 次に、サービスはCRITICAL状態になります、(まだそうでなければ)誰かが障害の通知を受けます。
参照: パッシブ・チェック, 分散監視, 冗長系とフェイルオーバー監視