目次 前 次 PDF


Oracle SNMPエージェント・インテグレータを使用したポーリング

Oracle SNMPエージェント・インテグレータを使用したポーリング
次の項では、Oracle SNMPエージェント・インテグレータを管理ステーションのプロキシとして使用し、管理対象ノード上でローカルにポーリングを実行する方法について説明します。
ポーリングの概要
ポーリングとは、管理対象リソースの属性の値を特定の間隔でチェックするアクティビティです。重要なシステム・コンポーネントやアプリケーションでのフォルトを検知するには、管理システムでポーリングを実行して、管理対象リソースの属性値が重大なしきい値に達していないかどうかを判別します。しかし、管理ステーションから直接ポーリングを実行すると、ネットワーク帯域と管理ステーション自体への負荷が増大し、ポーリング対象コンポーネントの数が増えるにつれて効率性が低下します。
Oracle SNMPエージェント・インテグレータをマネージャのプロキシとして動作するように構成すると、管理対象ノード上でローカルにポーリングを実行できます。分散されたインテグレータ・エージェントにポーリングを実行させることで、管理ステーションへの負荷を軽減し、ネットワーク帯域の消費を抑えることができます。
チェックするしきい値はユーザーが設定できます。ポーリングは、Oracle SNMPエージェント・インテグレータの開始時にアクティブ化するか、管理ステーションからのSNMP Setリクエストでアクティブ化できます。設定したしきい値に達すると、Oracle SNMPエージェント・インテグレータがエンタープライズ固有のSNMPトラップを送信します。警告の理由を示すため、特定のしきい値に達したときに生成されるトラップに、送信する特定のトラップ・タイプ番号を構成しておきます。マネージャとOracle SNMPエージェント・インテグレータの間の通信が発生するのは、マネージャがSetリクエストを送信してポーリングを非アクティブ化(または再アクティブ化)するときと、Oracle SNMPエージェント・インテグレータが管理対象リソースで指定のイベントを検知してSNMPトラップを送信するときだけです。設定したしきい値に達したときにスクリプトやプログラムを実行するよう、Oracle SNMPエージェント・インテグレータを構成することもできます。
ローカル・ポーリングの設定手順
Oracle SNMPエージェント・インテグレータを使用してローカル・ポーリングを実行するには、次の手順に従って設定を行います。
1.
どのリソースをモニターするかを決めます。
モニターするリソースの属性は、MIBオブジェクトとして定義する必要があります。これらのMIBオブジェクトは、管理対象ノードにインストールされているエージェントまたはサブエージェントによってサポートされていなければなりません。
2.
Oracle SNMPエージェント・インテグレータから管理対象リソースにアクセスできるようにします。
Oracle SNMPエージェント・インテグレータには、管理対象オブジェクトにアクセスする方法を知らせるなければなりません。つまり、そのオブジェクトのオブジェクト識別子を、Oracle SNMPエージェント・インテグレータから認識できるOIDツリーのブランチ内に配置しておく必要があります。
モニターする管理対象オブジェクトが管理対象ノードにインストールされているSMUXサブエージェントによってサポートされていない場合は、そのOIDツリーのセクションがサブエージェントの開始時にOracle SNMPエージェント・インテグレータに自動的に登録されます。この登録内容は、Oracle SNMPエージェント構成ファイルのOID_CLASSエントリで変更できます。詳細は、8-1ページの「構成ファイル」を参照してください。
ピアSNMPエージェント(またはDPIとSMUXのマスター・エージェント)の場合は、Oracle SNMPエージェント構成ファイルのNON_SMUX_PEERエントリを使用して、エージェントがサポートするOIDツリーのセグメントを定義する必要があります。詳細は、6-1ページの「複数のSNMPエージェントで使用するOracle SNMPエージェント・インテグレータの構成」を参照してください。
Oracle SNMPエージェント・インテグレータで直接サポートされるMIBグループは、MIB-IIのsystemグループとsnmpグループ、SMUX MIB、およびSNMPエージェントMIBのOracle SNMPエージェントbeaintAgtTableです。
3.
Oracle SNMPエージェント・インテグレータへのポーリング指示を定義します。
この手順では、次の2つを行います。
必要なしきい値を定義する
しきい値に達したときのアクションを指定する
SNMPインテグレータの各ポーリング指示は、規則と呼ばれています。規則は、Oracle SNMPエージェントのbeamgr.conf構成ファイルのRULE_ACTIONエントリで定義されます。このファイルは任意のテキスト・エディタを使用して変更できます。(規則の作成方法の詳細は、7-15ページの「新しいポーリング規則の作成」を参照してください。)規則については、7-3ページの「Oracle SNMPエージェント・インテグレータの規則」で説明されており、8-1ページの「構成ファイル」ではRULE_ACTIONエントリの完全な構文を示しています。
4.
Oracle SNMPエージェント・インテグレータのトラップのSNMP管理システムを構成します。
ポーリングしきい値に達すると、Oracle SNMPエージェント構成ファイルのTRAP_HOSTエントリに指定された宛先に、Oracle SNMPエージェント・インテグレータからエンタープライズ固有のSNMPトラップ通知が送信されます。Oracle SNMPエージェント・インテグレータによって生成されたSNMPトラップ通知を使用できるようにするには、SNMP準拠の管理システムでいくつかの構成を実施する必要があります。どのような内容の構成を行うかは、使用している管理システムによって異なります。通常、トラップの受信時にアクションを実行するには、管理システムで構成やマッピングを実施する必要があります。たとえば、トラップを受信したらアイコンの色を赤にする、といったアクションを構成できます。詳細は、使用している管理システムのドキュメントを参照してください。
5.
Oracle SNMPエージェント・インテグレータによるポーリングを開始します。
Oracle SNMPエージェント・インテグレータを開始すると、すべての有効なポーリングの実行が開始されます。詳細は、7-14ページの「Oracle SNMPエージェント・インテグレータのポーリング・アクティビティの開始」を参照してください。
6.
必要に応じて、Oracle SNMPエージェント・インテグレータによるポーリングを非アクティブ化したり再アクティブ化したりします。
ポーリング規則は、MIBオブジェクトとして扱うことができます。したがって、管理ステーションからSNMP Setリクエストを送信することで、ポーリングを非アクティブ化したり再アクティブ化したりできます。詳細は、7-14ページの「Oracle SNMPエージェント・インテグレータのポーリング・アクティビティの開始」を参照してください。
Oracle SNMPエージェント・インテグレータの規則
Oracle SNMPエージェント・インテグレータの規則とは、Oracle SNMPエージェント・インテグレータに対するポーリング指示で、次の部分から構成されます。
規則のユニークな名前(最大8文字)。
インテグレータがチェックする条件(しきい値)。詳細は、7-4ページの「条件」を参照してください。
指定したしきい値に達したときのアクション。詳細は、7-11ページの「状態と遷移」を参照してください。
ポーリング間隔。指定されたオブジェクト値にアクセスする間隔を秒単位で指定します。
条件
Oracle SNMPエージェント・インテグレータでは、ポーリングを行う際、指定した条件が有効であるかどうかの確認チェックを行います。条件は、オブジェクト(オブジェクト識別子で指定)と値の間の関係として定義されます。
条件を定義するための関係
条件が満たされる(しきい値に達する)のは、指定した関係がオブジェクトと値の間で成立したときのみです。たとえば、「より大きい」という関係は、「使用済のディスク容量が90%より大きい」という条件を定義するために使用します。
前述の場合、オブジェクト(使用済のディスク容量のパーセンテージ)の値が90より大きいと、条件が満たされてtrueと評価されます。この例では、条件を「より大きい」と日本語で記述していますが、実際のコーディングでは記号を使用します。
次の表に、条件の定義に使用できる関係を示します。
 
記号
意味
==
と等しい
!=
と等しくない
<
より小さい(数値の場合は
(文字列に対する)部分文字列)
>
より大きい(数値の場合)
を含む(文字列の場合)
<=
以下
>=
以上
SMUXサブエージェントを使用したポーリング
たとえば、Oracle SNMPエージェント・インテグレータを使用して、アクティブ化されていないサーバー・グループがあるかどうかをチェックしたいとします。サーバー・グループの状態は、beaSysPerfグループのtuxTgroupStateオブジェクトによって示されます。Oracle SNMPエージェントのコンポーネントは、SNMP多重化(SMUX)プロトコルを使用して、Oracle SNMPエージェント・インテグレータと通信したり、beaSysPerfグループ内の同じマシン・オブジェクト上にあるOracle SNMPエージェント・インテグレータにオブジェクトの値を提供したりします。このサブエージェントは、SMUXプロトコルを使用してOracle SNMPエージェント・インテグレータと通信します。
次の条件を使用すれば、Oracle SNMPエージェント・インテグレータのポーリング規則を定義できます。
(VAL(.1.3.6.1.4.1.140.300.4.1.1.4.*) !=1)
VAL()は、tuxTgroupStateオブジェクトの値を取得するために使用します。指定した条件(!=1)が満たされるのは、いずれかのサーバー・グループがアクティブでない場合です。この例では、最初のピリオドは、これが絶対OIDであることを示します。つまり、tuxTgroupStateオブジェクトへのパスは.1.3.6.1.4.1.140.300.4.1.1.4.です。インスタンス索引のアスタリスク(*)ワイルドカードは、tuxTgroupStateが1と等しくない場合に条件が満たされることを示します。スカラー・オブジェクトの場合は、インスタンス索引として0を指定します。詳細は、7-10ページの「インスタンス索引」を参照してください。
次に、上に示した条件を使用したOracle SNMPエージェント・インテグレータ規則の例を示します。
RULE_ACTION grpState 60 if (VAL(140.300.4.1.1.4.*) !=1)
{TRAPID_ERR=300}
この例のgrpStateは規則の名前です。Oracle SNMPエージェント・インテグレータは、1分(60)ごとにサーバー・グループの状態をチェックします。いずれかのtuxTgroupStateの値が1と等しくない場合、TRAPID_ERR=300の指示に従って、Oracle SNMPエージェント・インテグレータがエンタープライズ固有のトラップを特定のトラップ・タイプ番号(300)で生成します。
注意:
(Oracle SNMPエージェント・インテグレータが取得できるMIBオブジェクトの値は、Oracle SNMPエージェント・インテグレータが管理するエージェントまたはサブエージェントによってサポートされるMIBオブジェクトに応じて異なります。上の例で、Oracle SNMPエージェント・インテグレータがtuxTgroupStateオブジェクト値をポーリングできるのは、その管理対象ノードでtux_snmpdサブエージェントが実行されている場合のみです。また、Oracle SNMPエージェント・インテグレータがピアSNMPエージェントを介してアクセスできるMIBオブジェクトは、Oracle SNMPエージェント構成ファイルのNON_SMUX_PEERエントリによって異なります。詳細は、6-1ページの「複数のSNMPエージェントの使用」を参照してください。
SNMPピア・エージェントを使用したポーリング
Oracle SNMPエージェント・インテグレータは、ネットワーク内の同じマシンまたは別のマシンにあるSNMPピア(非SMUXピア)エージェントからMIBオブジェクト値を取得することもできます。たとえば、あるピアSNMPエージェントがMIB-II interfacesグループをサポートしているとします。そして、Oracle SNMPエージェント・インテグレータを使用して、使用不能になっている物理インタフェースがないかどうかをチェックしたいとします。インタフェースの状態は、MIB-II interfacesグループのifTableにあるifOperStatusオブジェクトによって示されます。この場合であれば、ifOperStatusの値が1と等しくないかどうかを調べることになります。(ifOperStatusの値が1であれば、そのインタフェースは使用可能です。)マシン上の1番目のインタフェースのifOperStatus値をチェックするには、次のような条件を使用できます。
(VAL(.1.3.6.1.2.1.2.2.1.8.1) != 1)
この条件が満たされるのは、ifTable内の1番目のインタフェースが使用不能な場合のみです。最後の数値「1」はインスタンス索引で、表内の1番目のインタフェースを指定しています。
この条件が満たされたときに、Oracle SNMPエージェント・インテグレータになんらかのアクションを実行させることができます。たとえば、インタフェースのifOperStatus値が1でない(つまり、そのインタフェースが使用不能になっている)場合に、Oracle SNMPエージェント・インテグレータから管理ステーションに通知を送信できます。このようにするには、Oracle SNMPエージェント・インテグレータがエンタープライズ固有のSNMPトラップを管理ステーションに送信するように指定します。このトラップには、特定のトラップ値を設定して、トラップが送信された理由をシステム管理者に伝えることができます。
特定のインタフェース(たとえば、ifTable内の1番目のインタフェース)が使用不能になったときではなく、いずれかのインタフェースが使用不能になったときにこの通知をリクエストすることもできます。
次に、その場合の規則エントリの例を示します。
RULE_ACTION checkIf 120
if (VAL(.1.3.6.1.2.1.2.2.1.8.*) != 1) {TRAPID_ERR=300}
この例のcheckIfは、この特定の規則に付けた名前です。値120は、Oracle SNMPエージェント・インテグレータが2分ごとにインタフェースをチェックすることを示します。インスタンス索引にアスタリスク・ワイルドカードを使用すると、ifTable内のいずれかのインタフェースのifOperStatusが1と等しくない場合に条件が満たされます(つまり、すべてのインタフェースがチェックされます)。いずれかのインスタンスのOID値が1と等しくない場合(つまり、インタフェースが使用不能な場合)、エンタープライズ固有のトラップが特定のトラップID (300)で送信されます。
注意:
このルールでは、Oracle SNMPエージェント・インテグレータがインタフェースの停止を初めて検出した場合にのみトラップが生成されます。インタフェースの停止状態が続く場合、追加のトラップは生成されません。
条件に論理演算子を使用する
条件には、単純な条件と複雑な条件の2種類があります。単純な条件は、管理対象オブジェクトと値の間の関係で構成されます。ここまでに示したすべての例は単純な条件です。
論理演算子AND、OR、およびNOTを使用すると、複雑な条件を定義できます。たとえば、単純な条件AとBがある場合、AとBの両方を満たすような複雑な条件を指定できます。
次の表に、複雑な条件の定義に使用できる記号を示します。
 
記号
意味
!(条件A)
論理否定。「条件A」が満たされない場合にのみしきい値に達します。
(条件A ||条件B)
論理和。「条件A」または「条件B」が満たされる場合にのみしきい値に達します。
(条件A && 条件B)
論理積。「条件A」と「条件B」の両方が満たされる場合にのみしきい値に達します。
複雑な条件の使用例
たとえば、修理のために使用不能にしていたインタフェースのifOperStatusが「使用可能」になっていない場合に、Oracle SNMPエージェント・インテグレータから警告を送信したいとします。この場合であれば、Oracle SNMPエージェント・インテグレータに2つの条件(ifOperStatusが「使用不能」かつifAdminStatusが「使用可能」)を判別させる規則を定義できます。つまり、使用可能になっているべきインタフェースがそうなっていない場合に通知されるようにします。
注意:
Oracle SNMPエージェント・インテグレータが取得できるMIBオブジェクトの値は、Oracle SNMPエージェント・インテグレータが管理するエージェントまたはサブエージェントによってサポートされるMIBオブジェクトに応じて異なります。
この例のサンプル・コード
この例を実現するには、checkIf規則を次のように変更します。
RULE_ACTION checkIf 60
if ((VAL(.1.3.6.1.2.1.2.2.1.8.*) != 1) &&
(VAL(.1.3.6.1.2.1.2.2.1.7.*) == 1))
{TRAPID_ERR=301}
この規則のしくみ
この例では、起動しているインタフェースがない(ifOperStatusが1でない)が、ifAdminStatus値が起動になっている(つまり、インタフェースが起動しているはずなのにしていない)場合、Oracle SNMPエージェント・インテグレータが、インタフェースを毎分(60)チェックし、エンタープライズ固有のトラップを固有のトラップ値301で生成します。
注意:
この規則では、条件が初めてtrueと評価されたときにのみこのトラップが生成されます。インタフェースの状態がそのまま変わらない間は、新しいトラップは生成されません。
条件を定義するためのデータ型
次に、単純な条件の構文を示します。
(VAL(oid) relation value)
説明
relation
7-4ページの「条件を定義するための関係」で説明した関係のいずれかを指定します。
oid
7-9ページの「条件内でのオブジェクト識別子の指定」で説明する形式のいずれかを使用して指定します。
value
次のデータ型のいずれかを指定します。
integer
string
IPアドレス(形式はnumber1.number2.number3.number4)。
一重引用符(\)で囲んだオブジェクト識別子。OIDは、そのオブジェクトを管理するエージェントから返される値を正確に指定する必要があります。
条件内でのオブジェクト識別子の指定
ポーリング条件の定義では、オブジェクト識別子(OID)を数値で指定する必要があります。文字記号は使用できません(次に示すMIB II [mib-2]やenterprisesを除く)。オブジェクト識別子の指定には、次のいずれかの形式を使用できます。
絶対オブジェクト識別子(OIDツリーのルートから目的のオブジェクトまでのフルパス)で指定できます。最初のピリオドは、そのパスがルートから始まっていることを示します(例: .1.3.6.1.2.1.1.1.0)。この例では、最後のゼロはインスタンス索引です。
MIB-IIブランチからの相対OIDは、次の形式で指定できます。
mib-2.number.number ...
先頭のサブOIDとして予約語mib-2を指定すると、それ以降に指定したOIDの前に.1.3.6.1.2.1が付いているものとみなされます。例:
mib-2.1.1.0
この相対OIDは、次の絶対OIDを表します。
.1.3.6.1.2.1.1.1.0
エンタープライズ・ブランチを基準にした相対OIDを次の形式で指定できます。
enterprises.number.number ...
先頭のサブOIDとして予約語enterprisesを指定すると、それ以降に指定したOIDの前に.1.3.6.1.4.1が付いているものとみなされます。例:
enterprises.140.1.0
この相対OIDは、次の絶対OIDを表します。
.1.3.6.1.4.1.140.1.0
エンタープライズ・ブランチを基準にした相対OIDは、次のように数値のみの形式でも指定できます。
number.number.number ... ,
先頭に「.」がなく、OIDが数字で始まる場合、それ以降に指定したOIDの前に.1.3.6.1.4.1が付いているものとみなされます。例:
140.1.1.0
この相対OIDは、次の絶対OIDを表します。
.1.3.6.1.4.1.140.1.1.0
インスタンス索引
列オブジェクトは、表MIBグループの列を表すために使用します。列オブジェクトは、それに応じて複数のインスタンスを持つことができます。インスタンスを指定するには、OIDの一部として索引を追加します。索引が単一属性の場合は、OIDの末尾の番号を使用して特定のインスタンスを指定します。1つのインスタンスを特定するのに複数の属性が必要となる場合は、OIDに追加する各属性のインスタンス番号をピリオドで区切ります。各インスタンス番号は、ASN.1ファイルのINDEX定義で指定した順序で指定します。
たとえば、特定のサーバーがアクティブ以外の状態にあるかどうか、という条件でチェックしたいとします。サーバー・インスタンスをユニークに指定するには、グループ番号とサーバーIDの両方が必要です。ASN.1ファイルのtuxTsrvrTblのINDEXエントリでは、特定のインスタンスのINDEXを次の形式で指定します。
INDEX (tuxTsrvrGrpNo,tuxTsrvrId)
tuxTsrverStateの相対OIDは次のとおりです。
140.300.20.1.1.5
したがって、グループが55、サーバーIDが3のサーバー・インスタンスを指定するには、次のOIDを使用します。
140.300.20.1.1.5.55.3
tuxTsrvrState OIDに追加する2つの属性インスタンスは、前述のINDEX定義に従って、最初にtuxTsrvrGrpNo、その後にtuxTsrvrIdという順序で指定します。
これで、チェックする条件を次のように定義できます。
VAL(140.300.20.1.1.5.55.3) != 1
この条件は、この特定のサーバー・インスタンスがアクティブでないときは常にtrueと評価されます。
特定の番号を使用すると特定のインスタンスを指定でき、アスタリスク・ワイルドカードを使用するとすべてのインスタンスを指定できます。スカラー・オブジェクト(1つのインスタンスしか持てないオブジェクト)の場合は、インスタンス索引としてゼロを指定します。アスタリスク・ワイルドカードは、列オブジェクトのすべてのインスタンスを表す場合にのみ使用します。例:
.1.3.6.1.4.1.140.1.1.0
スカラー・オブジェクトの単一のインスタンスを指定します。
.1.3.6.1.4.1.140.2.22.1.2.*
列オブジェクトのすべてのインスタンスを指定します。ワイルドカードを使用して条件を定義する場合は、インスタンスが1つでも条件に合致すれば、その条件が満たされたことになります。
注意:
 
複雑な規則で複数のOIDを指定する場合は、それらすべてのOIDでワイルドカードを使用するか、まったく使用しないかのどちらかにする必要があります。つまり、特定のインスタンスを指定するOIDとワイルドカードを使用するOIDを、1つの規則内で混在させることはできません。
1つの規則内の複数のOIDでワイルドカードをする場合は、すべてのOIDで指定するオブジェクトを、同じ表内のオブジェクトに限定する必要があります。
複雑な条件でOIDの索引としてアスタリスク(*)を使用した場合、その表のアクセス可能なすべての行について、同じ行の列間で条件がチェックされます。
ワイルドカードを使用して条件を定義する場合は、インスタンスが1つでも条件に合致すれば、その条件が満たされたことになります。たとえば、VAL(.1.3.6.1.2.1.2.1.2.2.1.8.*) == 1は、いずれかのインスタンスの値が1になると条件が満たされます。一度条件が満たされると、その規則はERR状態になります。ERR状態になった規則は、いずれかのインスタンスが条件を満たしているかぎりERR状態のままとなります。この規則は、条件を満たすインスタンスがなくなったときにのみOK状態に遷移します。
状態と遷移
各アクティブ・ポーリング規則に関連付けられているのは状態です。アクティブ規則に考えられる状態は2つあります:
OK - 指定された条件が満たされていない(しきい値に達していない)規則はOK状態になっています。
ERR - 指定された条件が満たされている(しきい値に達している)規則はERR状態になっています。
ポーリングに対してアクションが実行されるかどうかは、状態が遷移したかどうかによって決まります。Oracle SNMPエージェント・インテグレータのポーリング規則では、規則の状態がOKからERRまたはERRからOKに遷移するときにのみ(トラップ通知の生成などの)アクションが実行されます。
Oracle SNMPエージェント・インテグレータがポーリング規則を開始したときの初期状態はOKです。しきい値に達しないかぎり、規則の状態はOKのままとなります。しきい値に達すると、規則の状態がOKからERRに遷移します。条件がtrueと評価されている間は、規則の状態がERRのままとなります。その後、条件がfalseと評価されると、規則の状態はOKに戻ります。したがって、遷移には次の2種類があることになります。
OK状態からERR状態への遷移
ERR状態からOK状態への遷移
注意:
列オブジェクトのすべてのインスタンスの条件をワイルドカード(*)を使用して定義した場合、表のいずれかの行の列で条件がtrueと評価されると、規則の状態がOKからERRに遷移します。一方、規則の状態がOKに戻るのは、表のすべての行の列で条件がfalseと評価されたときです。
アクション
Oracle SNMPエージェント・インテグレータの規則では、ポーリング規則が遷移したときに実行するアクションを指定できます。指定できるアクションは次の2種類です。
ユーザー定義のトラップ番号が設定されたエンタープライズ固有のトラップの送信
指定のプログラムまたはスクリプト(あるいはバッチ・ファイル)の実行
2種類のアクションを、同じ規則に指定することもできます。
注意:
Oracle SNMPエージェント・インテグレータは、遷移が発生したときにのみアクションを実行します。規則が同じ状態にある間は、ポーリングを継続してもアクションが再び実行されることはありません。この制約により、1つのイベントの検知に対してトラップが重複して生成されるのを回避しています。
アクションの定義では、次の4つのキーワードを使用します。
TRAPID_ERR = specific-trap-number
規則の状態がOKからERRに遷移したときに送信するトラップを指定します。
TRAPID_OK = specific-trap-number
規則の状態がERRからOKに遷移したときに送信するトラップを指定します。
COMMAND_ERR = “command”
command部分に、規則の状態がOKからERRに遷移したときに実行するプログラムをに指定します。
COMMAND_OK = “command”
commandにより指定したプログラムが、規則の状態がERRからOKに遷移した場合に実行されます。
注意:
実行するコマンドを指定する文字列は、引用符で囲む必要があります。たとえば、COMMAND_ERR = “usr/mybin/test.ksh"のように指定します。
実行可能ファイルやスクリプトの絶対パスを指定しない場合は、Oracle SNMPエージェント・インテグレータの環境設定でパスを指定しておく必要があります。
アクションを指定する文は、中かっこ{ }で囲む必要があります。1つの規則内に複数のコマンドを指定する場合は、各コマンドをスペースで区切り、コマンド全体を引用符で囲みます。
COMMAND_ERRまたはCOMMAND_OKアクションによって呼び出されるスクリプトやプログラムには、規則の名前と状態遷移の方向(OKからERRまたはERRからOK)を表す文字列が引数として渡されます。
トラップ情報
Oracle SNMPエージェント・インテグレータのポーリング規則によって生成されたエンタープライズ固有のトラップでは、次の情報が渡されます。
ユーザー定義の特定のトラップ番号
規則の名前と状態の変化
TRAPID_ERRアクションでは、トラップの変数バインディング内の文字列が次の形式で渡されます。
Rule id rule-name has triggered from OK to ERR state
TRAPID_OKアクションでは、トラップの変数バインディング内の文字列が次の形式で渡されます。
Rule id rule-name has triggered from ERR to OK state
エンタープライズID
しきい値に達すると、エンタープライズ・フィールドに次のようなエンタープライズOIDが設定されたSNMPトラップ・パケット(PDU)が、Oracle SNMPエージェント・インテグレータによって生成されます。
.1.3.6.1.4.1.140.1.1
注意:
Oracle SNMPエージェント・インテグレータ・ポーリング・アラームでは、トラップのエンタープライズ・フィールドに、Tuxedoシステム・イベントを転送するOracle SNMPエージェント・トラップとは異なるエンタープライズIDが入ります。Oracle SNMPエージェント・インテグレータ・ポーリング・アラームではbeaを使用します。
Oracle SNMPエージェント・インテグレータ・ポーリング・アラームではbeaを使用します」の最後の言葉beaとは何でしょう。
注意:
これに対して、Oracle Tuxedo SNMPエージェント・システム・トラップではtuxedoをエンタープライズIDとして使用します。
次の例では、Oracle SNMPエージェント・インテグレータが10分(600)ごとにポーリングして、使用済のディスク容量が90パーセントを超えているかどうかをチェックします。いずれかのファイル・システムで使用済容量が90パーセントを超えると、エンタープライズ固有のトラップがトラップ番号102で生成されます。その後、すべてのファイル・システムで使用済容量が90パーセント以下になると、エンタープライズ固有のトラップがトラップ番号202で生成されます。
RULE_ACTION diskchk 600
if (VAL(140.2.22.1.5.*) > 90) {TRAPID_ERR = 102 TRAPID_OK = 202}
次の例では、Tuxedoアプリケーションをチェックし、トランザクションのtriptimeが36ミリ秒を超えるかどうかを判別します。しきい値に達すると、エンタープライズ固有のトラップが生成され、イベントの時間をログに記録するユーザー・スクリプトlogtimeが呼び出されます。その後、以前のポーリングでしきい値に達していたtriptimeが36ミリ秒以下になると、エンタープライズ固有のトラップがトラップ番号302で生成されます。
RULE_ACTION triptime 20
if (VAL(140.150.1.3.*) > 36)
{TRAPID_ERR = 301 TRAPID_OK = 302
COMMAND_ERR = “/usr/sbin/logtime"}
注意:
この例のオブジェクト識別子は、Oracle MIBには定義されていません。ユーザー提供のカスタムMIBで定義する場合の例としてください。
次の例では、Oracle SNMPエージェント・インテグレータが5秒ごとにポーリングして、TuxedoサーバーServer1による処理が完了したリクエストの数が6を超えるかどうかをチェックします。6を超えると、エンタープライズ固有のトラップがトラップ番号210で生成され、コマンドC:/etc/srv_reqs.cmdが実行されます。
RULE_ACTION Server1 5
if ((VAL(140.300.20.2.1.12.*) > 6))
{ TRAPID_ERR=210 COMMAND_ERR="C:/etc/srv_reqs.cmd" }
次の例では、Oracle SNMPエージェント・インテグレータが、アクティブ以外のいずれかの状態にある特定のサーバー・インスタンスをチェックします。チェックされるサーバーは、そのグループ番号およびサーバーID(グループ番号55とサーバーID 3)で一意に識別されます。
RULE_ACTION srvrUp 60 if (VAL(140.300.20.1.1.5.55.3) != 1
{TRAPID_ERR = 306 TRAPID_OK = 307}
このサーバーが条件を満たすと、規則がERR状態に遷移し、エンタープライズ固有のトラップがトラップ番号306で生成されます。その後、サーバーがアクティブ化されると、状態がOKに戻り、トラップ番号307のトラップが発行されます。
Oracle SNMPエージェント・インテグレータのポーリング・アクティビティの開始
ポーリング規則は、Oracle SNMPエージェントのbeamgr.conf構成ファイルのRULE_ACTIONエントリとして定義します。このファイルのデフォルトの格納場所は、WindowsシステムではC:\etc、UNIXシステムでは/etcです。個々の規則はMIBオブジェクトで、beaIntAgtTableのエントリ(行)として格納されます。
Oracle SNMPエージェント・インテグレータがその規則を実行するかどうか(つまり、Oracle SNMPエージェント・インテグレータのアクティビティが規則に指定された条件をチェックするかどうか)は、各規則エントリのステータスによって決まります。各規則エントリのステータスは、beaIntAgtStatusオブジェクトに格納されます。ステータスがアクティブ(整数値1)に設定されていれば、その規則についてポーリングはアクティブです。ステータスが非アクティブ(整数値3)に設定されていれば、その規則についてポーリングは非アクティブです。特定の規則のステータスを変更するには、管理ステーション(OpenView、SunNet Managerなど)からSet要求を送信します。Set要求では、エントリ・インスタンス(行)を特定するためのキー・フィールドとしてユニークな規則名を指定します。
注意:
beaIntAgtTable内のオブジェクトへのSetリクエストを正常に実行するには、Oracle SNMPエージェント・インテグレータが実行されている必要があります。
Oracle SNMPエージェント・インテグレータを最初に開始したときには、Oracle SNMPエージェントのbeamgr.conf構成ファイルのRULE_ACTIONエントリに定義されているすべてのポーリング規則の実行が開始されます。開始時には、beaIntAgtTable内の各規則オブジェクトのステータスが有効になります。
新しいポーリング規則の作成
構成ファイルには、次の2つの方法で規則を追加できます。
viなどのテキスト・エディタを使用して、構成ファイルにRULE_ACTIONエントリを追加できます。この場合は、記述した規則が8-1ページの「構成ファイル」で説明する構文に準拠していることを確認してください。ただし、Oracle SNMPエージェント・インテグレータがすでに実行されている場合は、次のコマンドを実行するまで新しい規則は有効になりません。
reinit_agent snmp_integrator
このコマンドを実行すると、Oracle SNMPエージェント・インテグレータが構成ファイルを再び読み取ります。
個々の規則はbeaIntAgtTableに格納されたMIBオブジェクトであるため、SNMPマネージャ(またはsnmptestユーティリティ)を使用してbeaIntMgtTableに新しいエントリ(行)を作成できます。(使用するSNMPマネージャは、複数のオブジェクトを含む単一のSNMP Setリクエストを発行する機能を備えていなければなりません。)新しい行を作成するには、表にまだ存在していない索引値を指定したSetリクエストを発行します。このSetリクエストにより、構成ファイルに新しいRULE_ACTIONエントリが作成されます。
ポーリング規則の削除と変更
Oracle SNMPエージェント・インテグレータのポーリング規則は、作成時と同じ2つの方法で変更できます。
テキスト・エディタを使用して、beamgr.confファイルのRULE_ACTIONエントリを削除(またはコメント・アウト)あるいは変更します。この変更は、Oracle SNMPエージェント・インテグレータにその構成ファイルを再び読み取らせる次のコマンドを発行しないかぎり有効になりません。
reinit_agent snmp_integrator
SNMP Setコマンドを使用して、規則を削除したり変更したりできます。
Oracle SNMPエージェント・インテグレータのポーリング・アクティビティの停止
ポーリングは、次のいずれかの方法で非アクティブ化できます。
構成ファイルからRULE_ACTIONエントリを削除します。
Oracle SNMPエージェントのbeamgr.conf構成ファイルのRULE_ACTIONエントリをコメント・アウトまたは削除すると、ポーリング規則をオフにできます。ただし、この変更を有効にするには、reinit_agent snmp_integratorを実行する必要があります。このコマンドを実行すると、Oracle SNMPエージェント・インテグレータが構成ファイルを再び読み取ります。
snmptestまたはSNMP準拠のマネージャからSetリクエストを送信して、規則のステータスを非アクティブ化するための値を設定します。
その規則のポーリングは、そのオブジェクトの値を非アクティブ(整数値3)に設定すること(または、Oracle SNMPエージェント・インテグレータとパッケージ化されているsnmptestユーティリティを使用すること)により、管理ステーションから非アクティブ化できます。値を2(無効)に設定すると、RULE_ACTIONエントリが構成ファイルから削除されます。次の図は、前述の規則diskchkinactiveに設定されていることを示しています。セット権限には読取り/書込みコミュニティ文字列(この例ではiview)が必要です。
図7-1 ポーリング規則を非アクティブに設定
Oracle SNMPエージェント・インテグレータのポーリング・アクティビティの再開
管理ステーションからのSetリクエストによりポーリング規則が非アクティブ化されているとき、対応するbeaIntAgtStatusオブジェクトの値を有効(整数値1)に設定するSetリクエストを使用してその規則を再アクティブ化できます。

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved