ヘッダーをスキップ

Oracle Enterprise Manager アドバンスト構成
10gリリース5(10.2.0.5.0)

B53907-01
目次
目次
索引
索引

戻る 次へ

13 通知の構成

通知システムによって、アラート、ポリシー違反、およびジョブ実行ステータスの変更がEnterprise Manager管理者に通知されます。管理者への通知以外にも、たとえばアラートがトリガーされるとオペレーティング・システム・コマンド(スクリプトを含む)やPL/SQLプロシージャを実行するなどの処理を実行できます。この機能により、特定のアラート条件に対して所定のIT手法を自動的に実施できます。たとえば、データベースの動作(稼働/停止)ステータスの監視時にアラートが生成されたときに、通知システムによってOSスクリプトを介して社内のトラブル・チケットを自動的に開き、担当のITスタッフが適時に応答できるようにします。

また、Enterprise Managerの通知システムでは、Simple Network Management Protocol(SNMP)トラップを使用して、HP OpenViewなどのSNMP対応サード・パーティ・アプリケーションにトラップを送信できます。一部の管理者は、特定のメトリックがしきい値を超えた時点でサード・パーティ・アプリケーションに通知を送信する場合があります。

この章では次の項について説明します。

13.1 通知の設定

すべてのEnterprise Manager管理者は、各自の電子メール通知を設定できます。スーパー管理者は、他のEnterprise Manager管理者の通知も設定できます。

13.1.1 通知のためのメール・サーバーの設定

Enterprise Managerで電子メール通知の送信を行うには、あらかじめ、通知システムで使用する送信メール(SMTP)サーバーを設定する必要があります。設定後は、自分の電子メール通知を定義できます。スーパー管理者権限を持っている場合は、他のEnterprise Manager管理者の電子メール通知も定義できます。

送信メール(SMTP)サーバーは、「通知メソッド」ページで指定します(図13-1)。Grid Controlコンソールの任意のページで「設定」をクリックし、垂直ナビゲーション・バーで「通知メソッド」をクリックして、「通知メソッド」ページを表示します。


注意:

SMTPサーバーを設定するには、スーパー管理者権限が必要です。 


1つ以上の送信メール・サーバー名、(必要な場合は)メール・サーバー認証資格証明(「ユーザー名」、「パスワード」および「パスワードの確認」)、通知メッセージの送信者として表示する名前、および電子メール通知の送信に使用する電子メール・アドレスを指定します。「送信者の電子メール・アドレス」というこのアドレスには、指定する各メール・サーバーで有効なアドレスを指定してください。電子メール通知の送信中に問題が発生した場合は、この電子メール・アドレスにメッセージが送信されます。例13-1は、通知メソッドの入力例です。

例13-1    メール・サーバーの設定

電子メール・サーバーの設定後、「メール・サーバーのテスト」をクリックして電子メール設定を検証します。「送信者の電子メール・アドレス」フィールドで指定した電子メール・アカウントによって、電子メール・メッセージが受信されていることを確認してください。

複数のメール・サーバーを定義すると、電子メール通知配信の信頼性が向上し、複数のシステム間に負荷を分散することができます。管理サービスは電子メールの送信に各メール・サーバーを利用し、その動作は$ORACLE_HOME/sysman/config/emoms.propertiesファイルに定義されている次のパラメータで制御されます。

例13-2    管理サービスのパラメータ

# The maximum number of emails that can be sent in a single connection to an
# email server
# em.notification.emails_per_connection=20
#
# The maximum number of emails that can be sent in a minute
# em.notification.emails_per_minute=250

例13-2のデフォルトに基づいて、1番目のメール・サーバーが20通の電子メールを送信すると管理サービスは2番目のメール・サーバーに切り替え、そのメール・サーバーが次の20通の電子メールを送信すると、3番目のメール・サーバーに切り替えます。これによって1つのメール・サーバーに過大な負荷がかからなくなり、全体的な信頼性とスループットが向上します。

13.1.1.1 繰返し通知の設定

繰返し通知を使用すると、アラートが通知されるか、「繰返し通知の最大数」の値に到達するまで、管理者に繰返し通知できます。Enterprise Managerは、すべての通知メソッド(電子メール、OSコマンド、PL/SQLプロシージャ、およびSNMPトラップ)について、繰返し通知をサポートしています。通知メソッドとしてこの機能を有効にするには、「繰返し通知の送信」オプションを選択します。繰返し通知の最大回数を設定するだけでなく、通知の送信周期を設定することもできます。


重要

Grid Control Repositoryデータベースのバージョンが9.2の場合、繰返し通知機能を有効にするには、aq_tm_processes init.oraパラメータを
1以上に設定する必要があります。 


ルールの繰返し通知

通知メソッド・レベルで繰返し通知をグローバルに設定すると、十分な柔軟性がもたらされないことがあります。たとえば、メトリック・タイプやアラート重大度に基づいて、繰返し通知設定を変えるとします。Enterprise Managerでは、個々の通知ルールに対して繰返し通知を設定することによって、これが可能になります。ルール・レベルでの繰返し通知の設定は、通知メソッド・レベルで定義された設定よりも優先されます。


重要

ルールの繰返し通知は、「通知メソッド」ページで「繰返し通知の送信」オプションが有効になっている場合にのみ送信されます。  


PL/SQL、OSコマンド、およびSNMPトラップ通知メソッドについては、繰返し通知をサポートするよう各メソッドを有効にする必要があります。新しい通知メソッドを追加するときに「繰返し通知のサポート」オプションを選択するか、既存のメソッドを編集します。

図13-2    OSコマンド通知メソッドの繰返し通知の有効化


画像の説明

13.1.2 自分用の電子メールの設定

電子メールで通知を受信するには、Grid Controlコンソールで「プリファレンス」リンクをクリックし、「一般」ページで電子メール・アドレスを指定する必要があります。通知用の電子メール・アドレスを定義するだけでなく、電子メール・アドレスで使用する通知メッセージ形式(長いまたは短い)を関連付けます。

電子メールを設定するには、次の3つの手順を実行します。

手順1: 電子メール・アドレスの定義

手順2: 通知スケジュールの設定

手順3: 通知ルールの電子メールを受信するようにサブスクライブ

13.1.2.1 電子メール・アドレスの定義

電子メール・アドレスには最大128文字を使用できます。電子メール・アドレスの数の上限はありません。

電子メール・アドレスを追加するには、次のようにします。

  1. Grid Controlコンソールから、「プリファレンス」をクリックします。デフォルトでは
    「一般」ページが選択されます。

  2. 「行の追加」をクリックして、新規の電子メール項目フィールドを「電子メール・アドレス」表に作成します。

  3. ユーザーのEnterprise Managerアカウントに関連付けられている電子メールを指定します。Enterprise Managerから受信するすべての電子メール通知が、指定した電子メール・アドレスに送信されます。

    たとえば、user1@oracle.comなどです。

    電子メール・アドレスのメッセージ形式を選択します。「長い書式」では、詳細情報を含むHTML形式の電子メールが送信されます。例13-3は、長い書式を使用する標準的な通知の例です。

    「短い書式」(例13-4)では、簡潔なテキスト形式の電子メールが送信されます。この形式は構成可能な文字数に制限されているため、SMSメッセージまたはページとして電子メールが受信されます。メッセージの内容全部を件名か本文のどちらか一方に含めて送信することも、メッセージを件名と本文に分割して送信することもできます。たとえば、件名と本文に分割して送信する場合、件名には重大度タイプ(クリティカルなど)とターゲット名などを含めます。本文には、重大度の発生時刻と重大度メッセージなどを含めます。メッセージの長さに制限があるため、これらの情報の一部が切り捨てられる場合があります。切捨てが行われた場合は、メッセージの最後に省略記号が表示されます。

  4. 「適用」をクリックして電子メール・アドレスを保存します。

    例13-3    アラート用の長い書式の電子メール通知

    Name=myhost.com
    Type=Host
    Host=myhost.com
    Metric=Filesystem Space Available (%)
    Mount Point =/usr
    Timestamp=06-OCT-2006 16:27:05 US/Pacific
    Severity=Warning
    Message=Filesystem / has only 76.07% available space
    Rule Name=Host Availability and Critical States
    Rule Owner=SYSMAN
    
    

    例13-4    アラート用の短い書式の電子メール通知

    Subject is : EM:Unreachable Start:myhost Body is : Nov 16, 2006 2:02:19 PM EST:Agent is Unreachable (REASON = Connection refused) but the host is UP
短い書式の電子メールに関するその他の情報

Enterprise ManagerではページングやSMSなどのメッセージ・サービスを直接にはサポートしていませんが、かわりに外部ゲートウェイを利用し、電子メールからページへの変換などを実行します。

短い書式の電子メールのサイズおよび書式は、emoms.propertiesファイル内のエントリによって定義されます。

使用するデバイスでサポート可能な最大サイズと、メッセージを件名、本文、その両方のいずれの形式で送信するかを設定する必要があります。

短い書式の電子メールを指定するemoms.propertiesエントリ
# The maximum size of a short format email
# em.notification.short_format_length=155
# The format of the short email. It can be set to subject, body or both.
#
# When set to subject the entire message is sent in the subject i.e.
#  EM:<severity>:<target>:<message>:<timestamp>
# When set to body the entire message is sent in the body i.e.
#  EM:<severity>:<target>:<message>:<timestamp>
# When set to both the message is split i.e. the subject contains
#  EM:<severity>:<target>
# and the body contains
#  <message>:<timestamp>
# In all cases the message is truncated to the length specified in the
# em.notification.short_format_length parameter
# em.notification.short_format=both

13.1.2.2 通知スケジュールの設定

電子メール通知アドレスの定義が終了したら、通知スケジュールを定義する必要があります。たとえば電子メール・アドレスがuser1@oracle.com、user2@oracle.comおよびuser3@oracle.comの場合、通知スケジュールの各期間についてこれらの1つ以上のアドレスを使用することを選択できます。


注意:

初めて電子メール・アドレスを入力すると、24×7の週単位の通知スケジュールが自動的に設定されます。その後、監視要件に合せてスケジュールを再検討して変更できます。 


通知スケジュールとは、コール時スケジュール(Enterprise Managerにより通知の送信に使用される期間および電子メール・アドレス)を指定するときに使用する反復スケジュールです。各管理者には、通知スケジュールが1つのみ存在します。管理者に通知を送信する必要がある場合、Enterprise Managerにより管理者の通知スケジュールが参照され、使用する電子メール・アドレスが決定されます。スーパー管理者か、通常のEnterprise Manager管理者かによって、通知スケジュールを定義するプロセスは少し異なります。

通常のEnterprise Manager管理者が自分の通知スケジュールを定義する手順は、次のとおりです。
  1. Enterprise Manager Grid Controlで、ページの上部にある「プリファレンス」をクリックします。デフォルトでは「一般」ページが選択されます。

  2. 垂直ナビゲーション・バーで「通知スケジュール」をクリックします。「通知スケジュール」ページが表示されます。

  3. 「通知スケジュール」ページの指示に従い、電子メールを受け取る時刻を指定します。

13.1.2.3 通知ルールの電子メールを受信するためのサブスクライブ

通知ルールとは、アラート、ポリシー違反、修正処理の実行ステータス、およびジョブ実行ステータスに関する通知を送信する基準を定義する、ユーザー定義のルールです。具体的に各ルールでは、対象となる基準と、これらの通知の送信に使用する通知メソッド(電子メールなど)を指定できます。たとえば、データベースが停止した場合やデータベース・バックアップ・ジョブが失敗した場合に、電子メールが送信され、「ログ・トラブル・チケット」通知メソッドがコールされるようなルールを設定できます。もしくは、ホストのCPUまたはメモリー使用率がクリティカル重大度に達すると、SNMPトラップが他の管理コンソールに送信されるルールを定義することもできます。通知ルールの作成時に、対象とするターゲット、ターゲットの監視メトリック、関連付けるアラート重大度条件(消去、警告、クリティカル)、ポリシー違反、修正アクションの実行ステータス、ジョブ実行ステータスなどの基準を指定し、関連付ける通知メソッドを指定します。

ルールの作成時、作成した通知ルールにサブスクライブするには、「アクション」ページを表示し、「電子メールを送信」オプションを選択します。

即時利用可能な通知ルール

Enterprise Manager Grid Controlには、一般的なアラート条件のほとんどに対応する即時利用可能な通知ルールが付属しています。Oracle Management Serviceをインストールするとき、クリティカル・アラートに対する電子メール通知を受信するオプションを選択できます。このオプションを選択した場合、SYSMANユーザーの電子メール・アドレスが指定されていれば、
一般的なターゲット・タイプの可用性状態およびクリティカル状態に対応するデフォルトの通知ルールがいくつか作成され、通知ルールに定義された条件に対する電子メール通知がSYSMAN電子メール・アドレスに送信されるように構成されます。

即時利用可能な通知ルールにアクセスするには、Enterprise Managerコンソールで任意のページ上の「プリファレンス」をクリックし、垂直ナビゲーション・バーで「パブリック・ルール」をクリックします。即時利用可能な通知ルール内に定義されている条件が要件を満たしている場合は、「パブリック・ルール」表で、対象となる通知ルールに対応する行の「サブスクライブ」列をクリックするだけで、ルール内に定義されている条件に対する電子メール通知を受け取るようにサブスクライブできます。「適用」をクリックして、変更を保存します。

表13-1にすべてのデフォルト通知ルールを示します。これらのルールはすべてパブリック・ルールで、SYSMANユーザーが所有しています。

表13-1    デフォルト通知ルール 
名前  説明  適用対象となるターゲット・タイプ  通知送信時の可用性状態  アラート重大度がクリティカルの場合に通知が送信されるメトリック 

エージェントの
アップロードの問題 

管理サービスへのデータのアップロードに問題があるエージェントの監視に関する、システム生成の通知ルール 

Oracle Management ServiceおよびRepository 

該当なし 

データをアップロードしないターゲットの数 

エージェント使用不可 

ネットワーク上の問題、ホストの問題またはエージェントの停止のために管理サービスと接続できないエージェントの監視に関する、システム生成の通知ルール 

エージェント 

エージェント使用不可

エージェント使用不可解決 

該当なし 

Application Serverの
可用性とクリティカル状態 

Application Serverの可用性監視に関するシステム生成の通知ルールと、メトリックのクリティカル・ステータス 

Application Server 

停止中 

CPU使用率(%) 

データベースの可用性とクリティカル状態 

データベースの可用性監視に関するシステム生成の通知ルールと、メトリックのクリティカル・ステータス 

データベース(単一インスタンスのみ) 

停止中 

プロセス制限使用率(%)

セッション制限使用率(%)

ブロックしているセッション数: すべてのオブジェクト

アーカイバ・ハングのアラート・ログ・エラー・ステータス

データ・ブロック破損のアラート・ログ・エラー・ステータス

一般的なアラート・ログ・エラー・ステータス

メディア障害のアラート・ログ・エラーのステータス

セッション終了のアラート・ログ・エラー・ステータス

アーカイブ領域使用率(%): すべてのオブジェクト

拡張不可能なセグメント数: すべてのオブジェクト

最大エクステントに近づいているセグメント数: すべてのオブジェクト

表領域使用率(%): すべてのオブジェクト

待機時間(%) 

HTTP Serverの可用性とクリティカル状態 

HTTP Serverの可用性監視に関するシステム生成の通知ルールと、メトリックのクリティカル・ステータス 

Oracle HTTP Server 

停止中 

CPU使用率(%)

ビジー・プロセスの割合

アクティブなHTTP接続

リクエスト処理時間 

ホストの可用性と
クリティカル状態 

ホストの可用性監視に関するシステム生成の通知ルールと、メトリックのクリティカル・ステータス 

ホスト 

エージェント
使用不可

エージェント
使用不可解決

 

平均ディスクI/Oサービス時間(ミリ秒)

ディスク・デバイス・ビジー(%)

使用可能なファイルシステム領域(%)

I/O待機中のCPU使用率(%)

実行キューの長さ(5分平均)

CPU使用率(%)

メモリー使用率(%)

メモリー・ページ・
スキャン率/秒

スワップ使用率(%)

ネットワーク・インタフェース結合使用率(%) 

リスナー可用性 

データベース・リスナーの可用性監視に関するシステム生成の通知ルールと、メトリックのクリティカル・ステータス 

リスナー 

停止中 

該当なし 

構成ミスのある
エージェント 

構成ミスのあるエージェント向けにシステム生成された通知ルール 

エージェント 

エージェント使用不可

エージェント使用不可解決 

連続した重大度アップロード失敗数

連続したハートビート失敗数

OMSエージェントの時間誤差

連続したメタデータ・アップロード失敗数 

OC4Jの可用性と
クリティカル状態 

OC4Jインスタンスの可用性監視に関するシステム生成の通知ルールと、メトリックのクリティカル・ステータス 

OC4J 

停止中 

CPU使用率(%)

OC4Jインスタンス - リクエスト処理時間(秒)

OC4Jインスタンス - アクティブ・セッション 

OMSサービス
初期化エラー 

OMSサービス初期化エラーを監視するためにシステム生成された通知ルール 

OMSとリポジトリ 

該当なし 

サービス・ステータス 

PAFステータス通知 

プロビジョニング・アドバイザ・フレームワークのためにシステム生成された通知ルール: インスタンス作成者に、ステータス更新を通知 

該当なし 

稼働中

停止中

停止中の
ターゲットに
対する修正処理

エージェント
使用不可

エージェント
使用不可解決

メトリック・
エラー検出

メトリック・
エラー解決

ブラックアウト開始

ブラックアウト終了 

該当なし 

リポジトリ操作の
可用性 

管理リポジトリの一部であるDBMSジョブの可用性監視に関する、システム生成の通知ルール 

OMSとリポジトリ 

クリティカル 

DBMSジョブの稼働/停止 

データベース・
セキュリティ・
ポリシーに対する
違反通知 

データベース構成のセキュリティの監視に関するシステム生成の通知ルール 

データベース 

クリティカル 

該当なし 

Web Cacheの可用性とクリティカル状態 

Web Cacheのインスタンスの可用性監視に関するシステム生成の通知ルールと、メトリックのクリティカル・ステータス 

Oracle Web Cache 

停止中 

ヒット(全リクエストに占める割合)

Web Cache CPU使用率(%) 

独自の通知ルールの作成

デフォルト通知ルールがニーズに合わない場合は、独自のカスタム・ルールを定義できます。次の手順で、スーパー管理者でない管理者が通知ルールを作成するプロセスを説明します。

独自の通知ルールを作成するには、次のようにします。

  1. Enterprise Manager Grid Controlで「プリファレンス」をクリックします。

  2. 垂直ナビゲーション・バーで「ルール」をクリックします。

    スーパーユーザー権限を持つ管理者には「ルール」が表示されますが、スーパーユーザー権限を持つ管理者としてログインしていない場合は、「ルール」リンクが表示されます。

  3. 「作成」をクリックします。

    Enterprise Managerには、「通知ルールの作成」ページが表示されます。各ページで、通知ルールを作成するために必要な情報を入力します。

    通知ルール・プロパティを指定するとき、権限がない他のユーザーもそのルールを表示し共有できるようにするには、「一般」ページで「パブリックに設定」を選択します。たとえば、これによって他の管理者は、このルールに対する電子メールを受信するように後で指定できます。

    通知ルールの指定時には電子メールまたはSNMPトラップしか選択できません。カスタム・コマンドおよびPL/SQLプロシージャの指定は、スーパー管理者のみが使用できるオプションです。ルールに定義されている条件に対する電子メール通知を受け取るには、「アクション」ページを表示し、「電子メールを送信」オプションを選択します。

アラート期間の追加条件の指定

通知ルールに対して追加のアラート期間条件を設定し、このルールを、一定の期間オープンであり確認されていないアラートにのみ適用できます。これらの条件は、「停止中のターゲット」、「エージェント使用不可」、「メトリック・アラート」、「ポリシー違反」「ブラックアウト開始」、「メトリック・エラーの開始」の各アラートにのみ適用されます。

アラートの追加条件を使用する一般的なシナリオは次のとおりです。

アラート期間の追加条件を指定するには、次の手順を実行します。

  1. 通知ルールを作成、または編集します。追加のアラート条件は、「可用性」「メトリック」、または「ポリシー」タブから追加できます。

  2. これらのいずれかのタブから「追加のアラート条件」セクションに移動し、「追加」をクリックします。「追加のアラート条件」ページが表示されます。

  3. アラート期間の条件を指定し、「続行」をクリックします。

13.1.3 他の管理者用の電子メールの設定

スーパー管理者権限を持っている場合は、他のEnterprise Manager管理者の電子メール通知を設定できます。他のEnterprise Manager管理者の電子メール通知を設定するには、次の手順を実行する必要があります。

手順1: 各管理者アカウントに電子メール・アドレスが関連付けられていることの確認

電子メール通知の送信宛先の各管理者は、有効な電子メール・アドレスを持っている必要があります。

  1. 「設定」をクリックします。

  2. 垂直ナビゲーション・バーから「管理者」をクリックします。

  3. 管理者ごとに電子メール・アドレスを定義します。これにより、指定されたすべての電子メール・アドレスを使用するこのユーザーに対して24×7の通知スケジュールが設定されます。

Enterprise Managerでは、管理者の通知スケジュールを編集するときに管理者アドレスを指定することもできます。

手順2: 管理者の通知スケジュールの定義

各管理者の電子メール通知アドレスを定義し終わったら、それぞれの通知スケジュールを定義する必要があります。初めて電子メール・アドレスを指定したときはデフォルトの24×7の通知スケジュールが作成されますが、適宜、通知スケジュールを再検討して編集する必要があります。

  1. 「設定」をクリックします。

  2. 垂直ナビゲーション・バーで(「通知」から)「スケジュール」をクリックします。「通知スケジュール」ページが表示されます。

  3. 編集する通知スケジュールを所有する管理者を指定し、「変更」をクリックします。

  4. 「スケジュール定義の編集」をクリックします。「スケジュール定義の編集: 期間」ページが表示されます。必要な場合は、繰返しスケジュールを変更します。

  5. 「続行」をクリックします。「スケジュール定義の編集: 電子メール・アドレス」ページが表示されます。

  6. 「スケジュール定義の編集: 電子メール・アドレス」ページの指示に従い、通知スケジュールを変更します。

  7. 完了したら、「終了」をクリックします。

  8. 管理者ごとに手順3〜7を繰り返します。

手順3: 管理者への通知ルールの割当て

通知スケジュールを設定したら、次は指定した各管理者に適切な通知ルールを割り当てる必要があります。

  1. 「設定」をクリックします。

  2. 垂直ナビゲーション・バーから「管理者」をクリックします。

  3. 目的の管理者を選択します。

  4. 「ルールにサブスクライブ」をクリックします。「パブリック通知ルールへの管理者のサブスクライブ」ページが表示されます。

  5. 目的の通知ルールを選択し、「サブスクライブ」をクリックします。

  6. 完了したら、「OK」をクリックします。

  7. 管理者ごとに手順3〜6を繰り返します。

13.1.4 電子メールのカスタマイズ

Enterprise Managerでは、スーパー管理者は、4つのアラート・タイプ(「メトリック・アラート」、「ターゲット可用性」、「ポリシー違反」、および「ジョブ・ステータスの変更」)のグローバル電子メール通知をカスタマイズできます。スーパー管理者は、シンプルなスクリプトに含まれる、事前定義された(属性とラベルと呼ばれる)構成単位を使用し、多様な情報コンテンツの中からアラートの電子メールを選択してカスタマイズできます。

電子メールをカスタマイズするには、次の手順を実行します。

  1. 「電子メールのカスタマイズ」ページを開きます。「設定」→「電子メールのカスタマイズ」の順に選択します。

  2. 「アラート・タイプ」「書式」を選択します。

  3. 「編集」をクリックします。「電子メール・テンプレートの編集」ページが表示されます。

「電子メール・テンプレートの編集」ページでは、Enterprise Managerが電子メール通知を生成するために使用する、電子メール・テンプレートの内容を編集できます。組込みアシスタンスやオンライン・ヘルプによって、スクリプトの書式設定、構文、およびオプションに関する詳しい情報も提供されます。

図13-3    電子メールのカスタマイズ


画像の説明

13.1.4.1 電子メールのカスタマイズのリファレンス

次のリファレンスでは、電子メールを定義するために使用される疑似言語のセマンティクスとコンポーネント構文をまとめています。疑似言語は、電子メール通知をカスタマイズするためのシンプルかつ柔軟な方法を提供します。次に、疑似言語に関する規則と制限事項をまとめます。

予約語と演算子

次の表に、電子メールのスクリプトを変更する際に使用されるすべての予約語と演算子を示します。

表13-2    予約語と演算子 
予約語/演算子  説明 

IF、ELSIF、ENDIF、ELSE 

IF-ELSE構成で使用されます。 

AND、OR 

IF-ELSE構成でのみ使用されるブール演算子。 

NULL 

属性のNULL値をチェックするために、IF-ELSE構成でのみ使用されます。 

属性のリストで最初の非NULL値を示すために使用される、パイプ演算子。

次に例を示します。

METRIC_NAME|POLICY_NAME 

EQ、NEQ 

NULL、STRING、およびNUMERIC値に適用される、Equal(等しい)またはNot-Equal(等しくない)演算子。 

予約語と演算子をエスケープするために使用される、エスケープ文字。エスケープ文字とは、その後に続く文字は別の解釈がなされることを意味します。 

[、] 

属性名とIF句を囲むためのデリミタ。 

構文要素
リテラル・テキスト

電子メールの内容の一部としては、どのようなテキストでも指定できます。テキストは電子メールに表示され、Oracle Management Services(OMS)言語設定が変更されなければ翻訳されません。たとえば、生成された電子メールでは、「my Oracle Home」は「my Oracle Home」と表示されます。

事前定義された属性

事前定義された属性やラベルは、特定のコンテキストの実際の値に置換されます。事前定義された属性やラベルを指定するには、次の構文を使用します。

[PREDEFINED_ATTR]

属性名は、大文字か小文字のどちらかを使用できます。構文解析処理は大文字と小文字を区別します。

事前定義された属性とリテラル・テキストを区別するには、大カッコが使用されます。たとえば、ジョブの電子メール通知では、実際のジョブ名は[JOB_NAME]に置換されます。メトリック電子メール通知では、実際のメトリック列名は[METRIC_COLUMN]に置換されます。

エスケープ文字「/」を使用すると、単語を指定し、それを事前定義したラベルや属性として解釈させないこともできます。たとえば、/[NEW/]は、解析時には事前定義された属性[NEW]とみなされません。

演算子

EQ、NEQは、テキストと数値に使用されます。

NULLは、テキストと数値に使用されます。

GT、LT、GE、LEは、数値に使用されます。

制御構造

次の表に、使用可能なスクリプト制御構造を示します。

表13-3    制御構造 
制御構造  説明 

パイプ文字「|」 

2つ以上の属性は「|」文字で区切ることができます。次に例を示します。

[METRIC_NAME|POLICY_NAME]

この例では、電子メールでは、現在のアラート・コンテキスト内で該当する属性のみが(実際の値に置換されて)使用されます。1つ以上の属性が該当する場合は、左端の属性のみ使用されます。 

IF 

テキスト条件のブロックを作成できます。1レベルのIFとELSIFのみサポートされます。ネストされたIF構成はサポートされていません。

NULL値でEQ/NEQ演算子を使用することによって、すべての属性をIFまたはELSIF評価で使用できます。その他の演算子は、SEVERITYおよびREPEAT_COUNTでのみ使用可能です。

IFブロック内では、値は二重引用符「""」で囲む必要があります。Enterprise Managerは、EQとその他のキーワード(andやorなど)の位置に基づき、属性名と値を抽出します。次に例を示します。

[IF REPEAT_COUNT EQ "1" AND SEVERITY EQ "CRITICAL" THEN]

この文は、アラートの属性が次の条件と一致する場合に真となります。

  • 属性名: REPEAT_COUNT

  • 属性値: 1

  • 属性名: SEVERITY

  • 属性値: CRITICAL

IFブロックの例:

[IF JOB_NAME NEQ NULL]
[JOB_NAME_LABEL]=[JOB_NAME]
[JOB_OWNER_LABEL]=[JOB_OWNER]
[ENDIF]

[IF SEVERITY EQ CRITICAL ]
[MTRIC_NAME_LABEL]=[METRIC_NAME]
[METRIC_VALUE_LABEL]=[METRIC_VALUE]
[TARGET_NAME_LABEL]=[TARGET_NAME]
[KEY_VALUES]
[ENDIF]

IFおよびELSEIFブロックの例:

[IF SEVERITY EQ CRITICAL]
statement1

[ELSIF SEVERITY EQ WARNING]
statement2

[ELSIF SEVERITY EQ CLEAR]
statement3

[ELSE]
statement4

[ENDIF]
 
コメント

テキストの行頭にハイフンを「--」のように2つ付けることによって、スクリプトにコメントを追加できます。次に例を示します。

 -- Code added on 8/3/2009
     [IF REPEAT_COUNT NEQ NULL]
     . . . 

コメントは、テキストの行末に付けることもできます。

[IF SEVERITY_SHORT EQ W] -- for Warning alert
カスタマイズされたコンテンツ内のHTMLタグ

HTMLタグはサポートされていません。

Enterprise Managerが電子メール・スクリプトを解析する際、HTMLタグの「<」および「>」文字はエンコード形式(&lt;と&gt;)に変換されます。これにより、宛先システムでHTMLタグがHTMLとして処理されなくなります。

電子メールのカスタマイズ・テンプレート・スクリプトは3つの主な演算子をサポートしています。

13.2 電子メール以外の通知の設定

通知メソッドとは、アラートが送信される際のメカニズムを表します。Enterprise Managerのスーパー管理者は、電子メール通知メソッドを構成することで電子メール通知を設定できます。通常、この設定はOracle Management Serviceのインストールの一環としてすでに実行されています。

Enterprise Managerのスーパー管理者は他のカスタム通知メソッドを定義することもできます。たとえば、アラートをサード・パーティのトラブル・チケット・システムに転送する必要がある場合です。サード・パーティのトラブル・チケット・システムでAPIが有効であると想定し、適切なAPIを使用するカスタムOSスクリプトをコールするようにカスタム通知メソッドを作成できます。カスタム通知メソッドには、「ログ・トラブル・チケット」など、ユーザーがわかりやすい名前を付けられます。通知メソッドが一度定義されると、トラブル・チケット・システムへのアラートの送信が必要になった場合はいつでも、管理者は「ログ・トラブル・チケット」というグローバルに有効になった通知メソッドを起動するだけで送信できます。

カスタム通知メソッドは、あらゆるカスタムOSスクリプトまたはカスタムPL/SQLプロシージャに基づいて、もしくはSNMPトラップを送信することで定義できます。

「OSコマンド」、「PL/SQL」および「SNMPトラップ」の通知メソッドを定義できるのはスーパー管理者のみです。しかし、(スーパー管理者が定義した)これらの通知メソッドの通知ルールへの追加は、すべてのEnterprise Manager管理者が実行できます。

「通知メソッド」ページで次の処理を実行できます。

13.2.1 スクリプトとSNMPトラップを使用するカスタム通知メソッド

OSスクリプト、PL/SQLプロシージャまたはSNMPトラップに基づく他のカスタム通知メソッドを作成できます。すべての管理者はこれらのメソッドを通知ルールで使用できます。

13.2.1.1 OSコマンドまたはスクリプトに基づく通知メソッドの追加

OSコマンドまたはスクリプトに基づく通知メソッドを定義するには、次の4つの手順を実行します。


注意:

OSコマンドに基づく通知メソッドは、スーパー管理者権限を持つ管理者が構成する必要があります。 


手順1: OSコマンドまたはスクリプトの定義

通知システムでコールされるOSコマンドまたはスクリプトを指定できます。スクリプト本体で、ターゲットとアラートまたはポリシー違反のコンテキスト情報、修正処理の実行ステータス、およびジョブ実行ステータスを使用できます。メトリック重大度の属性(重大度のレベル、タイプ、通知ルール、ルール所有者など)またはポリシー違反情報をOSコマンドやOSスクリプトに渡すことで、アラートまたはポリシー違反に対する自動レスポンスをカスタマイズできます。たとえば、OSスクリプトで社内サポート用トラブル・チケット・システムに対するトラブル・チケットを開く場合、スクリプトに重大度レベル(クリティカル、警告など)を渡すことによって、該当する詳細とともにトラブル・チケットを開いて問題を提示できます。特定タイプの情報をOSコマンドまたはスクリプトに渡す方法の詳細は、次の各項を参照してください。

手順2: 各管理サービス・ホスト上へのスクリプトのデプロイ

管理リポジトリに接続する各管理サービス・ホスト・マシン上にOSコマンドまたはスクリプトをデプロイする必要があります。OSコマンドは管理サービスを起動したユーザーとして実行されます。

OSコマンドまたはスクリプトは、各管理サービス・ホスト・マシン上の同じ場所にデプロイする必要があります。OSコマンドは、たとえば/u1/bin/logSeverity.shのような絶対パスにする必要があります。このコマンドは、管理サービスを起動したユーザーが実行します。OSコマンドの実行中にエラーが発生した場合、終了コード100を返すことによってOSコマンドへの通知送信を再試行するように、通知システムを設定できます。プロシージャの再試行は、最初は1分後、次に2分後、その次は3分後というように行われ、通知の存続期間が1日に達すると、その通知はパージされます。

例13-5には、管理サービスにより中断されることなくOSコマンドが実行される期間を制御する、emoms.propertiesのパラメータが示されています。これによって、OSコマンドが過度に長い時間実行されるため他の通知の転送を妨げることが回避できます。デフォルトでは、コマンドは中断されるまで30秒間実行できます。

例13-5    emoms.propertiesファイルのパラメータ

# The amount of time in seconds after which an OS Command started by the
# Notification System will be killed if it has not exited
# em.notification.os_cmd_timeout=30
手順3: OSコマンドまたはスクリプトを新規の通知メソッドとして登録

このOSコマンドを通知ルールでコールできる通知メソッドとして追加します。スーパー管理者としてログインし、垂直ナビゲーション・バーから「設定」をクリックし、「通知メソッド」をクリックします。このページから、OSコマンド・タイプに基づく新規の通知を定義できます。「OSコマンドまたはスクリプトに基づく通知メソッドの追加」を参照してください。

各OSコマンドの通知メソッドには次の情報が必要です。

「OSコマンド」フィールドには、OSコマンドまたはスクリプトのフルパス(例: /u1/bin/myscript.sh)を入力する必要があります。複数の管理サービスがある環境では、管理サービスが存在する各マシン上のパスとまったく同じパスを入力します。コマンドライン・パラメータはフルパスの後ろに追加できます(例: /u1/bin/myscript.sh arg1 arg2)。

例13-6は、通知メソッドに必要な情報を示しています。

例13-6    OSコマンド通知メソッド

Name Trouble Ticketing
Description Notification method to log trouble ticket for a severity occurrence
OS Command /private/mozart/bin/logTicket.sh


注意:

システムには複数のOSコマンドが構成されている場合があります。 


手順4: 通知メソッドのルールへの割当て

既存のルールを編集(または新規の通知ルールを作成)してから、「メソッド」ページを表示できます。「拡張通知メソッド」のリストで通知メソッドを選択し、「ルールへのメソッドの割当て」をクリックします。複数のルールを1つのメソッドに割り当てる場合は「ルールのメソッドへの割当て」を、複数のメソッドを1つのルールに割り当てる場合は
「メソッドのルールへの割当て」を参照してください。

アラートおよびポリシー違反情報のOSコマンドまたはスクリプトへの受渡し

通知システムは、システム環境変数を介してOSスクリプトまたは実行可能ファイルに重大度情報を渡します。

環境変数へのアクセスに使用される表記規則は、オペレーティング・システムによって異なります。

通知システムは、スクリプトをコールする前に次の環境変数を設定します。スクリプトはスクリプト・ロジック内でこれらの変数の一部またはすべてを使用します。

表13-4    環境変数 
環境変数  説明 

TARGET_NAME 

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

TARGET_TYPE 

重大度が発生したターゲットのタイプ。ターゲットは、監視可能なエンティティ(たとえば、「ホスト」、「データベース」、「リスナー」、「Oracle HTTP Server」など)として定義されます。監視対象ターゲットのタイプは、「すべてのターゲット」ページに表示されます。  

HOST 

ターゲットが存在するマシンの名前。 

METRIC 

重大度を生成しているメトリック。この変数は、ポリシー違反に対しては設定されません。 

METRIC_VALUE 

しきい値を超えたときのメトリックの値。ポリシー違反に対しては設定されません。 

POLICY_RULE 

しきい値を超えたときのポリシーの名前。メトリック重大度に対しては設定されません。 

KEY_VALUE 

一連のオブジェクトを監視するメトリックの場合、KEY_VALUEは重大度をトリガーした特定のオブジェクトを表します。たとえば表領域オブジェクトを監視する表領域使用率(%)メトリックの場合、USERS表領域が警告またはクリティカル重大度をトリガーしたときKEY_VALUEはUSERSです。 

KEY_VALUE_NAME 

一連のオブジェクトを監視するメトリックの場合、
KEY_VALUE_NAMEは監視されるオブジェクトのタイプを表します。たとえば表領域オブジェクトを監視する表領域使用率(%)メトリックの場合、KEY_VALUE_NAMEは表領域名です。  

VIOLATION_CONTEXT 

ポリシー違反のアラート・コンテキストを示す、名前と値が対になったカンマ区切りリスト。 

TIMESTAMP 

重大度が発生した時刻。 

SEVERITY 

重大度のタイプ。たとえば、ターゲットの(可用性)ステータス・メトリックの重大度は次のとおりです。

  • UP

  • DOWN

  • UNREACHABLE CLEAR

  • UNREACHABLE START

  • BLACKOUT END

  • BLACKOUT START

他のメトリックは次のいずれかの重大度タイプとなります。

  • WARNING

  • CRITICAL

  • CLEAR

  • METRIC ERROR CLEAR

  • METRIC ERROR START

 

MESSAGE 

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

RULE_NAME 

「OSコマンド」通知メソッドが割り当てられた通知ルールの名前。 

RULE_OWNER 

通知ルールを所有するEnterprise Manager管理者の名前。 

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

例13-7に示すOSスクリプトの例では、ログ・ファイルに環境変数エントリが付加されています。この例のスクリプトでは、ファイル・サーバーの重大度の発生が記録されます。ファイル・サーバーに接続できない場合、終了コード100が返され、Oracle Management Service通知システムで通知が再試行されます。

例13-7    OSコマンド・スクリプトの例

#!/bin/ksh

LOG_FILE=/net/myhost/logs/severity.log
if test -f $LOG_FILE
then
echo $TARGET_NAME $MESSAGE $TIMESTAMP >> $LOG_FILE
else
   exit 100
fi

例13-8には、alertmsg.txtファイルにアラート情報を記録するOSスクリプトが示されています。ファイルは/u1/resultsディレクトリに保存されます。

例13-8    アラート・ロギング・スクリプト

#!/usr/bin/sh
echo "Alert logged:" > /u1/results/alertmsg.txt
echo "\n" >> /u1/results/alertmsg.txt
echo "target name is " $TARGET_NAME >> /u1/results/alertmsg.txt
echo "target type is " $TARGET_TYPE >> /u1/results/alertmsg.txt
echo "target is on host " $HOST >> /u1/results/alertmsg.txt
echo "metric in alert is " $METRIC >> /u1/results/alertmsg.txt
echo "metric index is " $KEY_VALUE >> /u1/results/alertmsg.txt
echo "timestamp is " $TIMESTAMP >> /u1/results/alertmsg.txt
echo "severity is " $SEVERITY >> /u1/results/alertmsg.txt
echo "message is " $MESSAGE >> /u1/results/alertmsg.txt
echo "notification rule is " $RULE_NAME >> /u1/results/alertmsg.txt
echo "rule owner is " $RULE_OWNER >> /u1/results/alertmsg.txt
exit 0

例13-9には、Enterprise Manager Grid ControlからHP OpenViewコンソールにアラートを送信するスクリプトが示されています。メトリック・アラートがトリガーされるとEnterprise Manager Grid Controlではアラートが表示されます。次にHP OpenViewスクリプトがコールされ、opcmsgを起動しHP OpenView管理サーバーに情報を転送します。

例13-9    HP OpenViewスクリプト

/opt/OV/bin/OpC/opcmsg severity="$SEVERITY" app=OEM msg_grp=Oracle 
msg_text="$MESSAGE" object="$TARGET"

13.2.1.2 PL/SQLプロシージャに基づく通知メソッドの追加

PL/SQLプロシージャに基づく通知メソッドを定義するには、次の4つの手順を実行します。

手順1: PL/SQLプロシージャの定義

受け取られる通知のタイプに応じて、プロシージャには次のうち1つのシグネチャを含める必要があります。

アラートおよびポリシー違反の場合:

PROCEDURE p(severity IN MGMT_NOTIFY_SEVERITY)

ジョブ実行ステータス変更の場合:

PROCEDURE p(job_status_change IN MGMT_NOTIFY_JOB)

修正処理ステータス変更の場合:

PROCEDURE p(ca_status_change IN MGMT_NOTIFY_CORRECTIVE_ACTION)


注意:

ユーザーが通知ルールの作成または編集時に通知メソッドを選択するには、スーパー管理者権限を持つ管理者が、PL/SQLプロシージャに基づく通知メソッドをあらかじめ構成しておく必要があります。 


特定タイプの情報をスクリプトまたはPL/SQLプロシージャに渡す方法の詳細は、次の各項を参照してください。

手順2: 管理リポジトリ上でのPL/SQLプロシージャの作成

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

PROCEDURE p(severity IN MGMT_NOTIFY_SEVERITY)
PROCEDURE p(job_status_change IN MGMT_NOTIFY_JOB)
PROCEDURE p(ca_status_change IN MGMT_NOTIFY_CORRECTIVE_ACTION)

PL/SQLプロシージャは、(SYSMANなどの)リポジトリ所有者のデータベース・アカウントを使用してリポジトリ・データベース上に作成する必要があります。

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

手順3: PL/SQLプロシージャを新規の通知メソッドとして登録

スーパー管理者としてログインし、垂直ナビゲーション・バーから「設定」をクリックし、「通知メソッド」をクリックします。このページから、PL/SQLプロシージャに基づく新規の通知を定義できます。「PL/SQLプロシージャに基づく通知メソッドの追加」を参照してください。

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

PL/SQLプロシージャに基づく通知メソッドを作成します。メソッドの定義には次の情報が必要です。

完全修飾プロシージャ名(OWNER.PKGNAME.PROCNAMEなど)を入力し、管理リポジトリの所有者がプロシージャの実行権限を持つようにする必要があります。

例13-10は必要な情報の例です。

例13-10    PL/SQLプロシージャの必要情報

Name Open trouble ticket
Description Notification method to open a trouble ticket in the event
PLSQL Procedure ticket_sys.ticket_ops.open_ticket
手順4: 通知メソッドのルールへの割当て

既存のルールを編集(または新規の通知ルールを作成)してから、「メソッド」ページを表示できます。「拡張通知メソッド」のリストで通知メソッドを選択し、「ルールへのメソッドの割当て」をクリックします。複数のルールを1つのメソッドに割り当てる場合は「ルールのメソッドへの割当て」を、複数のメソッドを1つのルールに割り当てる場合は
「メソッドのルールへの割当て」を参照してください。

Enterprise Manager環境には複数のPL/SQLベースのメソッドが構成されている場合があります。

ターゲットの可用性に関連する重大度のタイプと、メトリック重大度およびポリシー違反の情報がPL/SQLプロシージャに渡される方法については、次の項で説明しています。

PL/SQLプロシージャへのアラートおよびポリシー違反情報の受渡し

メトリック重大度の属性(重大度のレベル、タイプ、通知ルール、ルール所有者など)またはポリシー違反情報をPL/SQLプロシージャに渡すことで、アラートまたはポリシー違反に対する自動レスポンスをカスタマイズできます。

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

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

表13-5    メトリック重大度属性 
属性  データ型  追加情報 

TARGET_NAME 

VARCHAR2(256) 

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

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 

VARCHAR2(1290) 

一連のオブジェクトを監視するメトリックの場合、KEY_VALUEは重大度をトリガーした特定のオブジェクトを表します。たとえば表領域オブジェクトを監視する表領域使用率(%)メトリックの場合、USERS表領域が警告またはクリティカル重大度をトリガーしたとき
KEY_VALUEはUSERSです。 

KEY_VALUE_NAME 

VARCHAR2(512) 

一連のオブジェクトを監視するメトリックの場合、KEY_VALUE_NAMEは監視されるオブジェクトのタイプを表します。たとえば表領域オブジェクトを監視する表領域使用率(%)メトリックの場合、KEY_VALUE_NAMEは表領域名です。 

KEY_VALUE_GUID 

VARCHAR2(256) 

コンポジット・キー値の名前に関連付けられているGUID。 

CTXT_LIST 

MGMT_NOTIFY_COLUMNS 

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

COLLECTION_TIMESTAMP 

DATE 

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

SEVERITY_CODE 

NUMBER 

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

MESSAGE 

VARCHAR2(4000) 

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

SEVERITY_GUID 

RAW(16) 

重大度のGlobal Unique Identifier。 

METRIC_GUID 

RAW(16) 

メトリックのGlobal Unique Identifier。 

TARGET_GUID 

RAW(16) 

ターゲットのGlobal Unique Identifier。 

RULE_OWNER 

VARCHAR2(64) 

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

RULE_NAME 

VARCHAR2(132) 

重大度の発生に起因する通知ルールの名前。 

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

表13-6    重大度コード 
名前  データ型   

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 

例13-11    重大度コードを使用したPL/SQLプロシージャ

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

PROCEDURE LOG_CRITICAL_ALERTS(severity IN MGMT_NOTIFY_SEVERITY)
IS
BEGIN
-- Log all critical severities
   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
   -- If there are any problems then get the notification retried
   RAISE_APPLICATION_ERROR(-20000, 'Please retry');
  END;
  COMMIT;
   END IF;
END LOG_CRITICAL_ALERTS;

13.2.1.3 SNMPトラップに基づく通知メソッドの追加

Enterprise Managerは、SNMPを介したサード・パーティ管理ツールとの統合をサポートしています。たとえば、SNMPを使用して、選択済メトリックがしきい値を超えていることをサード・パーティ・アプリケーションに通知できます。

このトラップはSNMPバージョン1のトラップであり、この章の最後にMIB定義に関連して説明があります。「管理情報ベース(MIB)」を参照してください。

総合的な構成情報の詳細は、プラットフォーム固有のドキュメントを参照してください。SNMP構成はプラットフォームごとに異なります。


注意:

ユーザーが通知ルールの作成または編集時に1つ以上のSNMPトラップ通知メソッドを選択するには、スーパー管理者権限を持つ管理者が、SNMPトラップに基づく通知メソッドをあらかじめ構成しておく必要があります。 


手順1: SNMPトラップに基づく新規の通知メソッドの定義

スーパー管理者としてEnterprise Managerにログインします。垂直ナビゲーション・バーから「設定」をクリックし、「通知メソッド」をクリックして「通知メソッド」ページにアクセスします。このページから、SNMPトラップに基づく新規のメソッドを追加できます。

SNMPマスター・エージェントが実行されているホスト(マシン)の名前およびその他の詳細を、次の例のように指定する必要があります。例13-12では、SNMPホストがユーザーのSNMPトラップを受信します。

例13-12    SNMPトラップの必要情報

Name HP OpenView Console
Description Notification method to send trap to HP OpenView console
SNMP Trap Host Name machine1.us.oracle.com
SNMP Host Port 162
SNMP Community public
This SNMP host will receive your SNMP traps.


注意:

設定をテストするための「SNMPトラップのテスト」ボタンがあります。 


メトリック重大度情報は、SNMPトラップ内で一連の変数として渡されます。

例13-13はSNMPトラップの例です。情報の各断片は、SNMPトラップに変数として組み込まれて送信されます。

例13-13    SNMPトラップ

Tue Oct 28 05:00:02 2006

Command: 4
   Enterprise: 1.3.6.1.4.1.111.15.2
   Agent: 138.1.6.200
   Generic Trap: 6
   Specific Trap: 1
   Time Stamp: 8464:39.99
   Count: 11

Name: 1.3.6.1.4.1.111.15.1.1.1.2.1
   Kind: OctetString
   Value: "mydatabase"

Name: 1.3.6.1.4.1.111.15.1.1.1.3.1
   Kind: OctetString
   Value: "Database"

Name: 1.3.6.1.4.1.111.15.1.1.1.4.1
  Kind: OctetString
  Value: "myhost.com"

Name: 1.3.6.1.4.1.111.15.1.1.1.5.1
   Kind: OctetString
   Value: "Owner's Invalid Object Count"

Name: 1.3.6.1.4.1.111.15.1.1.1.6.1
   Kind: OctetString
   Value: "Invalid Object Owner"

Name: 1.3.6.1.4.1.111.15.1.1.1.7.1
   Kind: OctetString
   Value: "SYS"

Name: 1.3.6.1.4.1.111.15.1.1.1.8.1
   Kind: OctetString
   Value: "28-OCT-2006 04:59:10 (US/Eastern GMT)"

Name: 1.3.6.1.4.1.111.15.1.1.1.9.1
   Kind: OctetString
   Value: "Warning"

Name: 1.3.6.1.4.1.111.15.1.1.1.10.1
   Kind: OctetString
   Value: "12 object(s) are invalid in the SYS schema."

Name: 1.3.6.1.4.1.111.15.1.1.1.11.1
   Kind: OctetString
   Value: "Database Metrics"

Name: 1.3.6.1.4.1.111.15.1.1.1.12.1
   Kind: OctetString
   Value: "SYSMAN"
手順2: 通知メソッドのルールへの割当て

既存のルールを編集(または新規の通知ルールを作成)してから、「メソッド」ページを表示できます。「拡張通知メソッド」のリストで通知メソッドを選択し、「ルールへのメソッドの割当て」をクリックします。複数のルールを1つのメソッドに割り当てる場合は「ルールのメソッドへの割当て」を、複数のメソッドを1つのルールに割り当てる場合は
「メソッドのルールへの割当て」を参照してください。

13.3 修正処理ステータス変更情報の受渡し

修正処理ステータス変更属性(新規ステータス、ジョブ名、ジョブ・タイプ、通知ルール、ルール所有者など)をPL/SQLプロシージャまたはOSコマンドやスクリプトに渡すことで、ステータス変更に対する自動レスポンスをカスタマイズできます。たとえば、クリティカルな修正処理の実行が失敗した場合に、OSスクリプトをコールして、社内サポート用トラブル・チケット・システムに対するトラブル・チケットを開くとします。この場合、ステータス(「問題」や「中断」など)をスクリプトに渡してトラブル・チケットを開き、問題を提示します。

13.3.1 OSコマンドまたはスクリプトへの修正処理実行ステータスの受渡し

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

通知システムは、スクリプトをコールする前に次の環境変数を設定します。スクリプトはスクリプト・ロジック内でこれらの変数の一部またはすべてを使用します。

表13-7    環境変数 
環境変数  説明 

JOB_NAME 

修正処理の名前。 

JOB_OWNER 

修正処理の所有者。 

JOB_TYPE 

修正処理のタイプ。 

JOB_STATUS 

修正処理のステータス。 

TIMESTAMP 

重大度が発生した時刻。 

NUM_TARGETS 

ターゲット数。 

TARGET_NAMEn 

修正処理を実行するn番目のターゲットの名前。
例: TARGET_NAME1、TARGET_NAME2。 

METRIC 

修正処理の実行を誘発したアラート内のメトリックの名前。ポリシー違反に対しては設定されません。 

POLICY_RULE 

修正処理の実行を誘発したアラート内のポリシー・ルールの名前。メトリック重大度に対しては設定されません。 

METRIC_VALUE 

修正処理の実行を誘発したアラート内のメトリック列の値。 

VIOLATION_CONTEXT 

ポリシー違反コンテキストを示す、名前と値が対になったカンマ区切りリスト。 

KEY_VALUE_NAME 

一連のオブジェクトを監視するメトリックの場合、
KEY_VALUE_NAMEは監視されるオブジェクトのタイプを表します。たとえば表領域オブジェクトを監視する表領域使用率(%)メトリックの場合、KEY_VALUE_NAMEは表領域名です。  

KEY_VALUE 

一連のオブジェクトを監視するメトリックの場合、KEY_VALUEは重大度をトリガーした特定のオブジェクトを表します。たとえば表領域オブジェクトを監視する表領域使用率(%)メトリックの場合、USERS表領域が警告またはクリティカル重大度をトリガーしたときKEY_VALUEはUSERSです。 

SEVERITY 

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

  • UP

  • DOWN

  • UNREACHABLE CLEAR

  • UNREACHABLE START

  • BLACKOUT END

  • BLACKOUT START

他のメトリックは次のいずれかの重大度タイプとなります。

  • WARNING

  • CRITICAL

  • CLEAR

  • METRIC ERROR CLEAR

  • METRIC ERROR START

 

RULE_NAME 

修正処理の実行に起因する通知ルールの名前。 

RULE_OWNER 

通知ルールを所有するEnterprise Manager管理者の名前。 

13.3.2 PL/SQLプロシージャへの修正処理実行ステータスの受渡し

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

表13-8に、受渡し可能なすべての修正処理ステータス変更属性を示します。

表13-8    修正処理ステータス属性 
属性  データ型  追加情報 

JOB_NAME 

VARCHAR2(128) 

修正処理の名前。 

JOB_OWNER 

VARCHAR(256) 

修正処理の所有者。 

JOB_TYPE 

VARCHAR2(32) 

修正処理のタイプ。 

JOB_STATUS 

NUMBER 

修正処理の新規ステータス。可能性のあるステータス条件のリストは、表13-9「修正処理ステータス・コード」を参照してください。 

STATE_CHANGE_GUID 

RAW(16) 

状態変更レコードのGUID。 

JOB_GUID 

RAW(16) 

修正処理の一意のID。 

EXECUTION_ID 

RAW(16) 

修正処理実行の一意のID。 

TARGETS 

SMP_EMD_NVPAIR_ARRAY 

修正処理が実行されるターゲット名とターゲット・タイプが対になった配列。 

METRIC_NAME 

VARCHAR2(256) 

修正処理の実行を誘発したアラート内のメトリック/ポリシー・ルールの名前。 

METRIC_COLUMN 

VARCHAR2(64) 

修正処理の実行を誘発したアラート内のメトリックの名前。これは、ポリシー違反に対しては使用されません。 

METRIC_VALUE 

VARCHAR2(1024) 

修正処理の実行を誘発したアラート内のメトリックの値。 

SEVERITY_CODE 

NUMBER 

修正処理の実行を誘発したアラートの重大度コード。表13-6「重大度コード」を参照してください。 

KEY_VALUE_NAME 

VARCHAR2(512) 

一連のオブジェクトを監視するメトリックの場合、KEY_VALUE_NAMEは監視されるオブジェクトのタイプを表します。たとえば表領域オブジェクトを監視する表領域使用率(%)メトリックの場合、KEY_VALUE_NAMEは表領域名です。 

KEY_VALUE 

VARCHAR2(1290) 

表メトリックの場合、この列には、しきい値が定義されている表内の行に対するキー列の値が含まれます。しきい値が表メトリックに対応していない場合、またはメトリック列内のすべての行にしきい値が適用される場合、この列の値には空白1つが含まれます。 

KEY_VALUE_GUID 

RAW(16) 

コンポジット・キー値の名前に関連付けられているGUID。 

CTXT_LIST 

MGMT_NOTIFY_COLUMNS 

修正処理ステータス変更コンテキストの詳細。 

RULE_OWNER 

VARCHAR2(64) 

PL/SQL通知の送信を誘発した通知ルールの所有者。 

RULE_NAME 

VARCHAR2(132) 

PL/SQL通知メソッドの起動を誘発した通知ルールの名前。 

OCCURRED_DATE 

DATE 

ステータス変更が発生した日時。 

次のステータス・コードは、MGMT_NOTIFY_CORRECTIVE_ACTIONオブジェクトの
job_statusフィールドに使用可能な値です。

表13-9    修正処理ステータス・コード 
名前  データ型   

SCHEDULED_STATUS 

NUMBER(2) 

EXECUTING_STATUS 

NUMBER(2) 

ABORTED_STATUS 

NUMBER(2) 

FAILED_STATUS 

NUMBER(2) 

COMPLETED_STATUS 

NUMBER(2) 

SUSPENDED_STATUS 

NUMBER(2) 

AGENTDOWN_STATUS 

NUMBER(2) 

STOPPED_STATUS 

NUMBER(2) 

SUSPENDED_LOCK_STATUS 

NUMBER(2) 

SUSPENDED_EVENT_STATUS 

NUMBER(2) 

10 

SUSPENDED_BLACKOUT_STATUS 

NUMBER(2) 

11 

STOP_PENDING_STATUS 

NUMBER(2) 

12 

SUSPEND_PENDING_STATUS 

NUMBER(2) 

13 

INACTIVE_STATUS 

NUMBER(2) 

14 

QUEUED_STATUS 

NUMBER(2) 

15 

FAILED_RETRIED_STATUS 

NUMBER(2) 

16 

WAITING_STATUS 

NUMBER(2) 

17 

SKIPPED_STATUS 

NUMBER(2) 

18 

REASSIGNED_STATUS 

NUMBER(2) 

20 

例13-14    ステータス・コードを使用したPL/SQLプロシージャ

CREATE TABLE ca_log (jobid RAW(16),
      occured DATE);

CREATE OR REPLACE PROCEDURE LOG_PROBLEM_CAS(status_change IN MGMT_NOTIFY_CORRECTIVE_
ACTION)
IS
BEGIN
-- Log all failed corrective actions
   IF status_change.job_status = MGMT_JOBS.FAILED_STATUS
   THEN
   BEGIN
   INSERT INTO ca_log (jobid, occured)
   VALUES (status_change.job_guid, SYSDATE);
   EXCEPTION
   WHEN OTHERS
   THEN
   -- If there are any problems then get the notification retried
   RAISE_APPLICATION_ERROR(-20000, 'Please retry');
  END;
  COMMIT;
   END IF;
END LOG_PROBLEM_CAS;

13.4 ジョブ実行ステータス情報の受渡し

ジョブ・ステータス変更属性(新規ステータス、ジョブ名、ジョブ・タイプ、通知ルール、ルール所有者など)をPL/SQLプロシージャまたはOSコマンドやスクリプトに渡すことで、ステータス変更に対する自動レスポンスをカスタマイズできます。たとえば、クリティカルなジョブの実行が失敗した場合に、OSスクリプトをコールして、社内サポート用トラブル・チケット・システムに対するトラブル・チケットを開くとします。この場合、ステータス(「問題」や「中断」など)をスクリプトに渡してトラブル・チケットを開き、問題を提示します。

13.4.1 PL/SQLプロシージャへのジョブ実行ステータスの受渡し

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

表13-10に、受渡し可能なすべてのジョブ・ステータス属性を示します。

表13-10    ジョブ・ステータス属性 
属性  データ型  追加情報 

job_name 

VARCHAR2(128) 

ジョブ名 

job_owner 

VARCHAR2(256) 

ジョブの所有者 

job_type 

VARCHAR2(32) 

ジョブのタイプ 

job_status 

NUMBER 

ジョブの新規ステータス 

state_change_guid  

RAW(16) 

状態変更レコードのGUID 

job_guid 

RAW(16) 

ジョブの一意のID 

execution_id 

RAW(16) 

実行の一意のID 

targets 

SMP_EMD_NVPAIR_ARRAY 

ジョブが実行されるターゲット名とターゲット・タイプが対になった配列 

rule_owner 

VARCHAR2(64) 

通知の送信を誘発する通知ルールの名前 

rule_name 

VARCHAR2(132) 

通知の送信を誘発する通知ルールの所有者 

occurred_date 

DATE 

ステータス変更が発生した日時 

ジョブのステータス変更が発生すると、通知システムはMGMT_NOTIFY_JOBオブジェクトのインスタンスを作成し、ステータス変更の値を移入します。次のステータス・コードはMGMT_JOBSパッケージの定数として定義されています。これらのコードを使用すると、MGMT_NOTIFY_JOBオブジェクトのjob_statusフィールドのステータス・タイプを判別できます。

表13-11    ジョブ・ステータス・コード 
名前  データ型   

SCHEDULED_STATUS 

NUMBER(2) 

EXECUTING_STATUS 

NUMBER(2) 

ABORTED_STATUS 

NUMBER(2) 

FAILED_STATUS 

NUMBER(2) 

COMPLETED_STATUS 

NUMBER(2) 

SUSPENDED_STATUS 

NUMBER(2) 

AGENTDOWN_STATUS 

NUMBER(2) 

STOPPED_STATUS 

NUMBER(2) 

SUSPENDED_LOCK_STATUS 

NUMBER(2) 

SUSPENDED_EVENT_STATUS 

NUMBER(2) 

10 

SUSPENDED_BLACKOUT_STATUS 

NUMBER(2) 

11 

STOP_PENDING_STATUS 

NUMBER(2) 

12 

SUSPEND_PENDING_STATUS 

NUMBER(2) 

13 

INACTIVE_STATUS 

NUMBER(2) 

14 

QUEUED_STATUS 

NUMBER(2) 

15 

FAILED_RETRIED_STATUS 

NUMBER(2) 

16 

WAITING_STATUS 

NUMBER(2) 

17 

SKIPPED_STATUS 

NUMBER(2) 

18 

REASSIGNED_STATUS 

NUMBER(2) 

20 

例13-15    ステータス・コード(ジョブ)を使用したPL/SQLプロシージャ

CREATE TABLE job_log (jobid RAW(16),
      occured DATE);

CREATE OR REPLACE PROCEDURE LOG_PROBLEM_JOBS(status_change IN MGMT_NOTIFY_JOB)
IS
BEGIN
-- Log all failed jobs
   IF status_change.job_status = MGMT_JOBS.FAILED_STATUS
   THEN
   BEGIN
   INSERT INTO job_log (jobid, occured)
   VALUES (status_change.job_guid, SYSDATE);
   EXCEPTION
   WHEN OTHERS
   THEN
   -- If there are any problems then get the notification retried
   RAISE_APPLICATION_ERROR(-20000, 'Please retry');
  END;
  COMMIT;
   END IF;
END LOG_PROBLEM_JOBS;

13.4.2 OSコマンドまたはスクリプトへのジョブ実行ステータスの受渡し

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

通知システムは、スクリプトをコールする前に次の環境変数を設定します。スクリプトはスクリプト・ロジック内でこれらの変数の一部またはすべてを使用します。

表13-12    環境変数 
環境変数  説明 

JOB_NAME 

ジョブの名前。 

JOB_OWNER 

ジョブの所有者。 

JOB_TYPE 

ジョブのタイプ。 

JOB_STATUS 

ジョブのステータス。 

TIMESTAMP 

重大度が発生した時刻。 

NUM_TARGETS 

ターゲット数。 

TARGET_NAMEn 

n番目のターゲットの名前。たとえば、TARGET_NAME1、TARGET_NAME2など。 

TARGET_TYPEn 

n番目のターゲットのタイプ。たとえば、TARGET_TYPE1、TARGET_TYPE2など。 

RULE_NAME 

重大度の発生に起因する通知ルールの名前。 

RULE_OWNER 

通知ルールを所有するEnterprise Manager管理者の名前。 

13.5 ユーザー定義ターゲット・プロパティの通知メソッドへの受渡し

Enterprise Managerでは、ターゲット・プロパティ(ターゲットのホーム・ページの「関連リンク」からアクセス可能)を定義できます。ここには、ターゲット固有の環境情報や使用コンテキスト情報を保存できます。ターゲット・プロパティ値をカスタム通知メソッドに渡すと、条件ロジックによって処理されるか、チケット・システムなどのサード・パーティのデバイスに、追加のアラート情報として渡されます。デフォルトでは、Enterprise Managerは定義されたすべてのターゲット・プロパティを通知メソッドに渡します。


注意:

短い書式の電子メールが使用される場合は、ターゲット・プロパティは通知メソッドに渡されません。 


図13-4    ホスト・ターゲット・プロパティ


画像の説明

13.6 メソッドのルールへの割当て

通知ルールごとに、通知ルール内の基準に合致したときにコールされる1つ以上の通知メソッドを割り当てることができます。

  1. Enterprise Manager Grid Controlで、ページの上部にある「プリファレンス」をクリックします。

  2. 垂直ナビゲーション・バーで「通知ルール」をクリックします。

    Enterprise Manager Grid Controlには「通知ルール」ページが表示されます。すでに作成済の通知ルールはすべて「通知ルール」表に一覧表示されます。

  3. 「複数ルールへのメソッドの割当て」をクリックします。

  4. 割当てを実行します。

    図13-5    メソッドのルールへの割当て


    画像の説明

13.7 ルールのメソッドへの割当て

各通知メソッドについて、通知の送信にそのメソッドを使用する通知ルールを1つ以上関連付けられます。

  1. Enterprise Manager Grid Controlで、ページの上部にある「プリファレンス」をクリックします。

  2. 垂直ナビゲーション・バーで「通知ルール」をクリックします。

    Enterprise Manager Grid Controlには「通知ルール」ページが表示されます。すでに作成済の通知ルールはすべて「通知ルール」表に一覧表示されます。

  3. 「複数ルールへのメソッドの割当て」をクリックします。

  4. 「表示」メニューから「メソッド」を選択します。

  5. 割当てを実行します。

    図13-6    ルールのメソッドへの割当て


    画像の説明

13.8 通知カバレッジ

アラートがトリガーされても、その条件を含む通知ルールがないために管理者に通知されないといったケースを減らすため、Enterprise Manager ReportシステムのInformation Publisherを使用できます。これを使用すると、各ターゲットの監視対象となるメトリックと、関連する通知ルールを表示できます。Information Publisherは、そのために作成された即時利用可能レポートを提供します。このレポートは、「レポート定義」ページ(「レポート」タブ)から実行できます。「監視」→「アラートおよびポリシー違反」→「メトリック・アラートと可用性の通知ルール・カバレッジ(ターゲット)」の順に選択します。

13.9 管理情報ベース(MIB)

Enterprise Manager Grid Controlは、サード・パーティのSNMP対応アプリケーションにSNMPトラップを送信できます。トラップ・コンテンツの詳細は、管理情報ベース(MIB)変数から取得できます。次の項では、Enterprise ManagerのMIB変数を詳しく説明します。

13.9.1 MIBについて

MIBはASN.1規則で記述されたテキスト・ファイルで、SNMPがアクセス可能な情報を含む変数が記述されています。MIBオブジェクトとも呼ばれる、MIBに記述された変数は、SNMPを使用して監視できます。監視対象の各要素について1つのMIBがあります。各モノリシックまたはサブエージェントは対応するMIBを参照して、取出し可能な変数およびその特徴を取得します。MIBのこの情報のカプセル化によって、マスター・エージェントが新規サブエージェントを動的に登録できます。マスター・エージェントが必要なサブエージェントの情報はすべてMIBに含まれています。管理フレームワークおよび管理アプリケーションでもこれらのMIBが同じ用途で参照されます。MIBには標準(またはパブリック)MIBと拡張(プライベートまたはベンダー)MIBがあります。

変数の実際の値はMIB内にはなく、計測というプラットフォーム対応プロセスによって取得されます。すべてのSNMP通信は1つ以上のMIBオブジェクトを参照するため、MIBの概念は非常に重要です。実質的にはMIB変数およびその現在の値が、フレームワークに転送されます。

13.9.2 MIB変数の説明の解釈

この項ではMIB変数の説明に使用される形式を説明します。SNMP MIB定義バージョン2のSTATUS要素は、このMIB変数の説明には含まれないので注意してください。OracleではすべてのMIB変数がCURRENTとして実装されるため、この値は変化しません。

13.9.2.1 変数名

構文

SNMP MIB定義バージョン2のSYNTAX要素にマップします。

最大アクセス

SNMP MIB定義バージョン2のMAX-ACCESS要素にマップします。

ステータス

SNMP MIB定義バージョン2のSTATUS要素にマップします。

説明

変数のファンクション、使用方法および正確な導出方法を説明します。(たとえば、変数は特定の構成ファイル・パラメータまたはパフォーマンス表フィールドから導出されます。)適切な場合は、MIB定義バージョン2のDESCRIPTION部分を組み込みます。

標準的な範囲

変数の論理的な範囲ではなく標準的な範囲を示します。たとえば、多くのMIB変数の整数値の論理的な上限は4294967295ですが、実際にインストールされたものの標準的な範囲はより小さくなります。その一方で、大規模データベースのいくつかの変数値が実際にはこの論理的限界(ラップアラウンド)を超える場合があります。変数値の標準的な範囲を0〜1,000または1,000〜30億に指定することによって、サード・パーティの開発者がその変数の最も便利なグラフィック表示を開発することができます。

重要度

標準的なインストールの監視時における変数の重要度を示します。重要度の段階は「高」、「中」、「低」または「通常は使用されない」です。DBAは、ある変数を他の変数よりも厳密に監視することが必要になります。ただしこのカテゴリに当てはまる変数は、アプリケーション、データベース・サイズおよびDBAの目的などに応じてインストールごとに異なる可能性があります。それでも、MIBの他の変数に対する変数の重要度を評価することによって、多くのDBAにとって最も関心のある変数に対し、サード・パーティの開発者が集中的に開発作業を行うことができます。

関連する変数

この変数に関連している、このMIBまたはOracleで実装済の他のMIBの変数を列記します。たとえば、この変数の値は別のMIB変数の値から導出されている可能性があります。また、この変数の値が別の変数の値と反比例している場合もあります。この情報を得ることによって、サード・パーティの開発者が関連するMIB変数の便利なグラフィック表示を開発できます。

推奨される表示方法

管理アプリケーションを使用しているDBAにとって最も役立つように、この変数を表示する方法(単純な値、ゲージまたはアラームとしてなど)を示します。

13.9.2.2 MIB定義

例13-16はEnterprise Managerで使用される標準的なMIB定義の例です。

例13-16    MIB定義

ORACLE-ENTERPRISE-MANAGER-4-MIB DEFINITIONS ::= BEGIN
IMPORTS
    TRAP-TYPE
        FROM RFC-1215
    DisplayString
        FROM RFC1213-MIB
    OBJECT-TYPE
        FROM RFC-1212
    enterprises
        FROM RFC1155-SMI;
oracle OBJECT IDENTIFIER ::= { enterprises  111 }
oraEM4 OBJECT IDENTIFIER ::= { oracle  15 }
oraEM4Objects OBJECT IDENTIFIER ::= { oraEM4  1 }
oraEM4AlertTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF OraEM4AlertEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
     "Information on alerts generated by Oracle Enterprise Manager. This table is
 not queryable; it exists only to document the variables included in the
 oraEM4Alert trap.  Each trap contains a single instance of each variable in the
 table."
    ::= { oraEM4Objects  1 }
oraEM4AlertEntry OBJECT-TYPE
    SYNTAX  OraEM4AlertEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
     "Information about a particular Oracle Enterprise Manager alert."
    INDEX   { oraEM4AlertIndex }
    ::= { oraEM4AlertTable  1 }
OraEM4AlertEntry ::=
    SEQUENCE {
        oraEM4AlertIndex
            INTEGER,
        oraEM4AlertTargetName
       DisplayString,
        oraEM4AlertTargetType
       DisplayString,
        oraEM4AlertHostName
       DisplayString,
        oraEM4AlertMetricName
       DisplayString,
        oraEM4AlertKeyName
       DisplayString,
        oraEM4AlertKeyValue
       DisplayString,
        oraEM4AlertTimeStamp
       DisplayString,
        oraEM4AlertSeverity
       DisplayString,
        oraEM4AlertMessage
       DisplayString,
        oraEM4AlertRuleName
       DisplayString
        oraEM4AlertRuleOwner
       DisplayString
    oraEM4AlertMetricValue
           DisplayString,
        oraEM4AlertContext
           DisplayString
    }
oraEM4AlertIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "Index of a particular alert, unique only at the moment an alert is generated."
    ::= { oraEM4AlertEntry  1 }
oraEM4AlertTargetName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The name of the target to which this alert applies."
    ::= { oraEM4AlertEntry  2 }
oraEM4AlertTargetType OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The type of the target to which this alert applies."
    ::= { oraEM4AlertEntry  3 }
oraEM4AlertHostName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The name of the host on which this alert originated."
    ::= { oraEM4AlertEntry  4 }
oraEM4AlertMetricName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The name of the metric or policy which generated this alert."
    ::= { oraEM4AlertEntry  5 }
oraEM4AlertKeyName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The name of the key-column, if present, for the metric which generated this 
alert."
    ::= { oraEM4AlertEntry  6 }
oraEM4AlertKeyValue OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The value of the key-column, if present, for the metric which generated this 
alert."
    ::= { oraEM4AlertEntry  7 }
oraEM4AlertTimeStamp OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The time at which this alert was generated."
    ::= { oraEM4AlertEntry  8 }
oraEM4AlertSeverity OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The severity of the alert e.g. Critical."
    ::= { oraEM4AlertEntry  9 }
oraEM4AlertMessage OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The message associated with the alert."
    ::= { oraEM4AlertEntry  10 }
oraEM4AlertRuleName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The name of the notification rule that caused this notification."
    ::= { oraEM4AlertEntry  11 }
oraEM4AlertRuleOwner OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The owner of the notification rule that caused this notification."
    ::= { oraEM4AlertEntry  12 }
oraEM4AlertMetricValue OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The value of the metric which caused this alert to be generated."
    ::= { oraEM4AlertEntry  13 }
oraEM4AlertContext OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "A comma separated list of metric column names and values associated with the 
metric that caused this alert to be generated."
    ::= { oraEM4AlertEntry  14 }
oraEM4Traps OBJECT IDENTIFIER ::= { oraEM4  2 }
oraEM4Alert TRAP-TYPE
    ENTERPRISE  oraEM4Traps
    VARIABLES   { oraEM4AlertTargetName, oraEM4AlertTargetType,
                  oraEM4AlertHostName, oraEM4AlertMetricName,
                  oraEM4AlertKeyName, oraEM4AlertKeyValue, oraEM4AlertTimeStamp,
                  oraEM4AlertSeverity, oraEM4AlertMessage,
                  oraEM4AlertRuleName, oraEM4AlertRuleOwner,
                  oraEM4AlertMetricValue, oraEM4AlertContext }
    DESCRIPTION
     "The variables included in the oraEM4Alert trap."
    ::= 1
oraEM4JobAlertTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF OraEM4JobAlertEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
     "Information on alerts generated by Oracle Enterprise Manager. This table is
 not queryable; it exists only to document the variables included in the
 oraEM4JobAlert trap.  Each trap contains a single instance of each variable in
 the table."
    ::= { oraEM4Objects  2 }
oraEM4JobAlertEntry OBJECT-TYPE
    SYNTAX  OraEM4AlertEntry
    ACCESS  not-accessible
    STATUS  mandatory
    DESCRIPTION
     "Information about a particular Oracle Enterprise Manager alert."
    INDEX   { oraEM4JobAlertIndex }
    ::= { oraEM4JobAlertTable  1 }
OraEM4JobAlertEntry ::=
    SEQUENCE {
        oraEM4JobAlertIndex
            INTEGER,
        oraEM4JobAlertJobName
       DisplayString,
        oraEM4JobAlertJobOwner
       DisplayString,
        oraEM4JobAlertJobType
       DisplayString,
        oraEM4JobAlertJobStatus
       DisplayString,
        oraEM4JobAlertTargets
       DisplayString,
        oraEM4JobAlertTimeStamp
       DisplayString,
        oraEM4JobAlertRuleName
       DisplayString
        oraEM4JobAlertRuleOwner
       DisplayString,
    oraEM4JobAlertMetricName
           DisplayString,
    oraEM4JobAlertMetricValue
           DisplayString,
        oraEM4JobAlertContext
           DisplayString,
        oraEM4JobAlertKeyName
       DisplayString,
        oraEM4JobAlertKeyValue
       DisplayString,
        oraEM4JobAlertSeverity
       DisplayString
    }
oraEM4JobAlertIndex OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "Index of a particular alert, unique only at the moment an alert is
 generated."
    ::= { oraEM4JobAlertEntry  1 }
oraEM4JobAlertJobName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The name of the job to which this alert applies."
    ::= { oraEM4JobAlertEntry  2 }
oraEM4JobAlertJobOwner OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The owner of the job to which this alert applies."
    ::= { oraEM4JobAlertEntry  3 }
oraEM4JobAlertJobType OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The type of the job to which this alert applies."
    ::= { oraEM4JobAlertEntry  4 }
oraEM4JobAlertJobStatus OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The status of the job to which this alert applies."
    ::= { oraEM4JobAlertEntry  5 }
oraEM4JobAlertTargets OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "A comma separated list of target to which this alert applies."
    ::= { oraEM4JobAlertEntry  6 }
oraEM4JobAlertTimeStamp OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The time at which this job status changed causing this alert."
    ::= { oraEM4JobAlertEntry  7 }
oraEM4JobAlertRuleName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The name of the notification rule that caused this notification."
    ::= { oraEM4JobAlertEntry  8 }
oraEM4JobAlertRuleOwner OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The owner of the notification rule that caused this notification."
    ::= { oraEM4JobAlertEntry  9 }
oraEM4JobAlertMetricName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The name of the metric or policy which caused the Corrective Action to run
 that caused this alert."
    ::= { oraEM4JobAlertEntry  10 }
oraEM4JobAlertMetricValue OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The value of the metric which caused the Corrective Action to run that
 caused this alert."
    ::= { oraEM4JobAlertEntry  11 }
oraEM4JobAlertContext OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "A comma separated list of metric column names and values associated with the
 metric which caused the Corrective Action to run that caused this alert."
    ::= { oraEM4JobAlertEntry  12 }
oraEM4JobAlertKeyName OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The name of the key-column, if present, for the metric which caused the
 Corrective Action to run that generated this alert."
    ::= { oraEM4JobAlertEntry  13 }
oraEM4JobAlertKeyValue OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The value of the key-column, if present, for the metric which caused the
 Corrective Action to run that generated this alert."
    ::= { oraEM4JobAlertEntry  14 }
oraEM4JobAlertSeverity OBJECT-TYPE
    SYNTAX  DisplayString
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
     "The severity of the metric which caused the Corrective Action to run that
 generated this alert e.g. Critical."
    ::= { oraEM4JobAlertEntry  15 }
oraEM4JobAlert TRAP-TYPE
    ENTERPRISE  oraEM4Traps
    VARIABLES   { oraEM4JobAlertJobName, oraEM4JobAlertJobOwner,
                  oraEM4JobAlertJobType, oraEM4JobAlertJobStatus,
                  oraEM4JobAlertTargets, oraEM4JobAlertTimeStamp,
                  oraEM4JobAlertRuleName, oraEM4JobAlertRuleOwner,
                  oraEM4JobAlertMetricName, oraEM4JobAlertMetricValue,
                  oraEM4JobAlertContext, oraEM4JobAlertKeyName,
                  oraEM4JobAlertKeyValue, oraEM4JobAlertSeverity }
    DESCRIPTION
     "The variables included in the oraEM4JobAlert trap."
    ::= 2
END

13.10 通知に関するトラブルシューティング

通知システムの動作は、Enterprise ManagerおよびITインフラストラクチャの様々なコンポーネントに依存しています。このため、通知障害には考えられる原因が多数あります。通知システムに関する問題を特定する際は、次のガイドラインおよび推奨事項を参考にしてください。

13.10.1 一般的な設定

通知問題を診断する最初の手順は、通知環境が適切に構成および定義されているか確認することです。

OSコマンド、PL/SQLおよびSNMPトラップの通知

「テスト」ボタンをクリックして、すべてのOSコマンド、PL/SQLおよびSNMPトラップの通知メソッドが有効であることを確認します。これによってテスト通知が送信され、OMSが通知メソッドを呼び出す際の問題が表示されます。メソッドがコールされたことを確認してください。たとえば、OSコマンドの通知によりログ・ファイルに情報が書き込まれるように設定した場合は、OSコマンドの通知によって情報がログ・ファイルに書き込まれていることを確認します。

電子メールの通知

13.10.2 通知システムのエラー

通知問題に関連するアラートが発生した場合、次のものを確認して通知エラーを調べてください。

13.10.3 通知システムのトレース・メッセージ

通知システムは、sysman/log/emoms.trcファイル内にトレース・メッセージを生成できます。

トレース生成を構成するには、sysman/config/emomslogging.propertiesファイル内に次のフラグを設定します。トレース・レベルはINFO、WARN、DEBUGに設定できます。次に例を示します。

log4j.em.notification=DEBUG

トレース・メッセージには、em.notificationという文字列が含まれます。UNIX環境で作業している場合、grepコマンドを使用してemoms.trcファイル内のメッセージを検索できます。次に例を示します。

grep em.notification emoms.trc

トレース・ファイル内の調べる箇所

emoms.trcファイル内の次のエントリが通知に関連しています。

通常起動のメッセージ

OMSが起動すると、次のようなタイプのメッセージが表示されます。

2006-11-08 03:18:45,385 [Orion Launcher] INFO  em.notification init.1279 - Short format 
maximum length is 155

2006-11-08 03:18:45,386 [Orion Launcher] INFO  em.notification init.1297 - Short format 
is set to both subject and body

2006-11-08 03:18:45,387 [NotificationMgrThread] INFO  em.notification run.1010 - 
Waiting for connection to EM Repository...

2006-11-08 03:18:46,006 [NotificationMgrThread] INFO  em.notification run.1041 - 
Registering for Administrative Queue Name...

2006-11-08 03:18:46,250 [NotificationMgrThread] INFO  em.notification run.1078 - 
Administrative Queue is ADM21

2006-11-08 03:18:46,250 [NotificationMgrThread] INFO  em.notification run.1089 - 
Creating thread pool: min = 6 max = 24

2006-11-08 03:18:48,206 [NotificationMgrThread] INFO  em.notification 
handleAdminNotification.655 - Handling notifications for EMAIL1

通知配信のメッセージ

2006-11-08 03:18:45,387 [NotificationMgrThread] INFO  em.notification run.682 - 
Notification ready on EMAIL1

2006-11-08 03:18:46,006 [DeliveryThread-EMAIL1] INFO  em.notification run.114 - Deliver 
to SYSMAN/admin@oracle.com

2006-11-08 03:18:47,006 [DeliveryThread-EMAIL1] INFO  em.notification run.227 - 
Notification handled for SYSMAN/admin@oracle.com

通知システム・エラーのメッセージ

2006-11-08 07:26:30,242 [NotificationMgrThread] ERROR  em.notification 
getConnection.237 - Failed to get a connection Io exception: The Network Adapter could 
not establish the connection

13.10.4 電子メールのエラー

SMTPゲートウェイが適切に設定されていない:

Failed to send e-mail to my.admin@oracle.com: For e-mail notifications to be sent, your 
Super Administrator must configure an Outgoing Mail (SMTP) Server within Enterprise 
Manager. (SYSMAN, myrule)

無効なホスト名:

Failed to connect to gateway: badhost.us.oracle.com: Sending failed;
nested exception is:
javax.mail.MessagingException: Unknown SMTP host: badhost.us.oracle.com;

無効な電子メール・アドレス:

Failed to connect to gateway: rgmemeasmtp.oraclecorp.com: Sending failed;
nested exception is:
javax.mail.MessagingException: 550 5.7.1 <smpemailtest_ie@oracle.com>... Access denied

電子メールのゲートウェイ構成が有効であるか確認するときはいつでも、「テスト」ボタンを使用してください。送信者の電子メール・アドレスに電子メールが受信されることを確認してください。

13.10.5 OSコマンドのエラー

OSコマンドまたはスクリプトを実行しようとすると、次のエラーが発生することがあります。「テスト」ボタンを使用して、OSコマンドの構成が有効であるか確認します。エラーが存在する場合、コンソールにそのエラーが表示されます。

パスが無効であるか、ファイルに対する読取り権限がない:

Could not find /bin/myscript (stacb10.us.oracle.com_Management_Service) 
(SYSMAN, myrule )

実行可能ファイルに対する実行権限がない:

Error calling /bin/myscript: java.io.IOException: /bin/myscript: cannot execute 
(stacb10.us.oracle.com_Management_Service) (SYSMAN, myrule ) 

OSコマンドの実行時間の超過によるタイムアウト:

Timeout occurred running /bin/myscript (stacb10.us.oracle.com_Management_Service) 
(SYSMAN, myrule )

メモリー不足のため、またはOMSマシン上で実行されているプロセスが多すぎるために発生したエラーは、適宜記録されます。

OSコマンドの構成が有効であるか確認するときはいつでも、「テスト」ボタンを使用してください。

13.10.6 SNMPトラップのエラー

「テスト」ボタンを使用して、SNMPトラップの構成が有効であるか確認します。

SNMPトラップ問題として他に考えられるのは、無効なホスト名、ポート、SNMPコンソールを実行しているマシンのコミュニティなどがあります。

13.10.7 PL/SQLのエラー

PL/SQLプロシージャを実行しようとすると、次のエラーが発生することがあります。「テスト」ボタンを使用して、プロシージャが有効であるか確認します。エラーが存在する場合、コンソールにそのエラーが表示されます。

プロシージャ名が無効であるか、完全修飾名でない。(例: SCOTT.PKG.PROC)

Error calling PL/SQL procedure plsql_proc: ORA-06576: not a valid function or procedure 
name (SYSMAN, myrule) 

プロシージャが適切なシグネチャでない。(例: PROCEDURE p(s IN MGMT_NOTIFY_SEVERITY))

Error calling PL/SQL procedure plsql_proc: ORA-06553: PLS-306: wrong number or types of 
arguments in call to 'PLSQL_PROC' (SYSMAN, myrule)

プロシージャに不具合があり、例外が発生

Error calling PL/SQL procedure plsql_proc: ORA-06531: Reference to uninitialized 
collection (SYSMAN, myrule)

PL/SQL内でカーソルのリークがないように注意する必要があります。この状況が原因で例外が発生すると、配信は失敗し、Grid Controlコンソールのアラートの「詳細」セクションにメッセージが表示されます。

PL/SQLの構成が有効であるか確認するときはいつでも、「テスト」ボタンを使用してください。


戻る 次へ
Oracle
Copyright © 2003, 2009 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引