序文
状態"追跡(stalking)"はほとんどのユーザであまり使われないと思う機能です。もし有効にした場合、ホストやサービスチェックのステートが変化していなくても変化をログに出力できます。特定のホストやサービスの追跡が有効にすると、Nagiosは非常に注意して監視をし何が起こっているのかどんな変化もログに書き込みます。これは、後でログファイルを分析するのに役立ちます。
どのように動作する?
通常の設定では、ホストやサービスチェックの結果はホストやサービスのステートが最後のチェックから変化したときのみログに書き込まれます。これには少数の例外があります。しかし、大部分はそれはルールです。
特定のホストやサービスの1つもしくはそれ以上追跡を有効にすると、Nagiosは以前のチェックと今回のチェックの結果が異なるとログに書き込みます。以下にあるサービスの連続した8つのチェック結果の例を挙げます:
サービスチェック#: | サービスステート: | サービスチェックアウトプット: |
x | OK | RAID array optimal |
x+1 | OK | RAID array optimal |
x+2 | WARNING | RAID array degraded (1 drive bad, 1 hot spare rebuilding) |
x+3 | CRITICAL | RAID array degraded (2 drives bad, 1 host spare online, 1 hot spare rebuilding) |
x+4 | CRIICAL | RAID array degraded (3 drives bad, 2 hot spares online) |
x+5 | CRITICAL | RAID array failed |
x+6 | CRITICAL | RAID array failed |
x+7 | CRITICAL | RAID array failed |
このチェックシークエンスが与えられると通常は2つのログエントリしか残しません。最初はサービスチェックx+2のWARNINGステートからOKステートに変わったということ。もう1はサービスチェックx+3のサービスがWARNINGステートからCRITICALステートに変わったときです。
なんらかの理由で、ログファイル内のこのcatasropheの完全なヒストリがほしいと思うかも知れません。もしかしたらあなたの上司に何が起こったのか素早く説明する助けになるかもしれないし、居酒屋で酒をあおりながら笑う寝たにしたいと思うかも知れないし…
さて、CRITICALステートのこのサービスの追跡を有効にした場合x+2とx+3の追加イベントとして、x+4とx+5イベントがログに記録されているでしょう。なぜかというと、状態追跡が有効になっているとNagiosは以前のチェックと比べて異なるかどうかを検証しているからです。もし2チェック間のステートが変化しないが、その出力は異なっている場合、新しいサービスチェックの方の結果はログに記録されます。
追跡の似たような例としてウェブサーバを挙げてみます。check_httpプラグインによる最初のチェックが404エラーのWARNINGステートで、後のチェックが特定のパターンが見つからないというエラーでのWARNINGステートの場合、この後の特定のパターンを知りたいと思うでしょう。もしこのサービスのWARNINGステートの状態追跡を有効にしていなかったら、最初のWARNINGステートイベント(404エラー)が記録されるだけで、(アーカイブされたログを見ても)404エラーが引き起こした後のウェブページが返したパターンが見つからないというエラーに関してはお手上げになってしまいます。
追跡を有効にした方が良い?
まず初めに、アーカイブされたログを問題解決のために解析する必要があるか決めなくてはなりません。もしいくつかのサービスやホストでこの機能が必要だがすべてに必要というわけではないと判断するでしょう。さらに、それら状態のすべてではなく、いくつかのホストまたはサービスの状態のための追跡を可能にする必要が単に必要だと気づくでしょう。たとえば、あるサービスのWARNINGとCRITICALについて追跡したいが、OKとUNKNOWN状態は必要がないなどです。
ある特定のホストやサービスの状態追跡を有効にすることを決める事はそのホストやサービスをチェックするプラグインにも依存しています。もしある特定の状態をプラグインが常に同じテキストで返して来たら、それはその状態を追跡しても意味がありません。
どうやって追跡を有効にする?
ホストやサービスの状態追跡を有効にするにはホスト、サービス定義にてstalking_optionsディレクティブを使います。このディレクティブは現在のところテンプレートベースファイルフォーマットのみサポートしています。
警告
追跡を有効にすることで潜在的な落とし穴があることを認識してください。追跡オプションを有効にすると、様々なCGIのすべての報告機能(ヒストグラムや警告サマリなど)に影響が出ます。なぜなら、状態追跡はログに追加の警告のエントリを書き込むのでレポートには警告数がふくれあがって表示されるます。
概して、私はあなたが考え無しに、ホストやサービスに状態追跡を有効にしないことをお勧めします。 まだ必要で実行したいのなら、この章を見てみて下さい。