これは、MON構成の2番目および最後の段階です。
必須サービスのデフォルト値が表示されます 。サービス定義の詳細については、以下のそれぞれのヘルプトピックを参照してください。 「mail.alert」の場合は、sendmailが構成され、 「sendmail」デーモンがホストマシンで開始されていることを確認してください。
サービス定義
- サービス servicename
- サービス定義は、キーワードserviceで始まり、このサービスのタグである単語が続きます。
サービスのコンポーネントは、以下に定義するように、間隔、モニター、および1つ以上の期間定義です。
「デフォルト」のサービス名が「dafault」と呼ばれる監視グループ内で定義されている場合(上記を参照)、デフォルト/デフォルトの定義が不明なmonトラップの処理に使用されます。
- 間隔 体timeval
- キーワードの間隔とそれに続く時間の値は、監視スクリプトがトリガーされる頻度を指定します。時間の値は、「30秒」、「5分」、「1時間」、または「1日」として定義され、30秒、5分、1時間、または1日を意味します。数値部分は、「1.5h」または1時間半などの端数である場合があります。時間指定のこの形式は、 timevalと呼ばれます 。
- traptimeout timeval
- このキーワードは、 間隔と同じ時間指定の引数を取り、そして多くの場合、他の障害が登録され、少なくとも外部からのトラップ期待するサービスになります。これは、ハートビートスタイルのサービスに使用されます。
- trapduration 体timeval
- トラップが受信された場合、トラップが配信されたサービスのステータスは通常一定のままです。 trapdurationが指定されている場合、サービスのステータスは、 timevalで指定された期間、失敗状態のままになり、その後、「成功」にリセットされます。
- randskew timeval
- 監視スクリプトを各間隔の開始時に実行するようにスケジュールするのではなく、プラスまたはマイナスのランドスキューによって、 間隔パラメーターで指定された間隔をランダムに調整します。 skewの値は、 intervalパラメータとして指定されます: "30s"、 "5m"など...たとえば、 intervalが1mで、 randskewが "5s"の場合、 monは55秒ごとに監視スクリプトをスケジュールします。 65秒。その目的は、多くのサービスが同じ間隔でスケジュールされている場合に、サーバーの負荷を分散することです。
- モニター モニター名[引数...]
- キーワードmonitorの後にスクリプト名と引数が続き、タイマーが切れたときに実行するモニターを指定します。監視スクリプトに送信する引数を指定するときは、シェルのような引用規則に従います。スクリプトは、 -s引数で指定されたディレクトリから呼び出され、後続のすべての単語は、監視プログラムへの引数として提供され、その後に現在の監視グループが参照するグループ内のホストのリストが続きます。モニター行が「;;」で終わる場合別の言葉として、ホストグループは、プログラムが呼び出されたときに引数リストに追加されません。
- allow_empty_group
- allow_empty_groupオプションを使用すると、無効なホストのためにその監視のホストグループが空の場合でも、モニターを呼び出すことができます。ホストグループ内のすべてのホストが無効になっている場合、デフォルトの動作ではモニターは呼び出されません。
- 説明 descriptiontext
- 説明に続くテキストは、クライアントプログラムによって照会され、環境変数を介してアラートとモニターに渡されます。電子メールまたはWebページに含めるのに適した、サービスの簡単な説明を含める必要があります。
- exclude_hosts host [host ...]
- exclude_hostsの後にリストされているすべてのホストは、サービスチェックから除外されます。
- exclude_period periodspec
- periodspecで指定された時間中は、スケジュールされたモニターを実行しないでください。
- dependexpressionに 依存
- dependキーワードは、ブール式でtrueまたはfalseのいずれかに評価される依存関係式を指定するために使用されます。依存関係は実際のPerl式であり、すべての構文規則に従う必要があります。式は独自のパッケージスペースで評価され、予期しない副作用が誤って発生しないようになっています。式の評価中に構文エラーが見つかった場合、syslogを介してログに記録されます。
評価の前に、式で次の置換が行われます。「group:service」のように見えるフレーズは、その指定されたサービスの現在の動作ステータスの値で置換されます。これらのopstatus置換は再帰的に計算されるため、サービスAがサービスBに依存し、サービスBがサービスCに依存している場合、サービスAはサービスCに依存します。 "、" STAT_WARMSTART "、および" STAT_UNKNOWN "。単語「SELF」(すべて大文字)は、グループ(たとえば、「SELF:service」)に使用でき、現在の監視グループの省略形です。
この機能を使用して、他のサービスに依存しているサービスのアラートを制御できます。たとえば、pingで到達可能なマシンに依存しているSMTPテストなどです。
- dep_behavior {a | m}
- 依存関係グラフの評価により、アラートまたはモニター呼び出しの抑制を制御できます。
アラート抑制 。このオプションが「a」に設定されている場合、依存関係式は、サービスのモニターの終了後、またはトラップの受信後に評価されます。アラートは、評価が成功した場合にのみ送信されます。つまり、ディペンデンシーグラフのどのノードも失敗を示していません。
抑制を監視します。 「m」に設定すると、サービスのモニターが実行される前に依存関係式が評価されます。評価が成功すると、モニターが実行されます。そうしないと、モニターは実行されず、サービスのステータスは同じままになります。
期間の定義
期間は、アラートの配信を許可する条件を定義するために使用されます。
- 期間 [ラベル:] periodspec
- ピリオドは、障害が発生したときにアラートが発生する頻度を制御する1つ以上のアラームと変数をグループ化します。 periodキーワードには2つの形式があります。 1つ目は、Patrick RyanのTime :: Period Perl 5モジュールからの期間指定である引数を取ります。詳細については、「perldoc Time :: Period」を参照してください。
2番目の形式では、上で定義したように、ラベルの後にピリオド指定が必要です。ラベルは、アルファベット文字またはアンダースコアの後に0個以上の英数字またはアンダースコアが続き、コロンで終わるタグです。このフォームは、同じ期間定義を持つ複数の期間を許可します。 1つの用途は、これらのパラメータを含まないアラートの異なるセットと同じ期間にはalertafterまたは特定の期間のalerteveryパラメータ、および別のものを持っていない期間の定義を持つことです。
- alertevery 体timeval
- ( 期間定義内の) alerteveryキーワードは、 間隔変数と同じタイプの引数を取り、サービスが引き続き失敗するときにアラートが送信される回数を制限します。たとえば、間隔が「1h」の場合、期間セクションのアラートのみが1時間に1回だけトリガーされます。期間のエントリでalerteveryキーワードを省略した場合、障害が検出されるたびにアラートが送信されます。デフォルトでは、2つの連続した失敗の出力が変化すると、アラート間隔が上書きされます。 「summary」という語が最後の引数である場合、連続する失敗の出力を比較するときに、要約出力行のみが考慮されます。
- Alertafter num
- alertafter num timeval
- ( ピリオドセクション内の) alertafterキーワードには2つの形式があります。「num」引数のみ、または「num timeval」引数のみです。最初の形式では、アラートは「num」回連続して失敗した後にのみ呼び出されます。
2番目の形式では、引数は、上記の間隔変数で説明されているように、間隔が続く正の整数です。これらのパラメーターが指定されている場合、その期間のアラートは、その間隔内で多くの障害が発生した後にのみ呼び出されます。たとえば、 alertafterに引数「3 30m」を指定した場合、30分以内に3つの失敗が発生するとアラートが呼び出されます。
- numalerts num
この変数は、障害発生時にnum個以下のアラートを呼び出すようサーバーに指示します。アラートカウンターは期間ごとに保持され、成功するたびにリセットされます。
- comp_alerts
このオプションを指定すると、対応する「ダウン」アラートが呼び出された場合にのみ、アップアラートが呼び出されます。
- アラート アラート[引数...]
- 期間には、サービスの失敗時にトリガーされる複数のアラートが含まれる場合があります。アラートは、 alertキーワードで指定され、その後にオプションの出口パラメーター、およびモニター定義と同じように解釈される引数が続きますが、「;;」がありません。例外。 exitパラメータは、 exit = xまたはexit = xyの形式を取り、監視スクリプトの終了ステータスがexitパラメータの範囲内にある場合にのみアラートが呼び出されるという効果があります。たとえば、アラート行がalert exit = 10-20 mail.alert misの場合、モニタープログラムの終了値が10〜20の場合にのみ、 mail-alertが引数としてmisで呼び出されます。この機能により、さまざまな重大度レベルのさまざまなアラート(空きディスク領域が8%から3%に変化する場合など)。
月がアラートプログラムに自動的に渡されますpramaetersのリストについては、上記ALERTプログラムのセクションを参照してください。
- upalert アラート[arg ...]
- アップ アラートはアラートの賛辞です。アップアラートは、サービスが状態を失敗から成功に移行させるときに呼び出されます。 upalertスクリプトは、単にそれがupalertと呼ばれていることを警告スクリプトを知ることができるように使用されている-uパラメータを追加して、 アラートのスクリプトと同じパラメータを指定すると呼ばれています。各期間定義に複数のアップアラートを指定できます。状態遷移時にアップアラートがトリガーされるため、デフォルトの動作では、送信された「ダウン」アラートがあったかどうかに関係なく、アップアラートが送信されます。期間ごとのcomp_alertsオプションを設定して、 アップアラートと「ダウン」アラートをペアにします。
- startupalert アラート[引数...]
- startupalertは、 monサーバーが実行を開始したときにのみ呼び出されます。
- upvalertafter timeval
- upalertafterパラメータは、 intervalパラメータの構文( "30s"、 "1m"など)に続く文字列として指定され、 upalertのトリガーを制御します。このオプションの値以上の時間停止した後にサービスが復旧すると、 アップアラートが呼び出されます。このオプションを使用して、「ブリップ」(一時的な停止)のためにアップアラートが呼び出されるのを防ぎます。