OSコマンドおよびスクリプトを使用した通知の送信
通知システムは、インシデント・ルールがOSコマンド拡張通知アクションと一致した場合にカスタム・スクリプトを呼び出すことができます。カスタム・スクリプトは、環境変数を通じて、一致するイベント、インシデントおよび問題の通知を受信します。
環境変数の値の長さは、デフォルトで512文字に制限されています。デフォルト制限を変更するには、oracle.sysman.core.notification.oscmd.max_env_var_lengthという名前のemomsプロパティを構成します。
ノート:
OSコマンドに基づく通知メソッドは、スーパー管理者権限を持つ管理者が構成する必要があります。
ノート:
通知を受信するために「sudo」などのOSコマンドを実行すると、コマンドにはOMSアカウントの読取り権限がないため失敗します。OMSアカウントには、通知を送信するためにOSコマンドに対する読取り権限が必要です。
権限の問題を解決するには、コマンドをOMS管理者アカウントが読取り可能なラッパー・スクリプトに埋め込みます。コマンドがラッパー・スクリプトに含まれたら、OSコマンドのかわりにこのスクリプトを指定します。
カスタム・スクリプトの登録
カスタム・スクリプトを使用するには、最初にそのスクリプトを通知システムに登録する必要があります。これは、次の4つのステップで実行します。
例6-4 oracle.sysman.core.notification.os_cmd_timeout emomsプロパティの変更
emctl set property -name oracle.sysman.core.notification.os_cmd_timeout value 30
例6-5 OSコマンド通知メソッド
Name Trouble Ticketing Description Notification method to log trouble ticket for a severity occurrence OS Command /private/mozart/bin/logTicket.sh
ステップ1: OSコマンドまたはスクリプトの定義
インシデント・ルールがOSコマンド拡張通知アクションと一致する場合に通知システムによってコールされるOSコマンドまたはスクリプトを指定できます。スクリプト本体で、インシデント、イベントまたは問題のコンテキスト情報、修正処理の実行ステータス、およびジョブ実行ステータスを使用できます。このコンテキスト情報をOSコマンド/スクリプトに渡すと、自動化されたレスポンス固有イベント条件をカスタマイズできます。たとえば、OSスクリプトで社内サポート用トラブル・チケット・システムに対するトラブル・チケットを開く場合、スクリプトに重大度レベル(クリティカル、警告など)を渡すことによって、該当する詳細とともにトラブル・チケットを開いて問題を提示できます。特定タイプの情報をOSコマンドまたはスクリプトに渡す方法の詳細は、次の各項を参照してください。
ステップ2: 各管理サービス・ホスト上へのスクリプトのデプロイ
管理リポジトリに接続する各管理サービス・ホスト・マシン上に、OSコマンドまたはスクリプトをデプロイする必要があります。OSコマンドは、管理サービスを開始したユーザーで実行されます。OSコマンドまたはスクリプトは、各管理サービス・ホスト・マシン上の同じ場所にデプロイする必要があります。
ノート:
スクリプトとOSコマンドは、両方とも絶対パスを使用して指定する必要があります。たとえば、/u1/bin/logSeverity.shなどです。
このコマンドは、管理サービスを開始したユーザーによって実行されます。OSコマンドの実行中にエラーが発生した場合は、終了コード100を返すことで、OSコマンドへの通知の送信を再試行するように通知システムに指示できます。プロシージャの再試行は、最初は1分後に、次は2分後、3分後に、最後は30分後に行われます。これ以降、プロシージャの再試行は、通知が24時間経過するまで、30分ごとに行われます。その後、通知はパージされます。
例6-4に、管理サービスにより中断なしにOSコマンドを実行できる期間を制御するemoms.propertiesのパラメータを示します。これによって、OSコマンドが過度に長い時間実行されるため他の通知の転送を妨げることが回避できます。デフォルトでは、コマンドは中断されるまで30秒間実行できます。oracle.sysman.core.notification.os_cmd_timeout emomsプロパティを構成して、デフォルトのタイムアウト値を変更できます。
ステップ3: OSコマンドまたはスクリプトを新規の通知メソッドとして登録
このOSコマンドをインシデント・ルールでコールできる通知メソッドとして追加します。スーパー管理者としてログインします。「設定」メニューから、「通知」、「通知メソッド」の順に選択します。このページから、「OSコマンド」タイプに基づいて新しい通知を定義します。「OSコマンドおよびスクリプトを使用した通知の送信」を参照してください。
各OSコマンドの通知メソッドには次の情報が必要です。
-
名前
-
説明
他の管理者がこのメソッドの機能を理解できるようにするため、名前と説明は両方とも明快で直観的なものにします。
-
OSコマンド
「OSコマンド」フィールドには、OSコマンドまたはスクリプトをフルパスで入力する必要があります(たとえば、/u1/bin/myscript.sh
)。複数の管理サービスを使用している環境では、管理サービスが存在する各マシン上のパスとまったく同じパスを入力します。フルパスの後にコマンドライン・パラメータを追加できます(たとえば、/u1/bin/myscript.sh arg1 arg2)。
例6-5は、通知メソッドに必要な情報を示しています。
ノート:
システムごとに複数のOSコマンドが構成されている場合があります。
ステップ4: 通知メソッドのインシデント・ルールへの割当て。
既存のルールを編集(または新規のインスタンス・ルールを作成)後、メソッド・ページを表示できます。「設定」メニューから、「インシデント」、「インシデント・ルール」の順に選択します。インシデント・ルール・ページから、使用可能なすべてのルール・セットにアクセスできます。
OSコマンドまたはスクリプトにイベント、インシデントおよび問題情報を渡す方法の詳細は、「OSコマンドまたはスクリプトへのイベント、インシデント、問題情報の受渡し」を参照してください。