4.5.10. アクションの実行について¶
4.5.10.1. はじめに¶
モニタリングでは、監視タスクで登録された判定条件に従い、正常か警告か異常かの状態判定を行います。またこの監視タスクの状態判定を行った際に、状態が警告・正常から異常、異常・正常から警告、または異常・警告から正常といった変化があった場合に行う動作を、「アクション」として監視タスクで設定することができます。
この「アクション」には以下の3種類のものが設定でき、またこれらを組み合わせて設定することもできます。
- メッセージ送信
指定されたメッセージIDで千手メッセージを送信します。
- 一時停止
監視タスクを一時停止させます。
- コマンド実行
指定されたコマンドラインを実行します。
注釈
アクションのコマンド実行で実行されるコマンドは、監視タスクを実行したノード上で実行されます。運用管理サーバー上や監視対象のノード上ではありませんのでご注意下さい。もし監視対象ノード上で実行しなければならない場合は、 環境変数 に書かれている環境変数を利用し、リモートコマンド実行などを用いて実行するバッチスクリプトなどを監視タスクを実行したノード上に用意して下さい。
4.5.10.2. アクション処理の流れ¶
モニタリングでは監視タスクに登録された情報に従って、検査間隔毎に状況収集を行い状態を判定します。このときの処理の流れを以下に示します。
モニタリングは監視タスクに登録された情報に従い、検査間隔毎に状況収集を行います。
状況収集で情報取得後、監視タスクに登録された情報に従い状態の判定を監視対象毎に行います。
監視対象毎に、前回の状態と今回の状態に変化があったか調べます。
監視対象の状態が異常・警告から正常に、異常・正常から警告に、または警告・正常から異常に変化した場合は監視タスクに登録された正常時アクション、警告時アクション、または異常時アクションを実行します。
なお、アクションは以下のような仕様になっています。
アクションで実行するコマンドには、指定されたコマンドライン以外に引数などを付加しません。必要な情報は環境変数でコマンド側に渡すようになっているため、コマンドで環境変数を参照するようにして下さい。渡される環境変数については 環境変数 を参照して下さい。
アクションは監視タスク毎ではなく監視対象毎に実行します。そのため、監視タスクで複数の監視対象が取得される場合、 環境変数 に書かれている環境変数を利用し、どの監視対象について実行されたのか識別できるようにして下さい。
アクションで実行するコマンドの標準出力や標準エラー出力は取得していません。そのため、実行結果などを残す必要がある場合はコマンド側でファイルに出力するなどの対応が必要になります。なお、アクションで実行したコマンドの正常終了(終了値が0)/異常終了(終了値が0以外)は取得しています。
同じ監視対象の正常時/警告時/異常時アクションのコマンドが既に実行中である場合、二重に起動することはしません。このため、監視タスクの検査間隔より長い実行時間のコマンドを指定した場合に、アクションで指定されたコマンドが実行されない場合がありますので、ご注意下さい。
異常時アクションは、状態が監視開始時に「異常」と判断された、または状態が「警告・正常」から「異常」へ移行した際に一度実行します。ただし、システムエラー等が起こった場合は、状態遷移時でなくともアクションを実行することがあります。
警告時アクションは、状態が監視開始時に「警告」と判断された、または状態が「異常・正常」から「警告」へ移行した際に一度実行します。ただし、システムエラー等が起こった場合は、状態遷移時でなくともアクションを実行することがあります。
4.5.10.3. 環境変数¶
モニタリングではアクションでコマンドを起動する際に、以下の環境変数を自動的にセットします。必要な場合はコマンドにて参照することができます。
環境変数名 |
設定される値 |
---|---|
SjANM_TaskID |
監視タスクID |
SjANM_TaskName |
監視タスク名 |
SjANM_CheckINT |
検査間隔 |
SjANM_TargetNode |
監視対象ノードID |
SjANM_TaskStatus |
監視対象の状態 "OK":正常 "NG":異常 |
SjANM_TaskInstance |
監視対象名 |
SjANM_TaskValue |
値 |
SjANM_TaskDateTime |
取得日時 |