ヘッダーをスキップ

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

B53907-01
目次
目次
索引
索引

戻る 次へ

14 ユーザー定義メトリック

ユーザー定義メトリックを使用すると、カスタム・スクリプトまたはSQL問合せおよびファンクション・コールを介して、特定の環境での固有の条件に対応できるようにEnterprise Managerの監視対象範囲を拡張できます。定義したユーザー定義メトリックは通常のメトリックと同様に、監視され、リポジトリ内に集計され、アラートをトリガーします。

この章では次のトピックについて説明します。

14.1 監視機能の拡張

次の2種類のユーザー定義メトリックがあります。

ユーザー定義メトリックを作成した後は、その他すべての監視機能(アラート、通知、履歴収集、修正処理など)が、そのメトリックに対して自動的に使用可能になります。

カスタム監視スクリプトの固有ライブラリをすでに持っている管理者は、ユーザー定義メトリックを介してそれらのスクリプトとEnterprise Managerを統合することで、これらの監視機能を強化できます。同様に、SQLベースのユーザー定義メトリックを使用すると、現在データベース条件の監視に使用されている既存のSQL問合せまたはファンクション・コールを、Enterprise Managerの監視フレームワーク内に簡単に統合できます。

14.2 OSベースのユーザー定義メトリックの作成

OSベースのユーザー定義メトリックを作成するには、次の2つの手順を実行します。

14.2.1 OS監視スクリプトの作成

任意のスクリプト作成言語を使用して、監視対象条件をチェックするためのロジックを含むスクリプトを作成します。たとえば、ディスク領域やメモリー使用量をチェックするスクリプトを作成します。ユーザー定義メトリックを介して実行するスクリプトはすべて、管理エージェントが完全アクセス権限を持つディレクトリ内に配置する必要があります。管理エージェントがスクリプトを実行できるように、スクリプトそのものに必要な権限セットを含める必要があります。また、スクリプトの実行時環境も構成する必要があります。スクリプトで(Perlインタプリタのような)インタプリタを必要とする場合、インタプリタもそのホストにインストールする必要があります。

すべての監視スクリプトには、次のような基本機能を実行するコードを記述する必要があります。

14.2.1.1 監視対象オブジェクトのステータスをチェックするためのコード

特定のファイル・システムの空き領域の判別や、メモリー使用量のレベルの判別など、監視対象の条件をチェックするロジックをコード内に定義します。

スクリプトは、監視対象の条件をチェックした後、監視対象オブジェクトと関連付けられた値を返す必要があります。

監視対象オブジェクト(たとえば、現在のディスク領域使用量など)から特定の値を返すスクリプトを作成することにした場合、オブジェクトの現行値が特定の警告およびクリティカルのしきい値と比較して評価されるようにEnterprise Managerを設定することもできます。これらの警告およびクリティカルのしきい値は、ユーザー定義メトリックの作成時にGrid Controlコンソールから指定します。しきい値に対するメトリックの値の評価に基づいて、次のいずれかの重大度レベルでアラートをトリガーできます。

表14-1    メトリック重大度レベル 
重大度レベル  ステータス 

スクリプトの失敗 

スクリプトが正常に実行されなかった。  

消去 

監視対象オブジェクトに関する問題はない。ステータスは「消去」です。メトリックにしきい値が指定されていた場合は、しきい値に達していないということです。 

警告 

監視対象オブジェクトの値が警告のしきい値に達した。  

クリティカル 

監視対象オブジェクトの値がクリティカルのしきい値に達した。 

14.2.1.2 スクリプト結果をEnterprise Managerに返すためのコード

スクリプトは、監視対象の条件をチェックした後、監視対象オブジェクトと関連付けられた値を返す必要があります。スクリプトは、スクリプト言語に対応する構文(たとえば、Perlではprint文)を使用して標準出力(stdout)に書式設定済情報を送ることにより、Enterprise Managerに値を返します。次にEnterprise Managerが、スクリプトの標準出力でこの書式設定済情報をチェックします。特に、em_resultおよびem_messageと、これらのタグに割り当てられた値をチェックします。

スクリプトでは、監視対象オブジェクトの値をタグem_resultに割り当てる必要があります。出力は、文字列を改行文字で区切って記述する必要があります。たとえば監視対象オブジェクトの値が200の場合、次のPerl文を指定すると、スクリプトはこの値をEnterprise Managerに返すことができます。

print "em_result=200¥n"

また、返された値が指定の警告およびクリティカルのしきい値と比較して評価されるようにEnterprise Managerを設定することもできます。これらの警告およびクリティカルのしきい値は、コンソールでスクリプトをユーザー定義メトリックとして登録するときに指定します。

警告またはクリティカルのしきい値の比較で条件に合致した場合は、警告またはクリティカルのアラートが生成されます。このアラートのデフォルト・メッセージは、次のとおりです。

"The value is $em_result".

使用する文字列をタグem_messageに割り当てることにより、このデフォルト・メッセージをカスタム・メッセージで上書きするように選択できます。

たとえば、「Disk usage is high」というアラート・メッセージを表示する場合、次のように記述すると、スクリプトはこのカスタム・メッセージを返すことができます。

print "em_message=Disk usage is high¥n"


重要

Enterprise Managerでスクリプト出力が有効なユーザー定義メトリック・フィードバックとして認識されるためには、スクリプト出力のタグを小文字にする必要があります。各タグに関連付けるメッセージは、大文字と小文字が混在していてもかまいません。

  • 有効なタグ出力: em_result=My Value¥n

  • 無効なタグ出力: Em_Result=My Value¥n

 

スクリプトが正常に実行されるためには、スクリプト出力は、新しい行で「em_result=」という文字列で開始する必要があります。メッセージは、新しい行で「em_message=」という文字列で開始する必要があります。

次の表は、スクリプト出力タグについてまとめたものです。

表14-2    スクリプト出力情報のタグ 
タグ  定義 

em_result 

このタグを使用して、スクリプト結果値を返します。STDOUTにはem_resultタグを1つのみ記述します。複数のem_resultタグが存在する場合、最初に見つかったタグが使用され、それ以降のem_resultタグは無視されます。

例:

print "em_result=200¥n" 

この場合、監視対象オブジェクトの値として200が返されます。  

em_message 

このタグを使用して、STDOUT内でスクリプト結果値とともに返されるメッセージを指定します。OSベースのユーザー定義メトリックの場合、em_messageタグは1つのみ許可されます。複数のem_messageタグを発行した場合、最初のタグのみが使用されます。それ以降のタグは無視されます。

例:

print "em_result=200¥nem_message=Disk usage is high¥n" 

この場合、監視対象オブジェクトの値としての200と、「Disk usage is high」というメッセージが返されます。

メッセージにem_resultの値を含めるには、プレースホルダ$em_resultを使用できます。

例:

print "em_message=Disk usage is at $em_result.¥n"

スクリプトは正常に実行されたが、em_message文字列が含まれていない場合、デフォルトのem_message文字列が自動的に生成されます。次のメッセージ書式が使用されます。

em_message=The value is $em_result 

例:

print "em_result=200¥n"

この場合、監視対象オブジェクトの値としての200と、生成されたメッセージ「The value is 200」が返されます。 

ユーザー定義監視スクリプトの出力は、em_resultまたはem_messageのいずれかです。システム・エラーが発生した場合(たとえば、Perlで無効なコマンドが原因で中断したり、STDERRに情報が書き込まれた場合など)、スクリプトは次のものを返します。

このエラー状況により、このユーザー定義メトリックのメトリック・エラーが発生します。メトリック・エラーは、Enterprise Managerコンソールの「アラート」タグの「エラー」ページに表示されます。

OSスクリプトの場所

ユーザー定義メトリックのOSスクリプトは、エージェントOracleホーム以外の場所に置くことをお薦めします。そうすることで、スクリプトは、エージェントのアップグレードに起因する変更の影響を受けることなく、常に使用可能な状態になります。Grid Controlコンソールでスクリプトを登録するときに、スクリプトのフルパスを指定する必要があります。「使用可能なプロパティ」(たとえば、%scriptsDir%や%emdRoot%など)をパス指定の一部として使用しないでください。

14.2.1.3 スクリプトのランタイム環境

ユーザー定義メトリックの評価時には、Enterprise Managerコンソールでのユーザー定義メトリックの登録時に指定した資格証明(ユーザー名およびパスワード)を使用してスクリプトが実行されます。「ユーザー定義メトリックとしてのスクリプトの登録」を参照してください。ユーザー定義メトリックに指定するユーザー名およびパスワードは必ず、スクリプトの実行に必要な権限を所有する(そのマシン上で)アクティブなアカウントにしてください。

14.2.2 ユーザー定義メトリックとしてのスクリプトの登録

監視スクリプトを作成した後は、この監視機能をユーザー定義メトリックとしてEnterprise Managerに追加できます。


重要

OSベースのユーザー定義メトリックの場合、ユーザー定義メトリックの作成前に、監視スクリプトが存在するマシン上で管理エージェントが動作していることを確認してください。ホスト・ターゲットに対するオペレータ以上の権限が必要です。  


OSベースのユーザー定義メトリックの作成
  1. OS監視スクリプトの存在するホストのホームページ(「関連リンク」)から、「ユーザー定義メトリック」を選択します。すでに定義されているユーザー定義メトリックのリストを含む「ユーザー定義メトリック」サマリー・ページが表示されます。このページから、既存のユーザー定義メトリックに対して「編集」、「表示」、「削除」または「類似作成」の機能を実行します。

  2. 「作成」をクリックします。「ユーザー定義メトリックの作成」ページが表示されます。

  3. 必要なメトリック定義、しきい値およびスケジュールの情報を入力します。「コマンドライン」フィールドで、必要なシェルまたはインタプリタを含む、スクリプトのフルパスを入力します。たとえば、/bin/sh myscriptのように入力します。詳細は、次の項を参照してください。

  4. 「OK」をクリックします。新しいユーザー定義メトリックがリストに追加された「ユーザー定義メトリック」サマリー・ページが表示されます。

ユーザー定義メトリックを作成してから、重大度を最近更新していない場合、ユーザー定義メトリックの実行に関連するメトリック・エラーが存在している可能性があります。このような場合、「アラート」タブから「エラー」サブタブにアクセスしてチェックしてください。

「ユーザー定義メトリックの作成」ページ(OSベースのユーザー定義メトリック)

「ユーザー定義メトリックの作成」ページでは、Enterprise Managerにメトリックを登録するために必要なメトリック情報を指定できます。このページは、機能別に次のカテゴリに分かれています。

次の図に、OSベースのユーザー定義メトリックの「ユーザー定義メトリックの作成」ページを示します。ホストのホームページからこのページにアクセスすると、図14-1のような「ユーザー定義メトリックの作成」ページが表示されます。

図14-1    「ユーザー定義メトリックの作成」ページ(OSベース)


画像の説明

次の各表で、このページの主要な要素について説明します。

表14-3    「ユーザー定義メトリックの作成」ページ: 定義 
ユーザー・インタフェースの要素  説明 

メトリック名 

Enterprise Managerユーザー・インタフェース内でユーザー定義メトリックを識別するメトリック名。この名前は、そのホスト上に作成されたすべてのユーザー定義メトリック間で一意である必要があります。 

メトリック・タイプ 

ユーザー定義スクリプトにより返される値のタイプ。スクリプトが数値を返す場合は、「数値」を選択します。スクリプトが英数字のテキスト文字列を返す場合は、「文字列」を選択します。 

コマンドライン 

ユーザー定義スクリプトの実行に必要な完全コマンドライン・エントリを入力します。コマンドのフルパスと、スクリプト場所のフルパスを入力する必要があります。たとえば、Perlスクリプトを実行する場合、「コマンドライン」入力フィールドで次のように入力します。

/u1/bin/perl /u1/scripts/myScript.pl

「コマンドライン」の内容はリテラル文字列として渡されるため、オペレーティング・システムで許可される任意の構文、特殊文字またはパラメータを使用できます。  

環境 

オプション。ユーザー定義スクリプトの実行に必要な環境変数を入力します。「使用可能なプロパティ」ボックスに、変数としてスクリプトに渡すことのできる事前定義済のプロパティのリストが表示されます。また、独自に環境変数を指定することもできます。複数の変数を、空白区切りリストとして定義できます。

例: スクリプトで3つの変数(var1、var2、var3)が使用され、var1がPerlディレクトリの場所(事前定義済)、var2がPerlスクリプトが格納されているディレクトリ、var3がOracleホームである場合、「環境」テキスト入力フィールドには次のように入力します。

var1=%perlBin% var2=%scriptsDir% var3=/u1/orahome10
 
表14-4    「ユーザー定義メトリックの作成」ページ: オペレーティング・システム資格証明 
ユーザー・インタフェースの要素  説明 

ユーザー名 

スクリプトを実行するマシン上の有効なオペレーティング・システム・アカウントのユーザー名を入力します。指定したアカウントに、必要なスクリプト・ディレクトリへのアクセス権限およびスクリプトの実行権限があることを確認してください。  

パスワード 

ユーザー名と関連付けられたパスワードを入力します。 

表14-5    「ユーザー定義メトリックの作成」ページ: しきい値 
ユーザー・インタフェースの要素  説明 

比較演算子 

ユーザー定義スクリプトにより返された値をしきい値と比較する際にEnterprise Managerで使用する比較方法を選択します。

使用可能な比較演算子

演算子の値メトリック・タイプ説明

=数値等しい

>数値より大きい

<数値より小さい

>=数値以上

<=数値以下

!=数値等しくない

CONTAINS文字列少なくとも含む

MATCH文字列完全一致 

警告 

スクリプトにより返された値は、指定した比較演算子を使用して警告のしきい値と比較されます。この比較で条件に合致すると、警告の重大度レベルでアラートがトリガーされます。

具体的には、次の2つの両方の条件を満たす場合、警告の重大度レベルでアラートがトリガーされます。

<script_value> <comparison_operator> <warning_threshold>の比較の条件に合致

「通知前の連続した状態変化」に到達 

クリティカル 

スクリプトにより返された値は、指定した比較演算子を使用してクリティカルのしきい値と比較されます。この比較で条件に合致すると、クリティカルの重大度レベルでアラートがトリガーされます。

具体的には、次の2つの両方の条件を満たす場合、クリティカルの重大度レベルでアラートがトリガーされます。

<script_value> <comparison_operator> <critical_threshold>の比較の条件に合致

「通知前の連続した状態変化」に到達 

通知前の連続した状態変化 

警告またはクリティカルの重大度でアラートがトリガーされるまでに、返された値が警告またはクリティカルのしきい値に連続して達した回数。この機能は、持続した状態を監視する場合に有用です。たとえば、スクリプトで特定のマシンのCPU負荷を監視する場合、CPU負荷が上昇するたびに通知を受けても意味がありません。CPU負荷が監視サイクルで連続して特定のしきい値(警告またはクリティカル)レベルに留まっている場合にのみ、通知を受けるほうが効果的です。  

レスポンス処理 

オプション。ユーザー定義メトリックにより警告またはクリティカルのアラートが生成された場合に実行されるスクリプトまたはコマンドを指定します。スクリプトまたはコマンドは、エージェント所有者の資格証明を使用して実行されます。重要: メトリックのレスポンス処理を作成および編集できるのは、Enterprise Managerのスーパー管理者のみです。

たとえば次の場合、管理エージェントによりレスポンス処理が実行されます。

アラートの重大度が「警告」または「クリティカル」である場合

かつ

重大度が変化している場合(「警告」から「クリティカル」へ、「クリティカル」から「警告」へ、「消去」から「警告」または「クリティカル」へ、など)

詳細は、Enterprise Managerのオンライン・ヘルプを参照してください。 

「ユーザー定義メトリック」の「スケジュール」インタフェースでは、管理エージェントが監視を開始する時刻、およびOSスクリプトを使用して条件を監視する頻度を指定できます。

14.2.3 OSベースのユーザー定義メトリックの例

この例で使用するPerlスクリプトは、システムの5分間の平均負荷を監視するものです。uptimeコマンドを使用して過去5分間の実行キューにおけるジョブの平均数を取得することによって、この機能を実行しています。

スクリプトはPerlで記述されており、監視対象ターゲット上の/usr/local/binにPerlインタプリタが存在することを想定しています。

このスクリプトはudmload.plという名前で、ユーザーが定義した共通管理スクリプト・ディレクトリにインストールされます。たとえば、/u1/scriptsというディレクトリにインストールされます。


重要

ユーザー定義メトリック監視スクリプトを、Enterprise Managerシステム・スクリプトと同じ場所に格納しないでください。  


スクリプトの完全テキスト:

#!/usr/local/bin/perl

# Description: 5-min load average.
# Sample User Defined Event monitoring script.

$ENV{PATH} = "/bin:/usr/bin:/usr/sbin"; 

$DATA = `uptime`; 
$DATA =~ /average:¥s+([¥.¥d]+),¥s+([¥.¥d]+),¥s+([¥.¥d]+)¥s*$/; 
  

if (defined $2) { 
   print "em_result=$2¥n"; 
} else { 
   die "Error collecting data¥n"; 
} 
  1. スクリプト(udmload.pl)を監視対象ターゲットにコピーします。たとえば、/u1/scriptsにコピーします。このマシン上でEnterprise Manager 10g管理エージェントが実行されていることを確認してください。

  2. 必要な場合、監視対象ターゲット上のPerlインタプリタの場所を指すようにスクリプトを編集します。デフォルトでは、スクリプトはPerlインタプリタが/usr/local/bin内にあることを前提としています。

  3. テストとして、スクリプトudmload.plを実行します。スクリプトを正常に実行するために、そのファイル権限を設定する必要があることがあります。次の書式の出力が表示されます。

    em_result=2.1 
    
    
  4. 「ユーザー定義メトリックの作成」ページで、次のように入力して新規のユーザー定義メトリックを作成します。

    1. 「定義」の設定

      • メトリック名: ユーザー定義メトリックのテスト

      • メトリック・タイプ: 数値

      • コマンドライン: %perlBin%/perl /u1/scripts/udmload.pl

      • 環境: 空白のまま

      • オペレーティング・システム・ユーザー名: <スクリプトを実行できるOSユーザー>

      • パスワード: ******

    2. 「しきい値」の設定

      • 比較演算子: >=

      • クリティカルのしきい値: 0.005

      • 警告のしきい値: 0.001

      • 通知前の連続した状態変化: 1

      この例では、マシン上の5分間の平均負荷が0.001に達した場合に警告レベルのアラートをトリガーし、5分間の平均負荷が0.005に達した場合にクリティカル・レベルのアラートをトリガーするメトリックを作成します。システムに応じて、これらのしきい値は自由に変更してください。

    3. 「スケジュール」の設定

      • 起動: 作成後即時

      • 頻度: 「繰返し間隔」を「5分」に設定。最小でも5分間隔を指定する必要があります。

ユーザー定義メトリックとしてのスクリプト例の設定

5分間の負荷が少なくとも0.001に達した場合、メトリックがアラートをトリガーする必要があります。

14.3 SQLベースのユーザー定義メトリックの作成

Real Application Clusters(RAC)上のシングル・インスタンス・データベースおよび複数のインスタンスに対し、サポートされているカスタムSQL問合せまたはファンクション・コールを使用して新規のメトリックを定義することもできます。このタイプのユーザー定義メトリックを作成するには、データベースに対するEnterprise Managerオペレータ権限を持っている必要があります。

  1. データベースのホームページの「関連リンク」領域から、「ユーザー定義メトリック」を選択します。すでに定義されているユーザー定義メトリックのリストを含む「ユーザー定義メトリック」サマリー・ページが表示されます。このページから、既存のユーザー定義メトリックに対して「編集」、「表示」、「削除」または「類似作成」の機能を実行します。

  2. 「作成」をクリックします。「ユーザー定義メトリックの作成」ページが表示されます。

  3. 必要なメトリック定義、しきい値およびスケジュールの情報を入力します。「SQL問合せ」フィールドで、問合せまたはファンクション・コールを入力します。詳細は、次の項を参照してください。

    「テスト」をクリックして、指定した資格証明を使用してSQL問合せまたはファンクション・コールを正常に実行できることを確認します。

  4. 「OK」をクリックします。新しいユーザー定義メトリックがリストに追加された「ユーザー定義メトリック」サマリー・ページが表示されます。

ユーザー定義メトリックを作成してから、重大度を最近更新していない場合、ユーザー定義メトリックの実行に関連するメトリック・エラーが存在している可能性があります。このような場合、「アラート」タブから「エラー」サブタブにアクセスしてチェックしてください。

「ユーザー定義メトリックの作成」ページ(SQLベースのユーザー定義メトリック)

「ユーザー定義メトリックの作成」ページでは、Enterprise Managerにメトリックを登録するために必要なメトリック情報を指定できます。このページは、機能別に次のカテゴリに分かれています。

次の図に、SQLベースのユーザー定義メトリックの「ユーザー定義メトリックの作成」ページを示します。データベースのホームページからこのページにアクセスすると、図14-2のような「ユーザー定義メトリックの作成」ページが表示されます。

図14-2    「ユーザー定義メトリックの作成」ページ(SQLベース)


画像の説明

次の各表で、このページの主要な要素について説明します。

表14-6    「ユーザー定義メトリックの作成」ページ: 定義 
ユーザー・インタフェースの要素  説明 

メトリック名 

Enterprise Managerユーザー・インタフェース内でユーザー定義メトリックを識別するメトリック名。 

メトリック・タイプ 

ユーザー定義スクリプトにより返される値のタイプ。スクリプトが数値を返す場合は、「数値」を選択します。スクリプトが英数字のテキスト文字列を返す場合は、「文字列」を選択します。 

SQL問合せ出力 

SQLスクリプトが単一の値(1列)を返すか、または複数の行
(2列)を返すかを指定します。

  • 単一の値: 問合せは次のいずれかのタイプです。

    単一の値を返すSELECT文。
    例: SELECT sal FROM emp WHERE empno=7369

    単一の値を返すファンクション・コール。
    例: myfunc(123, 'abc')

  • 2列: 問合せは、2列(および場合によっては複数の行)を返すSELECT文です。例: SELECT ename, sal FROM emp。最初の列(キー列)の各エントリは、一意の文字列である必要があります。2列目(値列)は、選択した「メトリック・タイプ」の値である必要があります。

 

SQL問合せ 

適切なタイプ(文字列または数値)の値を返すSQL問合せまたはファンクション・コールを入力します。SQL文は、1列または2列を返す必要があります。SQL文が1列のみを返す場合は、1行しか返されません。複数の行が返されるようにするには、SQL文で2列を返す必要があります。 

表14-7    「ユーザー定義メトリックの作成」ページ: データベース資格証明 
ユーザー・インタフェースの要素  説明 

ユーザー名 

SQL問合せを実行するデータベース上の有効なデータベース・アカウントのユーザー名を入力します。指定したアカウントに、SQL問合せの実行に必要な権限があることを確認してください。  

パスワード 

ユーザー名と関連付けられたパスワードを入力します。 

表14-8    「ユーザー定義メトリックの作成」ページ: しきい値 
ユーザー・インタフェースの要素  説明 

比較演算子 

SQL問合せまたはファンクション・コールにより返された値をしきい値と比較する際にEnterprise Managerで使用する比較方法を選択します。問合せが2列を返す場合、しきい値との比較には2列目(値列)が使用されます。

使用可能な比較演算子

演算子の値メトリック・タイプ説明

=数値等しい

>数値より大きい

<数値より小さい

>=数値以上

<=数値以下

!=数値等しくない

CONTAINS文字列少なくとも含む

MATCH文字列完全一致 

警告 

SQL問合せまたはファンクション・コールにより返された値は、指定した比較演算子を使用して警告のしきい値と比較されます。この比較で条件に合致すると、警告の重大度レベルでアラートがトリガーされます。

具体的には、次の2つの両方の条件を満たす場合、警告の重大度レベルでアラートがトリガーされます。

<query_value> <comparison_operator> <warning_threshold>の比較の条件に合致

「通知前の連続した状態変化」に到達 

クリティカル 

SQL問合せまたはファンクション・コールにより返された値は、指定した比較演算子を使用してクリティカルのしきい値と比較されます。この比較で条件に合致すると、クリティカルの重大度レベルでアラートがトリガーされます。

具体的には、次の2つの両方の条件を満たす場合、クリティカルの重大度レベルでアラートがトリガーされます。

<query_value> <comparison_operator> <critical_threshold>の比較の条件に合致

「通知前の連続した状態変化」に到達 

キー別の警告のしきい値

および

キー別のクリティカルのしきい値 

2列(1列目はキーで2列目は値)を返す問合せの場合、キーごとにしきい値を指定できます。次の例では、次のような問合せを使用します。

SELECT ename FROM emp

この例の「しきい値」の設定は、次のとおりです。

key:valueという書式を使用します。キーでは大文字と小文字が区別されます。

  • 警告: 500

  • クリティカル: 300

  • 比較演算子: <

  • キー別の警告のしきい値: SMITH:250;JONES:400;CLARK:900

    警告のしきい値は、SMITHは250、JONESは400、CLARKは900に設定されます。

  • キー別のクリティカルのしきい値: SMITH:100;JONES:200;CLARK:500

    クリティカルのしきい値は、SMITHは100、JONESは200、CLARKは500に設定されます。

    他のすべてのキーは、「警告」フィールドおよび「クリティカル」フィールドで指定されたしきい値を使用します。

 

通知前の連続した状態変化 

警告またはクリティカルの重大度でアラートがトリガーされるまでに、返された値が警告またはクリティカルのしきい値に連続して達した回数。この機能は、持続した状態を監視する場合に有用です。たとえば、スクリプトで特定のマシンのCPU負荷を監視する場合、CPU負荷が上昇するたびに通知を受けても意味がありません。CPU負荷が監視サイクルで連続して特定のしきい値(警告またはクリティカル)レベルに留まっている場合にのみ、通知を受けるほうが効果的です。  

レスポンス処理 

オプション。ユーザー定義メトリックにより警告またはクリティカルのアラートが生成された場合に実行されるスクリプトまたはコマンドを指定します。スクリプトまたはコマンドは、エージェント所有者の資格証明を使用して実行されます。

重要: メトリックのレスポンス処理を作成および編集できるのは、Enterprise Managerのスーパー管理者のみです。

たとえば次の場合、管理エージェントによりレスポンス処理が実行されます。

アラートの重大度が「警告」または「クリティカル」である場合

かつ

重大度が変化している場合(「警告」から「クリティカル」へ、「クリティカル」から「警告」へ、「消去」から「警告」または「クリティカル」へ、など)

詳細は、Enterprise Managerのオンライン・ヘルプを参照してください。 

アラート・メッセージ 

アラートの送信時に使用するカスタム・メッセージ(最大400文字)を入力します。デフォルト・メッセージでは、メトリック・キーを表す%Key%変数と、その返される値を表す%value%変数が使用されます。%Key%変数および%value%変数では、大文字と小文字が区別されます。

たとえば、支払いシステムでの給与の未払いに対するアラートは、次のように定義します。

Underpaid Employee: %Key% has salary of %value%

SQL問合せが2列を返す場合、%Key%変数を使用してキー値を表し、%value%変数を使用して戻り値を表します。

SQL問合せが1列を返す場合、アラート・メッセージ内に使用できるのは%value%変数のみです。  

「ユーザー定義メトリック」の「スケジュール」インタフェースでは、SQL問合せまたはファンクションの実行頻度を指定できます。

14.3.1 SQLベースのユーザー定義メトリックの例

バージョン9i以上のデータベースの場合、例に示す問合せは、管理エージェントのデフォルトの監視ユーザー・アカウントであるdbsnmpとして実行できます。(SELECT ANY DICTIONARYシステム権限を持たない)8.1.7データベースの場合、問合せが正常に実行されるためには、dbsnmpに対して次の権限を付与する必要があります。

例1:

grant select on sys.dba_tablespaces to dbsnmp;
grant select on sys.dba_data_files to dbsnmp;
grant select on sys.dba_free_space to dbsnmp;

例2:

grant select on sys.dba_extents to dbsnmp;

前述のgrant文は、「connect internal」を介してログインした後、SYSDBAとして実行できます。また、DBAロールを付与されたユーザーはこれらの問合せを実行できます。

14.3.1.1 例1: 表領域名および使用率を返す問合せ

このユーザー定義メトリックの例では、ディクショナリ管理の永続表領域に使用される領域の割合を監視します。DBAは、表領域のデータファイルを追加する時期を判断する目安としてこの値を使用できます。

ポーリングの頻度は30分間、警告のしきい値は75、クリティカルのしきい値は85に設定することをお薦めします。

例1のSQL
SELECT d.tablespace_name,
     round(((a.bytes - NVL(f.bytes,0))*100/a.maxbytes),2) used_pct
FROM   sys.dba_tablespaces d,
      (select tablespace_name, sum(bytes) bytes, sum(greatest(maxbytes,bytes)) maxbytes
         from sys.dba_data_files group by tablespace_name) a,
      (select tablespace_name, sum(bytes) bytes
         from sys.dba_free_space group by tablespace_name) f
WHERE d.tablespace_name = a.tablespace_name(+)
 AND d.tablespace_name = f.tablespace_name(+)
 AND NOT (d.extent_management = 'LOCAL' AND d.contents = 'TEMPORARY') 

14.3.1.2 例2: セグメント名/タイプおよびエクステント数を返す問合せ

このユーザー定義メトリックの例では、エクステントの数が多くなっているSYSTEM以外の表セグメントおよび索引セグメントをチェックします。エクステントの数が多い場合、セグメントが断片化されているか、パフォーマンスの問題が存在するか、あるいはその両方の可能性があります。DBAは、Enterprise Managerでセグメントの縮小または再編成ウィザードを呼び出す時期を判断する目安としてこの値を使用できます。

ポーリングの頻度は24時間、警告のしきい値は1000、クリティカルのしきい値は2000に設定することをお薦めします。

例2のSQL
SELECT decode(nvl(partition_name, ' '),
             ' ',   owner || '.' || segment_name || ' ' || segment_type,
             owner || '.' || segment_name || '.' || partition_name || ' ' || 
segment_type) as segment, count(extent_id) as extent_count FROM dba_extents WHERE (segment_type like 'TABLE%' OR segment_type like 'INDEX%') AND (owner != 'SYSTEM' AND owner != 'SYS') GROUP BY owner, segment_name, partition_name, segment_type ORDER BY EXTENT_COUNT DESC

14.3.1.3 例3: PL/SQLルーチンへの長いSQL文の埋込み

SQLベースのユーザー定義メトリックを形成するSQL文が1024文字を超える場合は、SQL文をPL/SQLルーチンに埋め込む必要があります。その作業は、3つのステップで実行します。この例では、1つの長いSQL文を使用して表領域と表領域の中の空き領域を監視し、ユーザー指定のしきい値を空き領域が下回ったらアラートが発生します。この問合せを使用して、2列のSQLUDMが作成されます。

例14-1の長い(1024文字を超えている)SQL文は、tablespace_name(キー)およびfree_mb(値)という2つの値を返します。

例14-1    長いSQL文

select Tablespace, case when (MxAvail <= 15) and (MxFreeMB < 20000) then 'CRITICAL, 
'||MxUsed||'%' when (MxAvail <= 20) and (MxFreeMB < 20000) then 'WARNING, 
'||MxUsed||'%' else 'OK' end Error_Level, MxAvail,MxUsed,MxFreeMB,MxExdMB from (select 
nvl(b.tablespace_name, nvl(a.tablespace_name,'UNKNOWN')) as Tablespace, data_files as 
NumDBFs, mbytes_alloc as AllocMB, Round( mbytes_alloc-nvl(mbytes_free,0),0) as UsedMB, 
Round(nvl(mbytes_free,0),0) "AllocFreeMB", Round((( mbytes_alloc-nvl(mbytes_free,0))/ 
mbytes_alloc)*100,0) as AllocUsed, MaxSize_Mbytes as MxExdMB, Round(MaxSize_Mbytes - 
(mbytes_alloc-nvl(mbytes_free,0)),0) as MxFreeMB, Round((mbytes_alloc/MaxSize_
Mbytes*100),0) as MxUsed, Round((MaxSize_Mbytes - (mbytes_alloc-nvl(mbytes_
free,0)))/MaxSize_Mbytes *100,0) as MxAvail from ( select sum(bytes)/1024/1024 
mbytes_free, max(bytes)/1024/1024 largest,tablespace_name from sys.dba_free_space group by tablespace_name ) a, ( select sum(bytes)/1024/1024 mbytes_alloc, sum(decode(maxbytes,0,bytes,maxbytes))/1024/1024 MaxSize_Mbytes, tablespace_ name,count(file_id) data_files from sys.dba_data_files group by tablespace_name )b where a.tablespace_name (+) = b.tablespace_name order by 1)

2列のSQL UDM(表領域、free_space_in_MB)が作成されるので、次のように、この問合せから返されるデータ用に配列を1つ作成する必要があります。

例14-2    返される値用の配列の作成

CREATE OR REPLACE TYPE tablespace_obj as OBJECT
(
    tablespace_name VARCHAR2(256),
    free_mb NUMBER
);
/

CREATE OR REPLACE TYPE tablespace_array AS TABLE OF tablespace_obj;
/

次のステップでは、例14-1で示した長いSQL文を、例14-3で示すPL/SQLルーチンに埋め込みます。

例14-3    PL/SQLルーチンに埋め込まれたSQL

CREATE OR REPLACE FUNCTION calc_tablespace_free_mb
RETURN tablespace_array
IS
    tablespace_data TABLESPACE_ARRAY := TABLESPACE_ARRAY();
BEGIN
    SELECT tablespace_obj(tablespace, mxfreemb)
        BULK COLLECT INTO tablespace_data
    FROM
(
select Tablespace, case when (MxAvail <= 15) and (MxFreeMB < 20000) then
 'CRITICAL, '||MxUsed||'%' when (MxAvail <= 20) and (MxFreeMB < 20000) then
 'WARNING, '||MxUsed||'%' else 'OK' end Error_Level,
 MxAvail,MxUsed,MxFreeMB,MxExdMB from (select nvl(b.tablespace_name,
 nvl(a.tablespace_name,'UNKNOWN')) as Tablespace, data_files as NumDBFs, mbytes
_alloc as AllocMB, Round( mbytes_alloc-nvl(mbytes_free,0),0) as UsedMB,
 Round(nvl(mbytes_free,0),0) "AllocFreeMB", Round((( mbytes_alloc-nvl(mbytes
_free,0))/ mbytes_alloc)*100,0) as AllocUsed, MaxSize_Mbytes as MxExdMB,
 Round(MaxSize_Mbytes - (mbytes_alloc-nvl(mbytes_free,0)),0) as MxFreeMB,
 Round((mbytes_alloc/MaxSize_Mbytes*100),0) as MxUsed, Round((MaxSize_Mbytes -
 (mbytes_alloc-nvl(mbytes_free,0)))/MaxSize_Mbytes *100,0) as MxAvail from (
 select sum(bytes)/1024/1024 mbytes_free, max(bytes)/1024/1024 largest,tablespace
_name from sys.dba_free_space group by tablespace_name ) a, ( select
 sum(bytes)/1024/1024 mbytes_alloc,
 sum(decode(maxbytes,0,bytes,maxbytes))/1024/1024 MaxSize_Mbytes, tablespace
_name,count(file_id) data_files from sys.dba_data_files group by tablespace_name
 )b where a.tablespace_name (+) = b.tablespace_name order by 1)
) CUSTOMER_QUERY;

  RETURN tablespace_data;
END calc_tablespace_free_mb;
/

このプロセスの最後のステップでは、次の項目を指定して、2列のUDMを作成します。

14.4 通知、修正処理および監視テンプレート

ユーザー定義メトリックは他のメトリックと同様に扱われるため、Enterprise Managerの通知システム、修正処理および監視テンプレートを利用できます。


注意:

修正処理および監視テンプレートでは、単一のスカラー値を返すOSベースおよびSQLベースのユーザー定義メトリックが両方ともサポートされます。 


14.4.1 ユーザー定義メトリックの通知の取得

通常のメトリックの場合と同様に、ユーザー定義メトリックのクリティカルまたは警告のアラート重大度に達した場合、電子メール通知を受け取ることができます。電子メール・アドレスおよび通知スケジュールをすでに定義してある場合、後はユーザー定義メトリックの通知ルールを設定するだけです。

通知ルールを設定するには、次のようにします。

  1. 「プリファレンス」をクリックします。

  2. 垂直ナビゲーション・バーから、スーパー管理者は「ルール」を、通常のEnterprise Manager管理者は「ルール」をクリックします。

  3. 「作成」をクリックして、新規の通知ルールを定義します。「通知ルールの作成」ページが表示されます。

  4. 「一般」ページで、必要なルール定義情報を入力し、OSベースのユーザー定義メトリックの場合は「ターゲット・タイプ・ホスト」を選択し、SQLベースのユーザー定義メトリックの場合は「データベース・インスタンス」を選択します。

  5. 「メトリック」ページで「追加」をクリックします。使用可能なメトリックのリストが表示されます。すべてのメトリックを同時に表示するには、ドロップダウン・メニューから「すべて表示」を選択します。

  6. ユーザー定義メトリックにより返される値のタイプに基づいて、「ユーザー定義数値メトリック」または「ユーザー定義文字列メトリック」を選択します。

  7. 「オブジェクト」列で、すべてのユーザー定義メトリックに対する通知を受ける(「すべてのオブジェクト」)か、特定のユーザー定義メトリックに対する通知を受ける(「選択」)かを選択します。

    「選択」オプションを選択する場合は、ユーザー定義メトリックの名前を入力します。複数のユーザー定義メトリックは、カンマで区切って指定します。特定のユーザー定義メトリックのパターンに一致させる場合、ワイルドカード文字(%)を使用できます。

    検索機能(懐中電灯アイコン)を使用すると、使用可能なユーザー定義メトリックを検索できます。ただし、検索結果には、少なくとも1つの収集済データ・ポイントがあるユーザー定義メトリックしか表示されません。新しく作成したユーザー定義メトリックのように、まだ1つもデータ・ポイントが収集されていないメトリックの場合は、「選択」テキスト入力フィールドでそのメトリックを指定する必要があります。

  8. 通知を受ける重大度または修正処理の状態を選択し、「続行」を選択します。

  9. 指定したユーザー定義メトリックに対する電子メールを受け取るには、「通知ルール」を表示し、「電子メールを送信」オプションを選択します。

  10. 「OK」をクリックして、新規の通知ルールを作成します。通知ルールをパブリックにすると、他の管理者が同じルールにサブスクライブできます。

14.4.2 ユーザー定義メトリックの修正処理の設定

修正処理を使用すると、アラートに対する自動レスポンスを指定できるため、アラートに対するルーチン・レスポンスが自動的に実行されます。修正処理は、SQLベースおよびOSベースのユーザー定義メトリックのどちらにも定義できます。

修正処理を設定するには、次のようにします。

  1. ターゲットのホームページで、「関連リンク」から「メトリックとポリシー設定」をクリックします。

  2. ユーザー定義メトリックを探し、編集します。

  3. 「詳細設定の編集」ページから、アラート重大度に応じて「クリティカルの場合の修正処理」または「警告の場合の修正処理」の下の「追加」をクリックします。修正処理は、片方または両方のアラート重大度に対して定義できます。

14.4.3 監視テンプレートを使用した、多数のターゲットにわたるユーザー定義メトリックのデプロイ

監視テンプレートを使用すると、監視設定を1回指定するだけでその設定を監視対象ターゲットに適用できるため、企業の監視設定の標準化が容易になります。このように、多数のターゲットにユーザー定義メトリックを伝播する方法として監視テンプレートを使用できます。

ホストまたはデータベースのターゲット上にユーザー定義メトリックをすでに作成してある場合は、監視テンプレートを使用して、他のホストまたはデータベースのターゲットにそのユーザー定義メトリックを伝播できます。

ユーザー定義メトリックの監視テンプレートを作成するには、次のようにします。

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

  2. 垂直ナビゲーション・バーから「監視テンプレート」をクリックします。

  3. 「作成」をクリックします。ターゲット設定のコピー・ページが表示されます。

  4. ユーザー定義メトリックを定義したホストまたはデータベースを指定し、「続行」をクリックします。

  5. 「一般」ページで必要な情報を入力します。

  6. 「メトリックしきい値」ページで、ターゲットからコピーされた他のメトリックを保持するか、削除するかを選択できます。

  7. また、ユーザー定義メトリックのしきい値、収集スケジュールおよび修正処理を編集することもできます。

  8. 「ポリシー」ページで、ターゲットからコピーされたポリシー・ルールを保持するか、削除するかを選択できます。

  9. 「OK」をクリックして、テンプレートの設定を管理リポジトリに保存します。

ユーザー定義メトリックを含むテンプレートを作成した後は、そのテンプレートを他のホストまたはデータベースに適用することにより、ユーザー定義メトリックを伝播できます。


重要

OSベースのユーザー定義メトリックの場合、まず最初に、ユーザー定義メトリックで使用されるOSスクリプトをすべての宛先ホストに個別にデプロイする必要があります。OSスクリプトは、すべてのホスト・ターゲットで同じ場所に置く必要があります。

SQLベースのユーザー定義メトリックでは、指定されたSQL問合せがファンクション・コールの場合、SQLベースのユーザー定義メトリックが作成されるすべてのデータベースに対して、この機能を作成する必要があります。 


監視テンプレートを適用するには、次のようにします。

  1. 「監視テンプレート」ページで監視テンプレートを選択し、「適用」をクリックします。

  2. 「監視テンプレートの適用」ページで、ユーザー定義メトリックを作成するターゲットを追加します。

  3. 2列のSQLベースのユーザー定義メトリックがテンプレートに含まれる場合、次のいずれかの状況に従って、複数のしきい値のあるメトリック・オプションが適用されます。

    • 状況1: テンプレートが適用されるターゲットに、テンプレート内で定義されている
      2列のSQLベースのユーザー定義メトリックが含まれていない。この状況では、複数のしきい値のあるメトリック・オプションのいずれを選択した場合でも、テンプレートの適用時に、ユーザー定義メトリックがターゲットにコピーされます。

    • 状況2: テンプレートが適用されるターゲットに、2列のSQLベースのユーザー定義メトリックが含まれている。ターゲットとテンプレートのユーザー定義メトリックの名前(大/小文字が区別されない)および戻り値(数値、スカラー値または2列)は、両方とも一致する必要があります。この状況では、複数のしきい値のあるメトリック・オプションの1つを選択する必要があります。

      • テンプレートおよびターゲットの両方に共通の監視対象オブジェクトにしきい値設定を適用します: テンプレートと共通するターゲットのキーのみについて、ターゲットのしきい値がテンプレートで定義されている値に設定されます。このオプションはデフォルトで選択されており、ほとんどの場合に推奨されます。

      • ターゲットのしきい値設定の重複: ターゲットとテンプレートに共通するキーについて、しきい値がテンプレートで定義されている値に設定されます。テンプレートに含まれ、ターゲットにない余分なキー(およびそのしきい値)は、将来ターゲット内で作成されるときに備えて、ターゲットにコピーされます。ターゲットに含まれ、テンプレートにない余分なキー(およびそのしきい値)は、ターゲットからすべて削除されます。

    重要: 監視テンプレート内に他のメトリックが存在する場合、まず、これらのメトリックに対するこのオプションの含意をEnterprise Managerのオンライン・ヘルプで調べてください。

  4. 「続行」をクリックします。

  5. 後続のページで、宛先ターゲットでユーザー定義メトリックを実行する際に使用する資格証明を指定します。

  6. 「終了」をクリックします。

  7. 「監視テンプレート」ページに戻ったら、テンプレートの「保留中の適用操作」の件数が
    0(ゼロ)になっていることを確認します。これは、保留中になっている可能性のあるテンプレート適用操作の件数を示します。適用操作がすべて完了すると、件数は0(ゼロ)になります。

スクリプトを使用したユーザー定義メトリックのデプロイ

多数のターゲットにユーザー定義メトリックをデプロイする別の方法としては、Enterprise Managerコマンドライン・インタフェース(EMCLI)を使用する方法があります。EMCLIのapply_template動詞を使用して、ユーザー定義メトリックをカスタム・スクリプト経由でデプロイできます。apply_template動詞の詳細は、『Oracle Enterprise Managerコマンドライン・インタフェース』のマニュアルを参照してください。

14.4.4 監視テンプレートを使用した、多数のターゲットにわたるユーザー定義メトリックの削除

多数のターゲットにわたってユーザー定義メトリックをデプロイする場合と同様に、これらのメトリックが不要になったときにも、テンプレートを使用して、それらのターゲットからメトリックを削除できます。

ユーザー定義メトリックの監視テンプレートを作成するには、次のようにします。

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

  2. 垂直ナビゲーション・バーから「監視テンプレート」をクリックします。

  3. 「作成」をクリックします。ターゲット設定のコピー・ページが表示されます。

  4. 削除するユーザー定義メトリックがあるホストまたはデータベースを指定して、「続行」をクリックします。

  5. 「一般」ページで必要な情報を入力します。

  6. 「メトリックしきい値」ページで、削除対象のユーザー定義メトリックを除くすべてのメトリックを、テンプレートから削除します。

  7. 鉛筆のアイコンをクリックして「詳細設定の編集」ページにアクセスします。

  8. 「削除対象としてマーク」オプションを選択して「続行」をクリックします。「メトリックしきい値」ページのユーザー定義メトリックの横に、「削除対象としてマーク」アイコンが表示されます。

  9. 「ポリシー」ページで、すべてのポリシーを削除します。

  10. 「OK」をクリックして、テンプレートの設定を管理リポジトリに保存します。

監視テンプレートを適用するには、次のようにします。

  1. 「監視テンプレート」ページで監視テンプレートを選択し、「適用」をクリックします。

  2. 「監視テンプレートの適用」ページで、ユーザー定義メトリックを削除するターゲットを追加します。

  3. 「続行」をクリックします。

  4. 後続のページで、宛先ターゲットでユーザー定義メトリックを実行する際に使用する資格証明を指定します。

  5. 「終了」をクリックします。

  6. 「監視テンプレート」ページで、テンプレートの「保留中の適用操作」の件数が0(ゼロ)になっていることを確認します。これは、保留中になっている可能性のあるテンプレート適用操作の件数を示します。適用操作がすべて完了すると、件数は0(ゼロ)になります。

Enterprise Managerによって、選択済ターゲットで検出されたユーザー定義メトリックのうち、次の条件と一致するメトリックがすべて削除されます。

14.5 ユーザー定義メトリックの資格証明の変更

すでに説明したように、スクリプト/SQL問合せの監視を実行するには、ユーザー定義メトリックに有効な資格情報(ユーザー名およびパスワード)が必要です。このため、監視対象のターゲットのパスワードと、ユーザー定義メトリック内で定義されているパスワードの両方が一致する必要があります。これはターゲットのパスワードが頻繁に変更される場合に問題となります。ターゲットが多数存在する環境では、Enterprise Managerコマンドライン・インタフェース(EMCLI)を使用して、スクリプトによってターゲットのパスワードとユーザー定義メトリックのパスワードを同時に変更できます。update_password動詞を使用してターゲットのパスワードを変更します。その後、特定のユーザー名を使用するEnterprise Managerの全機能にこのパスワードの変更が伝播されます。これには優先資格証明、修正処理、ジョブおよびホストとSQLベースのユーザー定義メトリックの両方が含まれます。

次の例では、OSユーザーsysUserに関するパスワードがsysUserOldPasswordからsysUserNewPasswordへ変更されます。

例14-4    ホスト・パスワードの変更

update_password   -target_type=host  -target_name=MyHost  -credential_type=HostCreds  
-key_column=HostUserName:sysUser
-non_key_column=HostPassword:sysUserOldPassword:sysUserNewPassword

次の例では、データベース・ユーザーsysに関するパスワードがsysPasswordからsysNewPasswordに変更されます。

例14-5    データベース・パスワードの変更

update_password -target_type=oracle_database -target_name=ORCL 
-credential_type=DBCreds -key_column=DBUserName:sys -non_key_column=DBPassword:sysPassword:sysNewPassword:DBAROLE

EMCLIの詳細は、『Oracle Enterprise Managerコマンドライン・インタフェース』のガイドを参照してください。


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

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