Solstice Enterprise Agents 1.0 ユーザーズガイド

SNMP ベースのマスターエージェントとサブエージェント

SNMP ベースのマスターエージェントとサブエージェントの概要

マスターエージェントは、Solstice Enterprise Agents 技術の主要構成要素です。マスターエージェントは、デーモンプロセスとして動作し、ユーザーデータグラムプロトコル (UDP) のポート 161 で SNMP 要求を受信します。またマスターエージェントは、ほかのポートをオープンして、さまざまなサブエージェントから SNMP トラップ通知を受信します。これらのトラップは、構成ファイルでの定義に従ってさまざまなマネージャに転送されます。

マスターエージェントの起動

システムを最初に起動すると、システムの起動スクリプトファイルによってマスターエージェントが呼び出されます。マスターエージェントが起動されると、さまざまな構成ファイルが読み込まれます。次に、サブエージェントが動作可能になり、さまざまなサブエージェントのサブツリー OID を定義し、サブエージェント自身の MIB を設定することによって、適切なアクションが実行されます。マスターエージェントは、次の機能を提供します。


注 -

ポート 161 を使用する snmpd (Domain Mamager の一部) などの SNMP エージェントを実行している場合は、Solstice Enterprise Agents は実行できません。


サブエージェントの起動

サブエージェントは、次の方法で起動できます。

サブエージェントとの通信

サブエージェントからマスターエージェントへの通信は、UDP ポート 161 を使って行われます。サブエージェントからマスターエージェントへのトラップの送信については、 「トラップ通知」で説明します。


注 -

マスターエージェントは、サブエージェントごとに個別のポートで通信を行います。


また、マスターエージェントは、登録されているサブエージェントが起動し、動作しているかどうかを、次の条件をもとに確認します。

サブエージェントの登録

サブエージェントを登録するために、マスターエージェントは、サブエージェントを MIB に結び付けます。次に、マスターエージェントは、以下のどちらかの方法を使って、サブエージェントの現在の位置を決めます。

バインドポリシーは、SNMP オブジェクト識別子 (OID) の登録に関するものです。これは、さまざまなサブエージェントに SNMP 要求をディスパッチする際のマスターエージェントの意思決定に影響します。マスターエージェントは、表 3-1 に示すバインドポリシーをサポートします。

表 3-1 バインドポリシー

登録の種類 

登録方法 

個別変数登録 

サブエージェントは個々の変数を管理できる 

行の登録 

サブエージェントは各行または複数の行を管理できる 

テーブルの登録 

サブエージェントは、テーブルの全体および一部分に登録を行うことができる。テーブルの一部分の登録とは、テーブルのいくつかのカラムを登録することである。たとえば、テーブルに c1〜c5 のカラムがある場合、サブエージェントは、そのテーブルの c3 と c5 のカラムだけを登録できる 

二重登録 

二重登録は行えない 

重複登録 

重複登録の場合、マスターエージェントは、OID が最も一致している要求をディスパッチする 

要求の送信

マスターエージェントは、2 つのモードによる SNMP 要求 (Get、Get Next、および Set) の転送をサポートしています。省略可能な引数をコマンド行呼び出しに指定することによって、モードが示されます。モードは次のとおりです

送信可能な要求を次に示します。

トラップ通知

サブエージェントは、マスターエージェントにトラップを送信します。マスターエージェントは、どのマネージャがトラップを受信するかを決めます。この判断は設定可能です。

サブエージェントについて

サブエージェントは、ネットワークマネージャと直接通信することはありません。その代わりに、マスターエージェントと通信します。サブエージェントの管理責任はマスターエージェントに委ねることができます。ただし、それを受諾するか拒否するかはマスターエージェントによって判断されます。

サブエージェントは、マスターエージェントに登録されてから、マスターエージェントからの SNMP 要求を待ちます。要求を受信すると、サブエージェントは適切な応答を返送します。さらに、サブエージェントは、SNMP トラップを送信することもできます。

サブエージェントは、4 つの主な要素で構成されます。その 4 つの要素とは、SNMP トラップ、サービス API スタック、サブエージェントアプリケーション、MIB データベースです。マスターエージェントは、SNMP のプロトコルデータユニット (PDU) の送受信を管理します。また、PDU のコード化と復号化を行います。SP (スタック) は、受け取った要求を適切にディスパッチしたり、適用可能なコールバック関数を呼び出します。

システムインタフェースモジュールは、サブエージェントによって管理されているすべての変数に対するコールバックを実装したものです。MIB コンパイラは、自動的にこの情報を生成します。

システムに依存するインタフェースと MIB データベース以外の他の構成要素は、他のサブエージェントによって再利用可能です。これらの構成要素は、ライブラリで提供されています。

確立

サブエージェントは、サブエージェント自身の存在を知らせ、通信方法を指定します。トランスポートは、UDP が使用されます。サブエージェントが SNMP 要求を受信するポートは設定可能です。詳細については、「エージェントアクセス制御ファイル」を参照してください。ハンドシェイクプロトコルを使用して動的にこの確立処理を行うこともできます。

保守管理

サブエージェントは、マスターエージェントの存在を定期的に確認します。マスターエージェントによって呼び出されていない動的サブエージェントは、マスターエージェントが実行状態であるかどうかを定期的に判断します。実行時ライブラリは、割り込みイベントによって、サブエージェントのサブツリーをマスターエージェントに登録します。

終了

終了時には、動的サブエージェントが終了しようとしていることをマスターエージェントに知らせます。そのあと、マスターエージェントは、メモリー内のサブエージェントのテーブルからその行のエントリを削除できます。

マスターエージェントの使用方法

snmpdx [-h] [-p port_number] [-r filename]

[-a filename] [-c dirname] [-i filename] [-o filename] [-y]

[-m GROUP|SPLIT] [-d debug_level] 

コマンド行の引数を、表 3-2 に示します。

表 3-2 マスターエージェントのコマンド行引数

引数 

説明 

-a filename

アクセス制御ファイルのフルパスを指定する。デフォルトのファイルは、/etc/snmp/conf/snmdx.acl。詳しくは、「エージェントアクセス制御ファイル」を参照

-c dirname

エージェントのリソースファイルが含まれているディレクトリのフルパスを指定する。 

デフォルトのディレクトリは、/etc/snmp/conf

-d debug_level

デバッグのために使用される。debug_level (0〜4) に応じて、特定の情報を印刷する。デフォルトの debug_level は 0

-h

コマンドの使用方法を表示 

-i filename

クラッシュ後の復旧の際にマスターエージェントによって使用される PID のフルパスを指定する。UNIX プロセス ID、ポート番号、リソース名、およびエージェント名などが含まれる。デフォルトのファイルは、/var/snmp/snmpdx.st

-o filename

このファイルには、(Sun Microsystems, 1.3.1.6.1.4.32) のように (enterprise_name, oid) の組み合わせを記述しておく。このファイルに基づいて、トラップのフィルタおよびプロセスの転送が行われる。デフォルトのファイルは、/etc/snmp/conf/enterprises.oid

-m GROUP | SPLIT

SNMP 要求の転送モードを指定する。デフォルトのモードは GROUP。2 つのモードの詳細は、「要求の送信」を参照

-p port_number

ポート番号を指定する。デフォルトのポート番号は 161。 -p 1234 のように指定する

-r filename

マスターエージェントによって使用されるリソースファイル名のフルパスを指定する。リソースファイルには、マスターエージェントが呼び出したり、管理したりするサブエージェントについての情報を保存する。デフォルトのリソースファイルは、/etc/snmp/conf/snmpdx.rsrc。詳しくは、「エージェントリソース構成ファイル」を参照

-y

マスターエージェントのプロセスを呼び出して、復旧モジュールを呼び出す際の復旧インジケータシグナル。復旧プロセスでは、前のセッションのどのサブエージェントが実行状態のままかを検出する。実行状態にないサブエージェントは、マスターエージェントによって再度起動される