Nagios

序論


接触

通知が正確にどう働くかについて多くの質問がありました。 ここでは、ホストとサービス通知が何時、どの様に送られるかついて説明しています。また、誰が受けとるかについても同様です。

通知エスカレーションはここで説明されます。

通知はいつ行われますか?


サービス・チェックとホスト・チェック・ロジックで通知を出す決定をします。 以下のインスタンスは、ホストとサービス通知が発生する例です。…

だれが通知を受けとりますか?


各ホストとサービス定義には、contact_groupsオプションがあって、それは、特定のホストかサービスの通知を受け取る連絡先グループを指定します。 連絡先グループには1つ以上の各連絡先を含むことができます。

Nagiosがホストかサービス通知を出すと、サービス定義のcontactgroupsオプションで指定された連絡先グループの各メンバーに通知します。 Nagiosは、連絡先が1つ以上の連絡先・グループのメンバーかもしれないことが分かるので、通知する前に重なっている連絡先を取り除きます。

通知を送る命令でどんなフィルタを通さなければなりませんか?


ホストやサービスに通知を出す必要があるので、どんな連絡先が通知を受けかに意味はありません。 それが送る価値があると思う前に基本的にな通知がパスしなければならない幾つかのフィルターがあります。 それでも、通知フィルタが、送るのを許さないなら、特別な通知は行われないかもしれません。 さらに渡されなければならないフィルタの詳細に入りましょう…

プログラム全体のフィルタ:


通知が渡さなければならない最初のフィルタは、プログラム全体に渡って通知が可能となっているかをテストする事です。 これは、メイン設定ファイルの enable_notifications 指示で最初に決められていますが、実行中 Webインターフェースで変更可能です。 プログラム全体で通知が無効なら、ホストもサービス通知も行われません--以上。 それらがプログラム全体で可能になっているなら、通らなければならない他のテストがまだあります…

サービスとホストのフィルタ:


ホストかサービス通知の最初のフィルタはホストかサービスが計画された停止時間内かをチェックすることです。 予定されている停止時間の中は、誰にも通知されません。 停止時間範囲でないなら、それは次のフィルタに渡されます。 注釈として、関連しているホストが予定されている停止時間内なら、サービスの通知は止められます。

ホストかサービス通知の2番目のフィルタはホストかサービスのバタつき検査です。(バタツキ検出を許可した場合) サービスかホストが現在ばたついている状態なら、だれも通知を受けません。 さもなければ、それは次のフィルタに渡されます。

渡されるべきホストかサービスの3番目のフィルターは、ホスト独特またはサービス独特の通知オプションです。 それぞれのサービス定義では警告ステータス、重大ステータス、および復旧通知を出すか否かを決定するオプションを含んでいます。 同様に、それぞれのホスト定義には、ホストが停止か、到達できなくなるか、または復旧するとき、通知を出すことができるか決定するオプションを含んでいます。 ホストかサービス通知がこれらのオプションを通らないと、だれにも通知されません。 これらのオプションに通ったら、通知は次のフィルタに渡されます… 注意: ホストとサービスの復旧の通知は、オリジナルの問題によって通知を出した場合にだけ出されます。 あなたの決して知らない何かの障害から復帰通知を受けとる事は何の意味もありません。

ホストやサービスの4番目にフィルターに渡さなければならないのは、時間間隔のテストです。 各ホストとサービス定義には、ホストとサービスの有効な通知時間を含む期間を示すnotification_periodオプションがあります。 通知をする時間が指定された有効な時間範囲内でないと、だれにも連絡されません。 有効な時間範囲内なら、通知は次のフィルタに渡されます… 注意: 期間のフィルタに通らないと、Nagiosは次の時間範囲でホストやサービス(もしそれがOK出ない状態の場合)の次の通知を予定します。 これは、連絡先期間の次の有効な時間にできるだけ速やかに障害連絡先を確実に行うのを助けます。

ホストかサービスのフィルターの最後のセットは2つの条件です: (1)ホストとサービスの過去のある時点で障害の通知が既に送られた (2) ホストとサービスが前に通知を出したのと同じOKで無い状態でありつづけています。 これらの2つの評価基準が満たされると、Nagiosは、最後の通知を出してから経過している時間が、ホストかサービス定義における notification_interval オプションで指定された値を満たすか、または超えているかを確認にします。 最後の通知以降、時間が十分経過していなければ、だれも連絡されません。 最後の通知から十分時間がたっていればこのフィルタの2つの評価基準にあって、通知を出します! 実際に個々の連絡先にそれを送るかどうは、もう1セットのフィルタ次第です…

通知フィルター:


この時点で、通知は、プログラム・モード・フィルタに渡されます、そして、全てのホストとサービスはフィルタされNagiosは通知べきですべての人に通知を始めます。 これは、各連絡先が通知を受け取ることを意味しますか? いいえ! 各通知先には、それぞれ受け取る前に通らなければならない通知のフィルター・セットがあります。 注意: 連絡先・フィルターは、それぞれ連絡先に独自であり、他の連絡先が受ける通知に影響しません。

各連絡先に渡さなければならない最初のフィルタは、通知オプションです。 それぞれの通知定義にはWARING状態、CRITICAL状態、復帰状態の時、サービス通知が行われるか否かを決めるオプションを含んでいます。 それぞれの通知定義にはホストが停止したり到達できなくなったり復旧したりした時、ホスト通知が行われるか否かを決めるオプションを含んでいます。 ホストかサービス通知がこれらのオプションを通らないと、連絡先に通知されません。 これらのオプションに通ったなら、通知は次のフィルタに渡されます… 注意: ホストとサービスの復旧の通知は、オリジナルの問題によって通知を出した場合にだけ出されます。 あなたの決して知らない何かの障害から復帰通知を受け取っても何の意味もありません。

各連絡先に渡さなければならない最後のフィルタは、期間のテストです。 それぞれの連絡先定義には、連絡先への有効な通知時間を含んだ時間範囲を指定する notification_period オプションがあります。 通知をする時間が指定された有効な時間範囲内でないなら、連絡先に通知されません。 有効な時間範囲の中なら、連絡先に通知されます!

通知方法


あなたはNagiosに障害と復旧について通知させることができます。とにかく以下は欲しいと思います。 ポケットベル、携帯電話、メール、インスタントメッセージ、オーディオ警報、電気ショッカーなど どう通知を送るかはオブジェクト定義ファイル定義される通知命令によります。

注意: クイックスタート Fedora, クイックスタート OpenSuse, クイックスタート Ubuntuに従ってNagiosをインストールしたなら、メール通知を送る設定されています。 以下のファイルの内容を見ると使用されるメール通知命令を見ることができます: /usr/local/nagios/etc/objects/commands.cfg.

ただあまり意味がないので、特定の通知方法(ポケベルなど)は直接Nagiosコードに組み入れられません。 Nagiosの「コア」は、オールインワンのアプリケーションになるように設計されていません。 サービス・チェックがNagiosのコアに組み込まれると、ユーザが新しいチェック方法を加えたり、既存のチェックの変更、その他は、非常に難しくなります。 通知も同様の方法で働きます。 通知には1,000の異なった方法があって、ややこしい仕事を扱う多くのパッケージが既にあるので、自分で作る必要は無いと思います。 それは外部の独立なプログラムでややこしいことをさせるのはずっと簡単です。(すなわち、簡単なスクリプトや本格的なメッセージシステム) ポケットベルと携帯電話のための通知を扱うことができるいくつかのメッセージング・パッケージが、以下のリソース部に記載されています。

通知タイプ・マクロ


通知命令を作るとき、どんなタイプの通知が起こったかを考慮に入れる必要があります。 $NOTIFICATIONTYPE$ マクロにはちょうどそれを特定する文字列を含んでいます。 以下のテーブル・リストには、可能なマクロの値とそれらに対応した記述があります。

記述
PROBLEM サービスかホストがちょうど障害状態(または、まだその状態のまま)に入ったところです。これがサービス通知であれば、それは、サービスがWARNING、UNKNOWNまたはCRITICAL状態にあることを意味します。これがホスト通知であれば、それは、ホストがDOWNかUNREACHABLE状態にあることを意味します。
RECOVERY サービスかホストが復旧しました。これがサービス通知であれば、それは、サービスがちょうどOKステータスに戻ったところを意味します。ホスト通知であれば、それは、ホストがちょうどUP状態に戻ったところを意味します。
ACKNOWLEDGEMENT この通知はホストかサービス障害の承認通知です。承認通知は特定のホストかサービスのために通知のウェブ・インタフェースを通して開始されます。
FLAPPINGSTART ホストかサービスがちょうどバタツキ始めました。
FLAPPINGSTOP ホストかサービスが、バタツキをちょうど止めたところです。
FLAPPINGDISABLED ホストかサービスが、バタツキ検出が無効にされたので、バタツキをちょうど止めたところです。
DOWNTIMESTART ホストかサービスがちょうど予定されている休止時間の期間に入ったところです。今後の通知は休止されます。
DOWNTIMESTOP ホストかサービスが予定されている休止時間の期間からちょうど出たところです。障害に関する通知はいま、元に戻ります。
DOWNTIMECANCELLED ホストかサービスのための予定されている停止時間の期間はちょうど取り消されました。障害に関する通知はいま、元に戻ります。

有用なリソース


通知を出すためNagiosを設定できる多くの方法があります。 どの方法を使用うかを決めるのはあなた次第です。 いったんそれをすると、それらを使用する前に、どんな必要なソフトウェアもインストールして、あなたの設定ファイルに通知命令設定をしなければなりません。 ここに、いくつかの可能な通知方法があります:

基本的に、通知命令としての使うため、何かコマンドラインからできることを作ることができます。

送付メッセージにあなたのポケットベルか携帯電話にメールを使う別方法を探しているなら、これらのパッケージを調べてみます。 障害が発生すると、モデムを通して通知を出すのにNagiosと連携してそれらを使用できます。 そのように、通知を出すためにメールをあてにしてはいけません。(メールは、ネットワーク障害があれば使えないことを思いだして) 私は実際に自分でこれらのパッケージを試しませんでしたが、他の人は、使用して成功したと報告しました…

通知の伝統的で無い方法を試したいなら、オーディオ警報をしたがっているかもしれません。 監視サーバ(合成音声がある)でオーディオ警報を再生したいなら、Festival プロジェクトを調べます。 あなたが監視するマシンをそのままで、別のマシンでオーディオ警報を再生させる方が良ければ、Network Audio System (NAS)rplay 再生プロジェクトを調べます。

参照 参照: エスカレーション, 通知のエスカレーション, 呼出しローテーション

English Deutsch 日本語

目次