マスターエージェントは、Solstice Enterprise Agents 技術の主要構成要素です。マスターエージェントは、デーモンプロセスとして動作し、ユーザーデータグラムプロトコル (UDP) のポート 161 で SNMP 要求を受信します。またマスターエージェントは、ほかのポートをオープンして、さまざまなサブエージェントから SNMP トラップ通知を受信します。これらのトラップは、構成ファイルでの定義に従ってさまざまなマネージャに転送されます。
システムを最初に起動すると、システムの起動スクリプトファイルによってマスターエージェントが呼び出されます。マスターエージェントが起動されると、さまざまな構成ファイルが読み込まれます。次に、サブエージェントが動作可能になり、さまざまなサブエージェントのサブツリー OID を定義し、サブエージェント自身の MIB を設定することによって、適切なアクションが実行されます。マスターエージェントは、次の機能を提供します。
サブエージェントの起動
サブエージェントとの通信
サブエージェントの登録
サブエージェントへの要求送信
サブエージェントからの応答受信
サブエージェントからの通知トラップ
ポート 161 を使用する snmpd (Domain Mamager の一部) などの SNMP エージェントを実行している場合は、Solstice Enterprise Agents は実行できません。
マスターエージェントにより起動する方法 - マスターエージェントは、SEA_SNMPConfiguration_Directory にあるエージェントリソースファイルを使ってすべてのエージェントを起動できます。エージェントは、マスターエージェントのリソースファイルの指定に従って起動されます。マスターエージェントがサブエージェントの起動に成功すると、そのサブエージェントのテーブルのエントリ行が作成され、そのサブエージェントに対する適切な値が、MIB 変数に代入されます。次に、サブエージェントがマスターエージェントに登録され、マスターエージェントから SNMP 要求を受信できるようになります。
システムブート時に手動または自動で起動する方法 - システム管理者やユーザーは、エージェントリソースファイルがないサブエージェントを手動で起動できます。あるいは、システムの起動時に、起動スクリプトによってサブエージェントを起動することもできます。これらのエージェントは、マスターエージェントを起動したあとにしか起動できません。また、これらのエージェントは、Solstice Enterprise Agents のソフトウェア開発キット (SDK) を使って作成し、適切なライブラリにリンクしておく必要があります。それによって、サブエージェントをマスターエージェントに動的に登録できます。
サブエージェントからマスターエージェントへの通信は、UDP ポート 161 を使って行われます。サブエージェントからマスターエージェントへのトラップの送信については、 「トラップ通知」で説明します。
マスターエージェントは、サブエージェントごとに個別のポートで通信を行います。
また、マスターエージェントは、登録されているサブエージェントが起動し、動作しているかどうかを、次の条件をもとに確認します。
マスターエージェントによって各サブエージェントに送信される、Get、Get Next、および Set 要求ごとのタイムアウト機構
マスターエージェントとサブエージェントとの間にアクティビティが存在しないこと。マスターエージェントは、エージェントリソースファイルで定義されている watch_dog_time に従って、特定のサブエージェントが実行状態かどうかを判断します。ある特定の設定期間にサブエージェントとマスターエージェントとの間にアクティビティがない場合は、SNMP Get 要求をサブエージェントに送信することによってサブエージェントが動作可能になります。
サブエージェントを登録するために、マスターエージェントは、サブエージェントを MIB に結び付けます。次に、マスターエージェントは、以下のどちらかの方法を使って、サブエージェントの現在の位置を決めます。
静的な方法 - マスターエージェントは、エージェントリソースファイルを読み込みます。このリソースファイルには、それぞれのサブエージェントのエントリが含まれています。
動的な方法 - マスターエージェントは、サブエージェントから情報を受信します。サブエージェントは、登録 API を使って、マスターエージェントに登録するために必要な MIB オブジェクトを含む SET 要求を送信します。
バインドポリシーは、SNMP オブジェクト識別子 (OID) の登録に関するものです。これは、さまざまなサブエージェントに SNMP 要求をディスパッチする際のマスターエージェントの意思決定に影響します。マスターエージェントは、表 3-1 に示すバインドポリシーをサポートします。
表 3-1 バインドポリシー
登録の種類 |
登録方法 |
---|---|
個別変数登録 |
サブエージェントは個々の変数を管理できる |
行の登録 |
サブエージェントは各行または複数の行を管理できる |
テーブルの登録 |
サブエージェントは、テーブルの全体および一部分に登録を行うことができる。テーブルの一部分の登録とは、テーブルのいくつかのカラムを登録することである。たとえば、テーブルに c1〜c5 のカラムがある場合、サブエージェントは、そのテーブルの c3 と c5 のカラムだけを登録できる |
二重登録 |
二重登録は行えない |
重複登録 |
重複登録の場合、マスターエージェントは、OID が最も一致している要求をディスパッチする |
マスターエージェントは、2 つのモードによる SNMP 要求 (Get、Get Next、および Set) の転送をサポートしています。省略可能な引数をコマンド行呼び出しに指定することによって、モードが示されます。モードは次のとおりです
送信可能な要求を次に示します。
SET - マルチフェーズ形式で設定を実装します。まず、Set 要求内のすべての varbind が、Get 要求によって検索されます。Get 要求が成功すると、Set 要求が各サブエージェントに送信されます。Set 要求が成功すると、SUCCESS 応答がマネージャに送信されます。Set 要求が失敗すると、別の Set 要求が元の値とともにサブエージェントに送信され、失敗した Set 要求は取り消されます。Set 要求は、処理中の他の SNMP 要求が完了してから開始されます。
サブエージェントは、マスターエージェントにトラップを送信します。マスターエージェントは、どのマネージャがトラップを受信するかを決めます。この判断は設定可能です。