メトリック重大度情報/ポリシー情報の受渡し

メトリック重大度の属性(重大度のレベル、タイプ、通知ルール、ルール所有者など)をPL/SQLプロシージャまたはOSコマンドやスクリプトに渡すことで、アラートに対して自動化されたレスポンスをカスタマイズできます。たとえば、OSスクリプトで社内のサポート用トラブル・チケット・システムに関するトラブル・チケットを開く場合は、スクリプトに重大度レベル(クリティカル、警告など)を渡してトラブル・チケットを開き、問題を重大化させる必要があります。違反レベル、通知ルール、ルール所有者などのポリシー違反に関する情報も、メトリック重大度と同じメカニズムを使用して、PL/SQLプロシージャに渡すことができます。

PL/SQLプロシージャへの情報の受渡し

通知システムは、MGMT_NOTIFY_SEVERITYオブジェクトを介して重大度情報をPL/SQLプロシージャに渡します。このオブジェクトのインスタンスは、アラートごとに作成されます。アラートが発生すると、通知システムは通知ルールに関連付けられているPL/SQLプロシージャをコールして、移入されたオブジェクトを渡します。これにより、プロシージャは渡されたMGMT_NOTIFY_SEVERITYオブジェクトのフィールドにアクセスできます。

次の表に、受渡しできるすべてのメトリックの重大度属性を示します。

属性
データ型
追加情報

target_name

VARCHAR2(64)

ターゲット名。

target_type

VARCHAR2(64)

ターゲット・タイプ。
timezone VARCHAR2(64) ターゲットの地域のタイムゾーン。

host_name

VARCHAR2(128)

ターゲットがあるホスト名。

metric_name

VARCHAR2(64)

アラートの原因となったメトリック名またはポリシー名。

metric_description

VARCHAR2(128)

メトリックまたはポリシーの説明。

metric_column

VARCHAR2(64)

表メトリックの場合、メトリック列には、定義する表の列名が含まれます。定義するメトリックが表メトリックでない場合、この列の値はスペース1個となります。これはポリシー違反には使用されません。

metric_value
VARCHAR2(1024)
メトリックの値。
key_value_name
VARCHAR2(512) キーの値の名前(例: マウント・ポイント)。
key_value_guid
VARCHAR2(256) 複合キーの値の名前に関連付けられているGUID。

key_value

VARCHAR2(1290)

表メトリックの場合、この列には、しきい値を定義する表にある行のキー列の値が含まれます。しきい値が表メトリックに関するものではない場合、またはしきい値がメトリック列の行すべてに適用される場合、この列の値はスペース1個となります。

ctxt_list
MGMT_NOTIFY_COLUMNS
アラート・コンテキストの詳細。

collection_timestamp

DATE

ターゲットのステータス変更が最後に検出され、管理リポジトリに記録された時刻。

severity_code

NUMBER

重大度レベルを識別する数値コード。後述の「重大度コード」の表を参照してください。

message

VARCHAR2(4000)

アラート条件の追加情報を提供するために、アラートの作成時に生成されるオプションのメッセージ。

severity_guid

RAW(16)

重大度または違反のGUID。
metric_guid RAW(16) メトリックまたはポリシーのGUID。
target_guid RAW(16) ターゲットのGUID。

rule_owner

VARCHAR2(64)

通知が送信される原因となる通知ルールの名前。

rule_name

VARCHAR2(132)

通知が送信される原因となる通知ルールの所有者。

ターゲットに対する重大度が発生すると、通知システムはMGMT_NOTIFY_SEVERITYオブジェクトのインスタンスを作成し、重大度の値を移入します。次の重大度コードがMGMT_GLOBALパッケージに制約として定義されています。これらのコードを使用すると、MGMT_NOTIFY_SEVERITYオブジェクトのseverity_codeフィールドの重大度タイプを判別できます。

重大度コード

名前
データ型
値

G_SEVERITY_COMMENT

NUMBER(2)

10

G_SEVERITY_CLEAR

NUMBER(2)

15

G_SEVERITY_WARNING

NUMBER(2)

20

G_SEVERITY_CRITICAL

NUMBER(2)

25

G_SEVERITY_UNREACHABLE_CLEAR

NUMBER(3)

115

G_SEVERITY_UNREACHABLE_START

NUMBER(3)

125

G_SEVERITY_BLACKOUT_END

NUMBER(3)

215

G_SEVERITY_BLACKOUT_START

NUMBER(3)

225

G_SEVERITY_ERROR_END

NUMBER(3)

315

G_SEVERITY_ERROR_START

NUMBER(3)

325

G_SEVERITY_NO_BEACONS

NUMBER(3)

425

G_SEVERITY_UNKNOWN NUMBER(3) 515

例: 重大度コードを使用するPL/SQLプロシージャ

CREATE TABLE alert_log (target_name VARCHAR2(64),
alert_msg VARCHAR2(4000),
occured DATE);

PL/SQLプロシージャ

CREATE OR REPLACE PROCEDURE LOG_CRITICAL_ALERTS(severity IN MGMT_NOTIFY_SEVERITY)
IS
BEGIN
-- すべてのクリティカルの重大度をログ出力
IF severity.severity_code = MGMT_GLOBAL.G_SEVERITY_CRITICAL
THEN
BEGIN
INSERT INTO alert_log (target_name, alert_msg, occured)
VALUES (severity.target_name, severity.message,
severity.collection_timestamp);
EXCEPTION
WHEN OTHERS
THEN
-- 問題の発生時に再試行の通知を取得する場合
RAISE_APPLICATION_ERROR(-20000, 'Please retry');
END;
COMMIT;
END IF;
END LOG_CRITICAL_ALERTS;

PL/SQLプロシージャの使用方法

  1. 次のプロシージャ指定を使用して、リポジトリ・データベースにPL/SQLプロシージャを作成します。

    PROCEDURE p(severity IN MGMT_NOTIFY_SEVERITY)

    プロシージャの実行時にエラーが発生した場合、エラー・コード-20000を使用するユーザー定義例外を返すことによって、通知システムでプロシージャへの通知の送信を再試行できます。前述の例を参照してください。この再試行処理は最初1分後に行われ、2分後、3分後などのように続き、通知がパージされるポイントである1日後までそれが続きます。

  2. このPL/SQLプロシージャを、通知ルールでコールできる通知メソッドとして追加します。「PL/SQLプロシージャの追加」を参照してください。

    スキーマ所有者、パッケージ名およびプロシージャ名を含む完全修飾名を必ず使用してください。プロシージャはリポジトリ所有者によって実行されるため、リポジトリ所有者にプロシージャの実行権限があります。

  3. PL/SQLプロシージャを通知ルールに関連付けます。

OSスクリプトまたは実行可能ファイルへの情報の受渡し

通知システムは、システム環境変数を介してOSスクリプトまたは実行可能ファイルに重大度情報を渡します。環境変数へのアクセスに使用される表記規則は、オペレーティング・システムに応じて異なります。

通知システムは、スクリプトをコールする前に次の環境変数を設定します。

環境変数
説明

TARGET_NAME

重大度が発生したターゲットの名前。

TARGET_TYPE

重大度が発生したターゲットのタイプ。ターゲットは、監視可能なサービスとして定義されます。

HOST

ターゲットがあるマシンの名前。

METRIC

重大度を生成しているメトリック。

METRIC_VALUE
しきい値を超えたときのメトリック値。ポリシー違反用には設定しないでください。
POLICY_RULE
しきい値を超えたときのポリシー名。メトリック重大度用には設定しないでください。
KEY_VALUE_NAME キーの値の名前(例: マウント・ポイント)。

KEY_VALUE

表メトリックの場合、この値はしきい値を定義する表内の行のキー列を表します。この情報を使用して、収集される特定の値が一意に識別されます。ターゲット名、ターゲット・タイプおよびメトリック名とともに、メトリック値を一意に識別できます。

VIOLATION_CONTEXT
アラート・コンテキストを示す名前/値ペアのカンマで区切られたリスト。

TIMESTAMP

重大度が発生した時刻。

SEVERITY

重大度のタイプ。たとえば、ターゲットの可用性に関連する重大度タイプは、次のとおりです。

  • 稼働中

  • 停止中

  • 使用不可の回復

  • 使用不可の発生

  • ブラックアウト終了

  • ブラックアウト開始

その他のメトリックは次のいずれかの重大度になります。

  • 警告

  • クリティカル

  • クリア

  • メトリックエラーのクリア

  • メトリック開始エラー

MESSAGE

条件をトリガーした対象の詳細を示すアラート・メッセージ。

RULE_NAME

重大度を発生させた通知ルールの名前。

RULE_OWNER

ルールを所有するEnterprise Manager管理者名。

スクリプトでは、これらの変数の一部またはすべてを参照できます。

OSスクリプトまたは実行可能ファイルの使用方法

関連トピック

Enterprise Managerの情報ロードマップ