前へ 目次 索引 次へ
Sun ONE Application Server 7 管理者ガイド

> ## 第 6 章
> Sun ONE Application Server の監視

> この章では、監視の方法と、Sun ONE Application Server で使用できる SNMP (Simple Network Management Protocol) の特徴および機能について説明します。

> この章には次の節が含まれます。

> - Sun ONE Application Server の監視について
> - CLI を使用した監視データの抽出
> - CLI によるトランザクションサービスの管理
> - HTTP サービス品質の使用
> - SNMP について
> - SNMP の設定
> - SNMP マスターエージェントの有効化と起動

> ##

> Sun ONE Application Server の監視について

> システム上の重要なデータポイントから稼働統計情報を収集することにより、Sun ONE Application Server を監視できます。統計情報は、サーバーが処理している要求の数と、その処理状況を示します。個々の仮想サーバーに関する統計情報や、アプリケーションサーバーインスタンス全体に関する統計情報を表示できます。Sun ONE Application Serverの監視には、asadmin ユーティリティや SNMP を使用します。

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

> - 統計情報
> - SNMP
> - HTTP サーバーの監視
> - アプリケーションコンポーネントとサブシステムの監視
> - サービス品質 (QOS)

> ### 統計情報

> HTTP サーバーなどほとんどの Sun ONE Application Server のアプリケーションコンポーネントとサブシステムの統計情報は、特に監視機能を有効に設定しなくても、常に収集されます。ただし、サブシステムでの監視を明示的に有効に設定した場合や、それと同等の機能を有効に設定した場合だけ収集される統計情報もあります。これらの統計情報には、次のデータポイントが含まれます。

> - EJB メソッドの統計情報
> - アクティブなトランザクション
> - 接続 (QOS が有効な場合のみ)
> - DNS (DNS キャッシュが有効な場合のみ)

> 管理インタフェースからアプリケーションのサブシステムまたはコンポーネントの監視機能を有効にする方法については、「アプリケーションコンポーネントとサブシステムの監視」を参照してください。

> サーバーモニターを通してサーバーが多数の要求を処理していることが判明した場合、要求数に合わせてサーバー設定またはシステムのネットワークカーネルを調整する必要があります。サーバー設定の調整方法の詳細については、『Sun ONE Application Server パフォーマンスおよびチューニングガイド』を参照してください。

> ### SNMP

> Sun ONE Application Server は、SNMP (Simple Network Management Protocol) を使用する情報収集ツールによって、ネットワーク管理のための情報を提供します。SNMP は、ネットワークで管理情報や監視情報を交換するためのプロトコルです。SNMP を使用するエージェントと呼ばれるプログラムが、ネットワーク上のさまざまなデバイス (ハブ、ルーター、ブリッジなど) を監視します。別のプログラムが、エージェントから受け取ったデータを収集します。オペレーションの監視によって作成されたデータベースは MIB (management information base) と呼ばれます。このデータを使用して、ネットワーク上のすべてのデバイスが適切に動作していることをチェックします。

> SNMP で監視できるのは HTTP サーバーだけですが、コマンド行インタフェース (CLI) を使用するとすべてのコンポーネントとシステムを監視できます。

> SNMP の詳細については、「SNMP について」および「SNMP について」を参照してください。

> ### HTTP サーバーの監視

> HTTP サーバーの監視は、デフォルトで有効になっているため、有効に設定する作業は不要です。HTTP サーバーの監視は XML ファイルをベースにしていて、管理可能な 3 種類の属性一式には、asadmin コマンドを使用してアクセスできます。この XML ファイルの要素、サブ要素、および属性については、「監視可能な HTTP サーバー要素」および「監視可能な HTTP サーバー属性」を参照してください。

> 注 | SNMP では、HTTP サーバーの統計情報だけを利用できます。HTTP サーバーも含めた Sun ONE Application Server のすべてのサブシステムに関する統計情報を利用するには、コマンド行インタフェースを使用します。

> asadmin の使用方法の詳細については、「コマンド行インタフェースの使用」を参照してください。

> ### アプリケーションコンポーネントとサブシステムの監視

> Sun ONE Application Server のサブシステムやコンポーネントには、関連する統計情報が常に収集されているために、監視を有効に設定する必要がないものもあります。たとえば、コンテナなどのアプリケーションコンポーネントでは、監視機能を有効にしても無効にしても構いません。監視機能を有効にすると、常時収集される統計情報に加えて、すべての EJB メソッドに関する追加の統計情報も収集されます。JDBC 接続プールの監視は、常に有効になっています。接続プールは最初にアクセスされたときに初期化され、その後は常に関連する統計情報が監視されます。

> 監視対象となるデータポイントの詳細については、「監視可能な属性名」を参照してください。

> 管理インタフェースまたはコマンド行インタフェース (CLI) を使って、選択したアプリケーションコンポーネントおよびサブシステムの監視機能を有効にすることができます。たとえば、CLI から EJB コンテナの監視機能を有効に設定するには、端末ウィンドウで次にコマンドを入力します。

> asadmin set server1.ejb-container.monitoringEnabled=true
> asadmin reconfig server1

> server1 はインスタンス名です。

> 上記と同等の機能には、「コンテナ (Containers)」ノードの下の管理インタフェースからアクセスできます。

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

> - コンテナサブシステムの監視
> - ORB サービスの監視
> - トランザクションサービスの監視

> #### コンテナサブシステムの監視

> EJB コンテナの場合、監視機能を有効にすると、エンティティ Beans、ステートフルセッション Beans、およびステートレスセッション Beans のメソッドに関連する統計情報が収集されます。次の統計情報があります。

> - 合計エラー数
> - 合計呼び出し数
> - 合計成功数
> - ミリ秒単位の実行時間 (最終のメソッド呼び出しが対象)

> コンテナサブシステムでは、その他すべての統計情報が常に収集されます。監視されるデータポイントには、次のような統計情報が含まれます。

> - プール内のステートレス Beans の初期数、最小数、および最大数
> - キャッシュ内のステートフル Beans とエンティティ Beans の最小数およびユーザー設定数
> - キャッシュ内のステートレス Beans の最小数およびユーザー設定数
> - 作成された Beans 数と破棄された Beans 数
> - その他の関連統計情報

> #### ORB サービスの監視

> ORB サービスの場合、監視されるデータポイントには、ORB 接続および ORB スレッドプール用に収集される統計情報が含まれます。ORB 統計情報は常に収集されるため、ORB サービスの監視機能を有効に設定する必要はありません。

> #### トランザクションサービスの監視

> Java トランザクションサービス (JTS) の場合、監視されるデータポイントには、次の統計情報が含まれます。

> - 完了したトランザクションの合計
> - ロールバックされたトランザクションの合計
> - 処理中のトランザクションの合計
> - 処理中のトランザクションのリスト

> 詳細については、「CLI によるトランザクションサービスの管理」を参照してください。

> ### サービス品質 (QOS)

> サービス品質は、サーバーインスタンスの仮想サーバークラス、または仮想サーバーに対して設定するパフォーマンスの制限です。たとえば、ISP (Internet Service Provider) であれば、許可する帯域幅に応じて仮想サーバーの課金額を変えたい場合があります。この場合、帯域幅と接続数に制限を課すことができる。

> Sun ONE Application Server が提供するサービス品質を使用すると、次の項目に関して実行時のサーバーの効率を判断できます。

> - 起動時間
> - サーバートラフィック、および帯域幅に対するトラフィックの影響
> - ライブデータと静的データの分析
> - その他のデータ要素

> 詳細については、「CLI によるトランザクションサービスの管理」を参照してください。

> ##

> CLI を使用した監視データの抽出

> コマンド行インタフェース (CLI) で asadmin コマンドに list コマンドや get コマンドを使用すると、監視されたデータを抽出できます。

> 注 | set コマンドは、トランザクションサービスの監視を設定する場合だけ使用されます。「CLI によるトランザクションサービスの管理」を参照してください。

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

> - list --monitor コマンド
> - get --monitor コマンド
> - CLI ネームマッピング
> - HTTP サーバーの監視可能オブジェクト

> ### list --monitor コマンド

> list コマンドは、指定されたサーバーインスタンス名について、現在監視されているアプリケーションコンポーネントおよびサブシステムに関する情報を提供します。このコマンドを使用すると、サーバーインスタンスで監視可能なコンポーネントおよびサブコンポーネントを表示できます。

> ##### 例

> asadmin>list --monitor server1

> 監視機能が有効になっている次のアプリケーションコンポーネントおよびサブシステムのリストが返されます。

> iiop-service
> transaction-service
> application.converter
> application.myApp
> http-server

> 指定されたサーバーインスタンス内で現在監視されているアプリケーションを一覧表示することもできます。この機能は、get コマンドを使ってアプリケーションから特定の監視統計情報を取得する際に役立ちます。

> ##### 例

> asadmin> list --monitor server1.application

> 戻り値

> converter
> myApp

> より詳細な例については、「Petstore の例」を参照してください。

> ### get --monitor コマンド

> このコマンドは、次の監視情報を取得します。

> - コンポーネントまたはサブシステム内で監視されるすべての属性
> - コンポーネントまたはサブシステム内で監視される特定の属性

> 特定のコンポーネントまたはサブシステムについて、要求された属性が存在しない場合は、エラーが返されます。同様に、コンポーネントまたはサブシステムについて要求された特定の属性がアクティブでない場合も、エラーが返されます。

> get コマンドの使用方法の詳細については、「CLI ネームマッピング」を参照してください。

> ##### 例 1

> 特定の属性について、サブシステムからすべての属性を取得する例

> asadmin> get --monitor server1.iiop-service.orb.system.orb-connection.*

> total-inbound-connections=1
> total-outbound-connections=1

> ##### 例 2

> J2EE アプリケーションからすべての属性を取得する例

> asadmin> get --monitor server1.application.converter.*

> Attribute name(s) not found

> J2EE アプリケーションレベルで公開されている監視可能な属性はないため、コマンドは失敗します。

> ##### 例 3

> サブシステムから特定の属性を取得する例

> asadmin> get --monitor server1.transaction-service.inflight-tx

> Attribute name = inflight-tx Value = No active transaction found.

> ##### 例 4

> サブシステム属性内に存在しない属性を取得する例

> asadmin> get --monitor server1.iiop-service.orb.system.orb-connection.bad-name

> Could not get the attribute

> Execution failed for the command:get --monitor server1.iiop-service.orb-connection.bad-name

> ### CLI ネームマッピング

> Sun ONE Application Server では、ツリー構造によって、監視対象オブジェクトを探すことができます。ツリー内のノードごとに名前とタイプがあります。タイプが単独の場合は、親ノードの下には、そのタイプのノードが 1 だけ存在します。ツリー内のノードタイプの詳細については、「監視可能なオブジェクトタイプ」を参照してください。

> ツリーのルートオブジェクトは、Sun ONE Application Server のインスタンス名で表されます。たとえば、server1 と名前付けされているインスタンスのルートの監視オブジェクトは、次のようになります。

> server1

> すべての子オブジェクトのアドレスは、ドット (.) で区切って指定されます。子ノードが単独の場合、その監視オブジェクトのアドレスを指定するには、オブジェクトのタイプだけが必要となります。単独でない場合は、オブジェクトのアドレス指定には、type.name の形式の名前が必要となります。

> たとえば、単独の有効な監視可能オブジェクトタイプとしては、http-server などがあります。インスタンス server1 の http-server を表す単体の子ノードをアドレス指定する場合、名前は次のようになります。

> server1.http-server

> また、単独ではない有効な監視可能オブジェクトタイプとしては、application などがあります。アプリケーション Petstore を表す単独ではない子ノードをアドレス指定する場合、名前は次のようになります。

> server1.application.petstore

> CLI 名では、監視可能オブジェクトの特定の属性をアドレス指定することもできます。たとえば、http-server には、監視可能属性の summary があります。次の名前は、summary 属性のアドレス指定となります。

> server1.http-server.summary

> 監視オブジェクトが公開する属性名に対するネーミング規則は定められていません。

> CLI で使用するための有効な名前が分からない場合もあります。list コマンドを使用すると、有効な監視可能オブジェクトを調べることができます。get コマンドにワイルドカードのパラメータを指定すると、どの監視可能オブジェクトについても、すべての有効な属性を調べることができます。

> 次の例では、クライアントのネームマッピングのシナリオを示します。

> #### Petstore の例

> server1 という名前のSun ONE Application Serverインスタンスに配備された Petstore アプリケーションのメソッドに対して、何回の呼び出しがあったかについて調査します。list コマンドと get コマンドを組み合わせて使用して、該当するメソッドの統計情報にアクセスします。

> 1. マルチモードで CLI を呼び出します。
> 2. 次のように、有用な環境変数を設定して、コマンドを使用するたびに同じ変数を入力する手間を省きます。

> asadmin>export AS_ADMIN_USER=admin AS_ADMIN_PASSWORD=admin123

> asadmin>export AS_ADMIN_HOST=localhost AS_ADMIN_PORT=4848

> 3. 次のコマンドを入力して、インスタンス server1 の監視可能なコンポーネントを一覧表示します。

> asadmin>list --monitor server1

> 出力
> iiop-service
> transaction-service
> application.CometEJB
> application.ConverterApp
> application.petstore
> http-server
> resources

> 監視可能なコンポーネントの一覧には、iiop-service、http-server、transaction-service、resources、およびすべての配備済み (かつ有効な) アプリケーションが含まれます。

> 4. 次のコマンドを入力して、Petstore アプリケーションの監視可能なサブコンポーネントを一覧表示します。--monitor の代わりに -m を使用できます。

> asadmin>list -m server1.application.petstore

> 出力
> ejb-module.signon-ejb_jar
> ejb-module.catalog-ejb_jar
> ejb-module.uidgen-ejb_jar
> ejb-module.customer-ejb_jar
> ejb-module.petstore-ejb_jar
> ejb-module.AsyncSenderJAR_jar
> ejb-module.cart-ejb_jar

> 5. 次のコマンドを入力して、Petstore アプリケーションの EJB モジュール sigon-ejb_jar に含まれる監視可能なサブコンポーネントを一覧表示します。

> asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar

> 出力
> entity-bean.UserEJB
> stateless-session-bean.SignOnEJB

> 6. 次のコマンドを入力して、Petstore アプリケーションの EJB モジュール sigon-ejb_jar のためのエンティティ Bean UserEJB に含まれる監視可能なサブコンポーネントを一覧表示します。

> asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar.entity-bean.UserEJB

> 出力
> bean-method.create0
> bean-method.findByPrimaryKey1
> bean-method.remove2
> bean-method.getUserName3
> bean-method.setPassword4
> bean-method.getPassword5
> bean-method.matchPassword6
> bean-method.remove7
> bean-method.isIdentical8
> bean-method.getEJBLocalHome9
> bean-method.getPrimaryKey10
> bean-pool
> bean-cache

> 7. 次のコマンドを入力して、Petstore アプリケーションの EJB モジュール sigon-ejb_jar にあるエンティティ Bean UserEJB のメソッド getUserName3 に含まれる監視可能なサブコンポーネントを一覧表示します。

> asadmin>list -m server1.application.petstore.ejb-module.signon-ejb_jar.entity-bean.UserEJB.bean-m ethod.getUserName3

> 出力

> No monitorable entities for element
> server1.application.petstore.ejb-module.signon-ejb_jar.entity-bean.UserEJB.bean-m ethod.getUserName3

> 8. メソッドには監視可能なサブコンポーネントはありません。次のコマンドを入力して、メソッド getUserName3 の監視可能な統計情報をすべて取得します。

> asadmin>get -m server1.application.petstore.ejb-module. signon-ejb_jar.entity-bean.UserEJB.bean-method.getUserName3.*
> method-name = public abstract java.lang.String com.sun.j2ee.blueprints.signon.user.ejb.UserLocal.getUserName()
> total-num-errors = 0
> total-num-success = 2
> execution-time-millis = 1
> total-num-calls = 2

> 9. 次のコマンドを入力して、実行時間など特定の統計情報を取得することもできます。

> asadmin>get -m server1.application.petstore.ejb-module. signon-ejb_jar.entity-bean.UserEJB.bean-method.getUserName3.execution-time-millis
> execution-time-millis = 1

> #### 監視可能なオブジェクトタイプ

> 監視に使用するオブジェクトのツリーには、複数のノードが含まれています。ノードとはオブジェクトツリー内の特定のエントリで、タイプ、名前、および親ノードによって一意に識別されます。ノードタイプには単独のものがあり、その場合は親ノードの下にノードのタイプが 1 つだけあることを意味します。名前は、単独のノードには必要ありません。

> 単独ではないタイプのノードには、名前が必要です。「インスタンス名」の列に、有効な名前空間を示します。

> 次の表に、さまざまなノードタイプ間の有効な親と子の関係についてのツリー構造と、いくつかのノードタイプについては名前空間を示します。

> 表 6-1 監視オブジェクトタイプ

> ノードタイプ | 単独 | リーフ | 子ノードのタイプ | インスタンス名
> --- | --- | --- | --- | ---
> root | ○ | × | http-server iiop-service resources transaction-service application standalone-ejb-module |
> http-server | ○ | × | virtual-server Process |
> virtual-server | ○ | ○ |  |
> プロセス (process) | ○ | ○ |  |
> iiop-service | ○ | ○ | orb |
> orb | × | × | orb-connection orb-thread-pool | system がシステム ORB のために予約されている。すべてのユーザー ORB が TCP エンドポイントから派生する名前を取得する
> orb-connection | ○ | ○ |  |
> orb-thread-pool | ○ | ○ |  |
> resources | ○ | × | jdbc-connection-pool |
> jdbc-connection-pool | × | ○ |  | 名前は、接続プール作成時にユーザーが指定するものと同じ
> transaction-service | ○ | ○ |  |
> アプリケーション (application) | × | × | ejb-module | server.xml に登録されたアプリケーションの名前
> ejb-module | × | × | stateless-session-bean stateful-session-bean entity-bean message-driven-bean | EJB モジュールの名前。EJB JAR 名から派生する
> standalone-ejb-module | × | × | stateless-session-bean stateful-session-bean entity-bean message-driven-bean | server.xml に登録されたスタンドアロン EJB モジュールの名前
> stateless-session-bean | × | × | bean-pool bean-method | 配備記述子の Bean 名
> stateful-session-bean | × | × | bean-cache bean-method | 配備記述子の Bean 名
> entity-bean | × | × | bean-cache bean-pool bean-method | 配備記述子の Bean 名
> message-driven-bean | × | × | bean-pool bean-method | 配備記述子の Bean 名
> bean-pool | ○ | ○ |  |
> bean-cache | ○ | ○ |  |
> bean-method | × | ○ |  | メッセージ駆動型 Beans の onMessage。別のエンタープライズ Beans 内のメソッド用に、数値のサフィックスを付けたメソッド名。サフィックスは、オーバーロードされたメソッドを特定するために必要

> #### 監視可能な属性名

> すべての監視可能なオブジェクトについて、監視可能な属性名を公開する必要があるわけではありません。オブジェクトには、その他のオブジェクトをグループ化するためだけに使用されるものもあります。Sun ONE Application Serverでは、http-server ノード以外は、ツリーのリーフノードだけが属性を持ちます。http-server ノードタイプは、子ノードと属性を持ちます。次の表では、さまざまなノードについての有効な監視可能属性名を示します。

> 表 6-2 http-server

> 属性名 | データ型 | 説明
> --- | --- | ---
> summary | 文字列 (形式設定済み) | HTTP サーバーの要約。仮想サーバーとプロセスが含まれる 注 : 形式設定済みの文字列で公開されるデータについては、「HTTP サーバーの監視可能オブジェクト」を参照してください。

> 表 6-3 virtual-server

> 属性名 | データ型 | 説明
> --- | --- | ---
> <vs-id> | 文字列 (形式設定済み) | 仮想サーバーの情報。各アプリケーションサーバーインスタンスには、1 つ以上の仮想サーバーを設定できる。http-server の要約属性から、仮想サーバー ID の一覧を取得できる。get コマンドパラメータに server1.http-server.virtual-server.<vs-id> という形式を指定すると、特定の仮想サーバーに関する統計情報を検索できる。get コマンドパラメータに server1.http-server.virtual-server.* という形式を指定すると、すべての仮想サーバーに関する統計情報を検索できる 注 : 形式設定済みの文字列で公開されるデータについては、「HTTP サーバーの監視可能オブジェクト」を参照してください。

> 表 6-4 process

> 属性名 | データ型 | 説明
> --- | --- | ---
> <pid> | 文字列 (形式設定済み) | プロセスの情報。各アプリケーションサーバーインスタンスに対して、1 つのプロセスがある。http-server の要約属性から、プロセス ID を取得できる。get コマンドパラメータに server1.http-server.process.<pid> という形式を指定すると、プロセスの統計情報を取得できる 注 : 形式設定済みの文字列で公開されるデータについては、「HTTP サーバーの監視可能オブジェクト」を参照してください。

> 表 6-5 orb-connection

> 属性名 | データ型 | 説明
> --- | --- | ---
> total-inbound-connections | 整数 | ORB への受信総接続数
> total-outbound-connections | 整数 | ORB への送信総接続数

> 表 6-6 orb-thread-pool

> 属性名 | データ型 | 説明
> --- | --- | ---
> thread-pool-size | 整数 | ORB スレッドプールのスレッド総数
> waiting-thread-count | 整数 | スレッドプール内で受信待機中のスレッド数

> 表 6-7 jdbc-connection-pool

> 属性名 | データ型 | 説明
> --- | --- | ---
> total-threads-waiting | 整数 | JDBC 接続を待機するスレッド総数
> total-outbound-connections | 整数 | JDBC 接続検証の失敗総数
> total-connections-timed-out | 整数 | タイムアウトになった接続要求の総数

> 表 6-8 transaction-service

> 属性名 | データ型 | 説明
> --- | --- | ---
> total-tx-completed | 整数 | 完了したトランザクションの総数
> total-tx-rolled-back | 整数 | ロールバックされたトランザクションの総数
> total-tx-inflight | 整数 | 処理中のトランザクション (ライブトランザクション) の総数
> isFrozen | 文字列 | トランザクションシステムがフリーズしているかどうか (true または false)
> inflight-tx | 文字列 (形式設定済み) | 処理中のトランザクションのリスト

> 表 6-9 bean-pool

> 属性名 | データ型 | 説明
> --- | --- | ---
> max-pool-size | 整数 | プール内の Bean インスタンスの最大数
> steady-pool-size | 整数 | プール内に通常保持される Bean インスタンス数。プールを作成すると、最初に steady-pool-size のサイズでインスタンスが保持される。プールからインスタンスが削除されると非同期で補充されるため、プールサイズは steady-pool-size に指定された値以上になる
> pool-resize-quantity | 整数 | max-pool-size を上限とする増分、または steady-pool-size を下限とする減少分
> idle-timeout-in-seconds | 整数 | プールクリーニングスレッドを実行する間隔を定義する。現在のサイズが通常プールサイズを超えていないかどうかをチェックし、pool-resize-quantity の要素を削除する。現在のサイズが steady-pool-size よりも小さい場合、プールサイズは min (current-pool-size+pool + resize-quantity, max-pool-size) を上限として、pool-resize-quantity だけ増加する。pool-idle-timeout-in-seconds を超過してアクセスされていないオブジェクトだけが削除対象となる
> num-beans-in-pool | 整数 | プール内の利用可能な Beans 数
> num-threads-waiting | 整数 | 利用可能な Bean を待機しているスレッド数
> total-beans-created | 整数 | これまでに作成された Beans 数
> total-beans-destroyed | 整数 | これまでに削除された Beans 数
> jms-max-messages-load | 整数 | メッセージ駆動型 Bean による処理で JMS セッションに一度に読み込む最大メッセージ数。デフォルト値は 1。メッセージ駆動型 Beans 用のプールだけに適用される

> 表 6-10 bean-cache

> 属性名 | データ型 | 説明
> --- | --- | ---
> cache-resize-quantity (resize-quantity) | 整数 | キャッシュ内の Beans 数が max-cache-size に等しくなったとき、つまりキャッシュでオーバーフローが発生したときに、キャッシュサイズを縮小する量
> cache-misses | 整数 | ユーザーから要求された Bean がキャッシュ内で見つからなかった回数
> idle-timeout-in-seconds | 整数 | キャッシュクリーナスレッドのスケジュール間隔。このクリーナは、キャッシュ内ですべての Beans を検査し、cache-idle-timeout-in-seconds の期間アクセスされていない Beans を非活性化する
> cache-hits | 整数 | ユーザーから要求されたエントリがキャッシュ内で見つかった回数
> total-beans-in-cache | 整数 | キャッシュ内の Beans 数。キャッシュの現在のサイズ
> max-beans-in-cache | 整数 | キャッシュ内に保持される Beans の最大数。この値を超えると、キャッシュのオーバーフローが発生する
> num-passivations | 整数 | 非活性化の数。ステートフルセッション Beans だけに適用される
> num-passivation-errors | 整数 | 非活性化中に発生したエラーの回数。ステートフルセッション Beans だけに適用される
> num-expired-sessions-removed | 整数 | クリーンアップスレッドによって削除された期限切れセッション数。ステートフルセッション Beans だけに適用される
> num-passivation-success | 整数 | 非活性化の成功回数。ステートフルセッション Beans だけに適用される

> 表 6-11 bean-method

> 属性名 | データ型 | 説明
> --- | --- | ---
> method-name | 文字列 | 完全指定のメソッド名
> total-num-calls | 整数 | メソッドが呼び出された回数。EJB コンテナに対する監視機能が true に設定されている場合は、ステートレスセッション Beans、ステートフルセッション Beans、およびエンティティ Beans について収集される。メッセージ駆動型 Bean コンテナに対する監視機能が有効に設定されている場合は、メッセージ駆動型 Beans について収集される
> total-num-errors | 整数 | 例外が発生したメソッドの実行回数。EJB 設定で監視機能が有効に設定されている場合は、ステートレスセッション Beans、ステートフルセッション Beans、およびエンティティ Beans について収集される。MDB 設定で監視機能が有効に設定されている場合は、メッセージ駆動型 Beans について収集される
> total-num-success | 整数 | メソッドの実行が成功した回数。EJB コンテナに対する監視機能が true に設定されている場合は、ステートレスセッション Beans、ステートフルセッション Beans、およびエンティティ Beans について収集される。メッセージ駆動型 Bean コンテナに対する監視機能が有効に設定されている場合は、メッセージ駆動型 Beans について収集される
> execution-time-millis | Long | 最後に成功したメソッドの実行に要した時間。EJB コンテナに対する監視機能が有効に設定されている場合は、ステートレスセッション Beans、ステートフルセッション Beans、およびエンティティ Beans について収集される。メッセージ駆動型 Bean コンテナに対する監視機能が有効に設定されている場合は、メッセージ駆動型 Beans について収集される

> ### HTTP サーバーの監視可能オブジェクト

> HTTP サーバーの監視可能属性名 summary は、Server 要素の属性値とそのサブ要素に関する要約情報を出力します。要約情報には、各サブ要素の数や、各サブ要素の属性値も含まれます。HTTP サーバーの virtual-server 属性は、VirtualServer 要素の属性とその各サブ要素の詳細を出力します。process 属性は、Process 要素の属性値とその各サブ要素の詳細を出力します。

> NSAPI パフォーマンスプロファイルを有効にして、Profile 要素と ProfileBucket 要素の統計情報を取得するには、『Sun ONE Application Server Developer's Guide to NSAPI』を参照してください。

> パフォーマンスチューニングに監視統計情報を使用する方法については、『Sun ONE Application Server パフォーマンスおよびチューニングガイド』を参照してください。

> #### 監視可能な HTTP サーバー要素

> 次の表に、HTTP サーバーの監視可能な要素を示します。

> 表 6-12 監視可能な HTTP サーバーの要素

> 要素名 | サブ要素 | 説明
> --- | --- | ---
> Server | ConnectionQueue ThreadPool Profile Process VirtualServer | サーバーインスタンス
> ConnectionQueue | なし | 要求が送信される前に保持されるキュー。Sun ONE Application Server 7 には接続キューが 1 個だけある
> ThreadPool | なし | スレッドプール。init.conf ファイルで定義する
> Profile | なし | NSAPI パフォーマンスプロファイルバケット
> Process | ConnectionQueueBucketThreadPoolBucket DnsBucket DnsBucket KeepaliveBucket CacheBucket Thread | サーバーインスタンス内の単一サーバープロセス
> ConnectionQueueBucket | なし | 特定の ConnectionQueue に属する統計情報を追跡する
> ThreadPoolBucket | ThreadPoolBucket | 特定の ThreadPool に属する統計情報を追跡する
> DnsBucket | なし | DNS 統計情報を追跡する
> KeepaliveBucket | なし | キープアライブ (持続的接続) の統計情報
> CacheBucket | なし | ファイルキャッシュ (NSFC) の統計情報を追跡する
> Thread | RequestBucket ProfileBucket | スレッドを処理する要求を説明する
> VirtualServer | RequestBucket ProfileBucket | 仮想サーバーを説明する
> RequestBucket | なし | 要求に関連する統計情報を追跡する
> ProfileBucket |  | Profile に属する統計情報を追跡する

> #### 監視可能な HTTP サーバー属性

> 次の表に、HTTP サーバーの監視可能な属性を示します。

> 表 6-13 Server

> 属性名 | 値 | 説明
> --- | --- | ---
> Id |  | サーバーインスタンス ID (server1 など)
> VersionServer |  | Sun ONE Application Server のバージョンを示す文字列
> TimeStarted | GMT | サーバーインスタンスの起動時刻
> SecondsRunning |  | サーバーインスタンスが起動されてからの秒数
> TicksPerSecond |  | 1 秒あたりのタイマー刻み数。この値はシステムに依存する
> MaxProcs |  | プロセスの最大数
> MaxThreads |  | 処理中のスレッドの最大数
> MaxVirtualServers |  | 追跡される仮想サーバーの最大数
> FlagProfilingEnabled | 0 (off)、1 (on) | NSAPI パフォーマンスプロファイルが有効 (on) であるかどうかを示す
> FlagVirtualServerOverflow | 0 (no)、1 (yes) | MaxVirtualServers を超える仮想サーバーを設定する (yes) かどうかを示す。この属性を 1 に設定しても、統計情報がすべての仮想サーバーについて追跡されるわけではない
> LoadMinuteAverage |  | 1 分間の平均読み込み
> Load5MinuteAverage |  | 5 分間の平均読み込み
> Load15MinuteAverage |  | 15 分間の平均読み込み
> RateBytesTransmitted | 1 秒あたりのバイト数 | サーバー定義の間隔で送信されるデータの速度。この情報を利用できない場合は 0
> RateBytesReceived | 1 秒あたりのバイト数 | サーバー定義の間隔で受信されるデータの速度。この情報を利用できない場合は 0

> 表 6-14 ConnectionQueue

> 属性名 | 値 | 説明
> --- | --- | ---
> Id |  | 接続キュー ID

> 表 6-15 ThreadPool

> 属性名 | 値 | 説明
> --- | --- | ---
> Id |  | スレッドプール ID
> 属性名 |  | スレッドプールのシンボリック名

> 表 6-16 file

> 属性名 | 値 | 説明
> --- | --- | ---
> Id |  | NSAPI パフォーマンスプロファイルバケット ID
> 属性名 |  | NSAPI パフォーマンスプロファイルバケットのシンボリック名
> 説明 |  | NSAPI パフォーマンスプロファイルバケットの説明

> 表 6-17 process

> 属性名 | 値 | 説明
> --- | --- | ---
> Pid |  | プロセスを一意に特定するオペレーティングシステムのプロセス識別子
> Mode | unknown active | プロセスがアクティブの場合は active が表示される
> TimeStarted | GMT | プロセスの起動時刻
> CountConfigurations |  | 設定が読み込まれた回数。この情報が利用できない場合は 0
> SizeVirtual | K バイト | プロセスに使用された仮想メモリのサイズ
> SizeResident | K バイト | プロセスに使用された常駐メモリのサイズ
> FractionSystemMemoryUsage |  | プロセスに使用されたシステムメモリの部分

> 表 6-18 ConnectionQueueBucket

> 属性名 | 値 | 説明
> --- | --- | ---
> ConnectionQueue |  | ConnectionQueue 要素の ID
> CountTotalConnection |  | これまでに受け入れた新しい接続の総数
> CountQueued |  | 現在キューに入れられている接続数
> PeakQueued |  | 同時にキューに入れられた最大接続数
> MaxQueued |  | キューに入れることのできる最大接続数
> CountOverflow |  | 接続によってキューがいっぱいになった回数
> CountTotalQueued |  | キューに入れられた接続の総数。1 つの接続が複数回キューに入れられることもあるため、CountTotalQueued は CountTotalConnections 以上の値になる
> TicksTotalQueued |  | 接続がキューに入れられていたタイマー刻みの合計。タイマー刻みはシステムに依存する時間単位。TicksPerSecond を参照

> 表 6-19 ThreadPoolBucket

> 属性名 | 値 | 説明
> --- | --- | ---
> Thread-pool |  | ThreadPool 要素の ID
> CountThreadsIdle |  | 現在アイドル状態の要求処理スレッド数
> CountThreads |  | 要求処理スレッド数
> MaxThreads |  | 同時に存在できる要求処理スレッドの最大数
> CountQueued |  | スレッドプールで処理するためにキューに入れられた要求の数
> PeakQueued |  | 同時にキューに入れられた最大要求数
> MaxQueued |  | キューに入れることのできる最大要求数

> 表 6-20 DnsBucket

> 属性名 | 値 | 説明
> --- | --- | ---
> FlagCacheEnabled | 0 (off)、1 (on) | DNS キャッシュが有効 (on) であるかどうかを示す
> CountCacheEntries |  | 現在キャッシュ内にある DNS エントリ数
> MaxCacheEntries |  | キャッシュに収容できる DNS エントリの最大数
> CountCacheHits |  | DNS キャッシュの検索に成功した回数
> CountCacheMisses |  | DNS キャッシュの検索に失敗した回数
> FlagAsyncEnabled | 0 (off)、1 (on) | 非同期 DNS 検索が有効 (on) であるかどうかを示す
> CountAsyncNameLookups |  | 非同期 DNS 名検索が実行された合計回数
> CountAsyncAddrLookups |  | 非同期 DNS アドレス検索が実行された合計回数
> CountAsyncLookupsInProgress |  | 現在実行中の非同期 DNS 検索の合計回数

> 表 6-21 KeepaliveBucket

> 属性名 | 値 | 説明
> --- | --- | ---
> CountConnections |  | 現在キープアライブモードにある接続の数
> MaxConnections |  | 同時にキープアライブとなる接続の最大数
> CountHits |  | キープアライブモードの接続が有効な要求を作成した合計回数
> CountFlushes |  | キープアライブ接続がサーバーによって閉じられた回数
> CountTimeouts |  | キープアライブ接続がタイムアウトになった回数
> SecondsTimeouts |  | サーバーがアイドル状態のキープアライブ接続を閉じるまでの秒数
> CountRefusals |  | キープアライブ接続がサーバーによって拒否された回数

> 表 6-22 CacheBucket

> 属性名 | 値 | 説明
> --- | --- | ---
> FlagEnabled | 0 (off)、1 (on) | ファイルキャッシュが有効 (on) であるかどうかを示す
> SecondsMaxAge | 秒数 | ファイルキャッシュエントリの最大有効期間
> CountEntries |  | 現在ファイルキャッシュ内にあるエントリ数
> MaxEntries |  | 同時にファイルキャッシュに収容できるキャッシュエントリの最大数
> CountOpenEntries |  | 開かれているファイルに関連付けられたエントリの数
> MaxOpenEntries |  | 同時にファイルキャッシュに収容できる開かれたファイルに関連付けられたキャッシュエントリの最大数
> SizeHeapCache | バイト数 | キャッシュされたファイルコンテンツに使用されるヒープの量
> MaxHeapCacheSize | バイト数 | キャッシュされたファイルコンテンツのためにファイルキャッシュが使用するヒープの最大量
> SizeMmapCache | バイト数 | メモリにマップされたファイルコンテンツに使用されるアドレス空間の量
> MaxMmapCacheSize | バイト数 | メモリにマップされたファイルコンテンツのためにファイルキャッシュが使用するアドレス空間の最大量
> CountHits |  | キャッシュエントリの検索に成功した回数
> CountMisses |  | キャッシュエントリの検索に失敗した回数
> CountInfoHits |  | ファイル情報の検索に成功した回数
> CountInfoMisses |  | ファイル情報の検索に失敗した回数
> CountContentHits |  | コンテンツの検索に成功した回数
> CountContentMisses |  | コンテンツの検索に失敗した回数

> 表 6-23 Thread

> 属性名 | 値 | 説明
> --- | --- | ---
> Mode | unknown、idle、DNS、request、processing、response、updating | 最後に検知されたスレッドの状態
> TimeStarted | GMT | スレッドの起動時刻
> ConnectionQueue |  | スレッドが処理している ConnectionQueue の ID

> 表 6-24 VirtualServer

> 属性名 | 値 | 説明
> --- | --- | ---
> Id |  | 仮想サーバー ID
> Mode | unknown、active | 仮想サーバーがアクティブの場合は active が表示される
> Hosts |  | 仮想サーバーが配信するソフトウェア仮想サーバーのホスト名 (www.foo.com foo.com foo.isp.com など)
> Interfaces |  | 仮想サーバーを設定したインタフェース (リスナー)。192.168.1.2:80 192.168.1.2:443 など

> 表 6-25 KeepaliveBucket

> 属性名 | 値 | 説明
> --- | --- | ---
> CountRequests |  | 処理された要求数
> CountBytesReceived |  | 受信バイト数。この情報が利用できない場合は 0
> CountBytesTransmitted |  | 送信バイト数。この情報が利用できない場合は 0
> RateBytesTransmitted | 1 秒あたりのバイト数 | サーバー定義の間隔で送信されたデータの速度。この情報を利用できない場合は 0
> MaxByteTransmissionRate |  | サーバー定義の間隔で送信されたデータの最大速度。この情報を利用できない場合は 0
> CountOpenConnections |  | 開かれている接続数。この情報が利用できない場合は 0
> MaxOpenConnections |  | 開かれる最大接続数。この情報が利用できない場合は 0
> Count2xx |  | 送信された 200 レベルの応答数
> Count3xx |  | 送信された 300 レベルの応答数
> Count4xx |  | 送信された 400 レベルの応答数
> Count5xx |  | 送信された 500 レベルの応答数
> CountOther |  | 送信された 200、300、400、および 500 以外のレベルの応答数
> Count200 |  | 送信された 200 レベルの応答数
> Count302 |  | 送信された 302 レベルの応答数
> Count304 |  | 送信された 304 レベルの応答数
> Count400 |  | 送信された 400 レベルの応答数
> Count401 |  | 送信された 401 レベルの応答数
> Count403 |  | 送信された 403 レベルの応答数
> Count404 |  | 送信された 404 レベルの応答数
> Count503 |  | 送信された 503 レベルの応答数

> 表 6-26 KeepaliveBucket

> 属性名 | 値 | 説明
> --- | --- | ---
> Profile |  | Profile 要素の ID
> Countcalls |  | NSAPI SAF の呼び出し数
> CountRequests |  | 処理された要求数
> TicksDispatch |  | 要求のディスパッチに費やされたタイマー刻み数。タイマー刻みはシステムに依存する時間単位。TicksPerSecond を参照
> TicksFunction |  | NSAPI SAF に費やされたタイマー刻み数。タイマー刻みはシステムに依存する時間単位。TicksPerSecondを参照

> ##

> CLI によるトランザクションサービスの管理

> set コマンドを使用すると、監視対象とする JTS の統計情報を管理できます。

> ##### 例 1

> ロールバックリストにトランザクションを追加するには (その結果ロールバックトランザクションまたは指定のトランザクションになる)、次のように set コマンドを実行します。

> set --monitor server1.transaction-service.rollback-list=txnid1

> ##### 例 2

> トランザクションサービスを凍結するには、次のように set コマンドを実行します。

> set --monitor server1.transaction-service.freeze=true

> JTS の統計情報を収集する場合に監視できる属性については、表「トランザクションサービス」を参照してください。これらの属性は、「CLI ネームマッピング」で説明した規則に従ってコマンド行から設定できます。

> Java トランザクションサービスの詳細については、第 9 章「トランザクションサービスの使用」を参照してください。

> ##

> HTTP サービス品質の使用

> トラフィックのカウント方法と帯域幅の再計算頻度は、次の設定によって管理します。

> - 再計算間隔 - 帯域幅を計算する頻度 (ミリ秒単位)
> - メトリック間隔 - トラフィック計算でデータを使用する時間

> 管理インタフェースでは、サーバーインスタンスまたは仮想サーバーのクラスに対する、サーバーレベルまたはクラスレベルの設定を有効にすることができます。ただし、個々の仮想サーバーごとに設定をオーバーライドすることもできます。

> この節には次の項目があります。

> - サービス品質 (QOS) の例
> - サービス品質 (QOS) の設定
> - obj.conf ファイルへの必要な変更
> - サービス品質に関する既知の制限事項

> ### サービス品質 (QOS) の例

> 次の例では、サービス品質の情報を収集および計算する方法を示します。

> - サーバーのメトリック間隔は 30 秒
> - サーバーは 0 秒で起動する
> - 1 秒の時点で、HTTP 接続によって、サーバーとの間に 5000 バイトのトラフィックが生成される
> - このあと、それ以上の接続は行われない。30 秒の時点で、最後の 30 秒間の合計トラフィックは 5000 バイト
> - 32 秒の時点で、メトリック間隔の 30 秒よりも古いトラフィックである 1 秒の時点で生成されたトラフィックが廃棄される。その結果、この時点での最後の 30 秒間の合計トラフィックは 0

> 再計算間隔も同様に機能します。このサーバーの再計算間隔は 100 ミリ秒です。

> 前の例に引き続き、帯域幅は 100 ミリ秒ごとに再計算されます。この計算は、トラフィック量とメトリック間隔に基づいて行われます。

> - 0 秒の時点では、帯域幅の 1 回目の計算が行われる。この時点での合計トラフィックは 0 で、測定時間の 30 秒で割ると、帯域幅は 0
> - 1 秒の時点では、帯域幅の 10 回目 (1000 ミリ秒/100 ミリ秒) の計算が行われる。この時点での合計トラフィックは 5000 バイト。これを 30 秒で割ると、帯域幅は 5000/30 = 166 バイト / 秒
> - 30 秒の時点では、帯域幅の 300 回目の計算が行われる。この時点での合計トラフィックは 5000 バイト。これを 30 秒で割ると、帯域幅は 5000/30 = 166 バイト / 秒
> - 32 秒の時点では、帯域幅の 320 回目の計算が行われる。この時点でのトラフィックは 0 バイト (トラフィックを生成した接続が古くなってカウントされなくなるため)。これを 30 秒で割ると、帯域幅は 0 バイト / 秒

> ### サービス品質 (QOS) の設定

> サーバーインスタンスまたは仮想サーバーのクラスについてのサービス品質は、管理インタフェースで設定されます。

> 注 | サービス品質の設定内容を有効にするためには、obj.conf ファイルの Server Application Function (SAF) も設定する必要があります。「obj.conf ファイルへの必要な変更」を参照してください。

> サービス品質を設定するには、次の手順に従います。

> 1. 左のペインで「アプリケーションサーバーインスタンス」ノードを選択します。
> 2. サーバーインスタンスノードを展開して、「HTTP サーバー」ノードを表示します。
> 3. 「HTTP サーバー」ノードをクリックして、「QOS」タブを表示します。
> 4. 「QOS」タブをクリックします。

> 次のページでは、サービス品質の一般的な設定と、「プロパティ」ボタンが表示されています。

> 図 6-1 仮想サーバーインスタンスの「QOS」タブ

> 1. この HTTP サーバーに対するサービス品質を有効にするために、「QOS を有効」をクリックします。

> 注 : デフォルトでは、サービス品質は無効になっています。サービス品質を有効にすると、サーバーのオーバーヘッドがわずかに増えます。

> 2. 「QOS メトリック間隔」を指定します。

> メトリック間隔は、サーバートラフィック計算中にデータがサンプリングされる時間 (秒単位) です。デフォルト値は 30 秒です。

> サイズの大きいファイルを転送することが多い場合は、このフィールドの値を大きくします (数分またはそれ以上)。サイズの大きいファイルを転送する際、メトリック間隔が短いと、許容帯域幅がすべて占有される可能性があります。この場合、最大帯域幅の設定が有効になっていると接続が拒否されます。帯域幅はメトリック間隔によって平均化されるため、間隔を長くすれば、サイズの大きいファイルによるトラフィックスパイクを防ぐことができます。

> 帯域幅の制限値が使用可能な帯域幅よりもはるかに小さい場合 (たとえば、帯域幅の制限値が 1M バイト / 秒で、バックボーンとの接続が 1G バイト / 秒の場合) は、メトリック間隔を短くする必要があります。

> 注 : 転送する静的ファイルのサイズが大きいという問題の解決策と、帯域幅の制限値が使用可能な帯域幅よりもはるかに小さいという問題の解決策は相反しています。どちらの問題を調整するかを決定する必要があります。

> 3. 「QOS 再計算時間間隔」を指定します。

> 再計算時間間隔は、すべてのサーバー、クラス、および仮想サーバーの帯域幅の計算間隔を示すミリ秒数です。デフォルトは 100 ミリ秒です。

> 4. 「帯域幅制限」を指定します。

> これは、サーバーインスタンスに対する最大帯域幅 (バイト / 秒) です。ある程度「QOS メトリック間隔」と依存関係があります。

> 5. 最大帯域幅の設定を強制するかどうかを選択します。

> 最大帯域幅を強制する場合は、帯域幅の制限値に達したとき、それ以上の接続が拒否されます。

> 最大帯域幅を強制しない場合は、制限値を超えたとき、サーバーのイベントログにメッセージが記録されます。

> 6. 「接続制限」を指定します。

> これは、同時に処理できる要求の数です。

> 7. 接続制限の設定を強制するかどうかを選択します。

> 最大接続数を強制する場合は、制限値に達したとき、それ以降の接続が拒否されます。最大接続数を強制しない場合は、制限値を超えたとき、サーバーのイベントログにメッセージが記録されます。

> 8. この指定はオプションです。サービス品質に関する追加の名前 - 値ペアを指定するには、「プロパティ」ボタンをクリックします。

> サービス品質のプロパティで有効な名前 - 値ペアの一覧については、オンラインヘルプを参照してください。

> 9. 「保存」をクリックして、サーバーインスタンスへの変更をコミットします。
> 10. 左ペインでアプリケーションサーバーインスタンスを選択してサーバーインスタンスにアクセスし、「変更を適用」をクリックします。

> ### obj.conf ファイルへの必要な変更

> サービス品質を強制するには、指令 (ディレクティブ) を obj.conf ファイルに追加して、次の Server Application Function (SAF) を呼び出す必要があります。

> - AuthTrans qos-handler
> - Error qos-error

> AuthTrans 指令 qos-handler を正しく動作させるためには、デフォルトのオブジェクト内で最初の AuthTrans として設定する必要があります。サービス品質ハンドラには、仮想サーバー、仮想サーバークラス、グローバルサーバーの現在の統計情報を調べ、エラーを返して制限値を強制する働きがあります。Sun ONE Application Server には、qos-handler という組み込みのサービス品質ハンドラ SAF のサンプルが付属しています。この SAF は、制限値に達した時刻を記録したあと、サーバーに 503 Server busy エラーを返して、NSAPI で処理されるようにします。

> Sun ONE Application Server には、qos-error という組み込みのエラー SAF のサンプルも付属しています。このサンプルは、503 エラーの原因となった制限値と、その制限値を決定付けた統計値を示すエラーページを返します。

> SAF とその使用方法の詳細については、『Sun ONE Application Server Developer's Guide to NSAPI』を参照してください。

> ### サービス品質に関する既知の制限事項

> サービス品質の機能を使用するときは、次の制限事項に留意してください。

> - サービス品質の機能では、アプリケーションレベルの HTTP 帯域幅だけが測定されます。HTTP 帯域幅は、次のようなさまざまな理由により、実際の TCP ネットワーク帯域幅とは異なる場合があります。
> - SSL が有効になっている場合、トラフィックにハンドシェークとクライアント証明書の交換が追加されますが、これらは計測されません。
> - 単方向または双方向のチャンクエンコーディングが有効になっている場合、チャンク層によってチャンクヘッダーが削除され、トラフィックにカウントされません。その他のヘッダーやプロトコル項目はカウントされます。
> - サービス品質の機能では、PR_TransmitFile 呼び出しからのトラフィックを正確に測定できません。PR_Send()/net_write、PR_Recv()/net_read などの基本入出力操作では、通常、1 回のシステムコールで転送されるバイト数とバッファのサイズが等しくなり、呼び出しの時間も短いため、転送されたデータ量を帯域幅マネージャで迅速に計算できます。この機能は、動的なコンテンツアプリケーションの瞬間的な帯域幅の測定に最適です。しかし、PR_TransmitFile から転送されるデータの量は転送が終了するまで測定できません。

> サービス品質の機能は、PR_TransmitFile が短時間であれば適切に動作します。一方、PR_TransmitFile が長時間に及ぶ場合、たとえばダイアルアップユーザーがサイズの大きいファイルをダウンロードする場合などは、転送の完了時に転送された全体のデータ量が算入されます。次の再計算間隔では、その大規模な PR_TransmitFile が原因で、帯域幅マネージャによって計算される帯域幅の値が非常に大きくなります。このような場合、サーバーは、次のメトリック間隔まですべての要求を拒否することがあります。そして、帯域幅マネージャが期限切れになったファイル転送操作を終了したときに、ふたたび帯域幅の値が小さくなります。静的ファイルを長時間かけてダウンロードするようなサイトでは、メトリック間隔をデフォルトの 30 秒よりも長くする必要があります。

> - 計算される帯域幅は、瞬間的なものではなく、一定の間隔で一定期間にわたって計算されるものなので、常に近似値になります。たとえば、メトリック間隔がデフォルトの 30 秒で、サーバーが 29 秒間アイドル状態だったとします。この場合、次の 1 秒間で、クライアントが帯域幅の制限値の 30 倍を使用することもあります。
> - 帯域幅のサービス品質に関する統計情報は、サーバーが動的に再設定されると失われます。また、サービス品質の制限は、アクティブでない古い設定上で接続したスレッドには適用されません。これは、帯域幅マネージャのスレッドが、アクティブな設定の帯域幅の統計情報だけを計算するためです。クライアントが長時間ソケットを終了せず、ずっとアクティブになっている場合、サーバーはこのクライアントをタイムアウトにしません。このようなクライアントは、サーバーを動的に再設定しても、サービス品質の制限の影響を受けない場合があります。
> - 同時に複数の接続が存在する場合、統計情報は、仮想サーバークラスやグローバルサーバーインスタンスとは異なった細分度で計算されます。個々の仮想サーバーの接続カウンタは、要求が解析されて仮想サーバーに配信された直後、アトミックに増分されます。そして、その要求の応答処理が終了した時点でアトミックに減分されます。このため、仮想サーバーの接続に関する統計情報は、どの時点でも常に正確です。

> ただし、仮想サーバークラスとグローバルサーバーインスタンスの接続に関する統計情報は、すぐには更新されません。これらの統計情報は、再計算間隔ごとに帯域幅マネージャのスレッドによって更新されます。仮想サーバークラスの接続数は、そのクラスのすべての仮想サーバー上の接続の合計数であり、グローバルサーバーインスタンスの接続数は、すべての仮想サーバークラス上の接続の合計数です。

> これらの値の計算方法によって、仮想サーバーの接続数は常に正確になります。また、接続数の制限を強制すると、制限を超えた接続は許可されません。仮想サーバークラスとサーバーインスタンスの値は、再計算間隔だけで計算されるため、接続数に比較すると正確ではありません。

> ##

> SNMP について

> SNMP (Simple Network Management Protocol) は、ネットワークの管理情報と監視情報を交換するために使用されるプロトコルです。管理対象デバイスとネットワーク管理ステーション (NMS) 間のデータのやりとりは、SNMP によって行われる。ネットワーク上のホスト、ルーター、HTTP サーバー、その他のサーバーなど、SNMP を実行するすべてのデバイスが管理対象デバイスとなります。

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

> - ネットワーク管理ステーション (NMS)
> - 管理情報ベース (MIB) オブジェクト
> - SNMP メッセージ
> - SNMP トラップの送信先
> - SNMP エージェントコミュニティ

> ### ネットワーク管理ステーション (NMS)

> NMS (ネットワーク管理ステーション) は、特定のネットワークをリモート管理するマシンです。通常、NMS ソフトウェアには、収集されたデータをグラフに表示する機能や、そのデータを使ってサーバーが特定の許容範囲内で動作していることを確認する機能がある。

> 通常、NMS には強力なワークステーションを使用し、1 つ以上のネットワーク管理アプリケーションがインストールされます。HP OpenView のようなネットワーク管理アプリケーションでは、HTTP サーバーをはじめとする管理対象のデバイスに関する情報がグラフィカルに表示されます。たとえば、社内のどのサーバーが稼動または停止しているかを表示することや、受け取ったエラーメッセージの数と種類を表示することができます。このような情報は、Sun ONE Application Server で SNMP を使用する場合、サブエージェントとマスターエージェントという 2 種類のエージェントを使用して、NMS とサーバーの間で転送されます。

> サブエージェントは、さまざまなドメインで実行しているサーバーインスタンスに関する情報を収集し、マスターエージェントに情報を渡します。マスターエージェントとサブエージェントは、Sun ONE Application Server のインストールごとに存在します。

> 注 | SNMP の設定を変更したときは、「適用」ボタンをクリックしてから、SNMP サブエージェントを再起動する必要があります。

> マスターエージェントは、さまざまなサブエージェントと NMS との間で情報を交換します。マスターエージェントは、Sun ONE Application Server のインストール時にインストールされます。

> 1 台のホストコンピュータに複数のサブエージェントをインストールできますが、マスターエージェントは 1 つしかインストールできません。たとえば、Sun ONE Directory Server、Sun ONE Application Server、Sun ONE Messaging Server を同じホストにインストールしている場合、各サーバーのサブエージェントは、同じマスターエージェントと通信します。

> NMS は、サーバー情報の要求、またはサーバー MIB に保存されている変数値の変更のいずれかを行います。次に例を示します。

> 1. NMS が管理サーバーのマスターエージェントにメッセージを送信します。このメッセージは、データの要求 (GET メッセージ) か MIB の変数の設定命令 (SET メッセージ) です。
> 2. マスターエージェントは、受信したメッセージを適切なサブエージェントに転送します。
> 3. サブエージェントは、このデータを取得するか、MIB 内の変数を変更します。
> 4. サブエージェントは、マスターエージェントにデータまたは状態を報告します。マスターエージェントは、報告内容 (GET メッセージ) を NMS に返送します。
> 5. NMS は、ネットワーク管理アプリケーションを通して、データをテキストまたはグラフィックで表示します。

> ### 管理情報ベース (MIB) オブジェクト

> Sun ONE Application Server には、ネットワーク上の管理情報や監視情報に関する変数が保存されています。マスターエージェントがアクセスできる変数は、管理対象オブジェクトと呼ばれます。これらのオブジェクトは、MIB (管理情報ベース) と呼ばれるツリー構造で定義されます。MIB によって、HTTP サーバーのネットワーク設定、状態、および統計情報へアクセスできる。SNMP を使用すると、これらの情報を NMS (ネットワーク管理ステーション) から確認できる。

> MIB ツリーのトップレベルを見ると、インターネットオブジェクト識別子には次の 4 種類のサブツリーがあることがわかります。

> - directory (1)
> - mgmt (2)
> - experimental (3)
> - private (4)

> private (4) のサブツリーには、enterprises (1) ノードが含まれます。enterprises (1) ノードの各サブツリーは、個々の企業 (独自の MIB 拡張を登録している組織) に割り当てられます。企業は、自社のサブツリーの下に製品固有のサブツリーを作成できます。企業によって作成された MIB は、enterprises (1) ノードの下に置かれます。

> Sun ONE Application Server のサブエージェントは、SNMP 通信で使用する MIB を提供します。サーバーは、これらの変数が含まれたメッセージまたはトラップを送信することにより、重大なイベントを NMS に報告します。NMS はサーバーの MIB のデータをクエリできます。

> Sun ONE Application Server ごとに独自の MIB が、install_dir/lib に格納されています。

> Sun ONE Application Server の MIB は、appserv.mib というファイルです。この MIB には、Sun ONE Application Server のネットワーク管理に関する各種変数の定義が格納されています。

> Sun ONE Application Server の MIB は、appserver 1 (as appserver7 OBJECT IDENTIFIER ::= {appserver 1 }) というオブジェクト識別子を持ち、install_dir/lib ディレクトリに格納されます。

> Sun ONE Application Server の MIB を使用すると、Sun ONE Application Server に関する管理情報をリアルタイムで確認および監視できます。次の表に、appserv.mib ファイルに格納されている管理対象オブジェクトとその説明を示します。

> 表 6-27 appserv.mib の管理対象オブジェクトと説明

> 管理対象オブジェクト | 説明
> --- | ---
> iwsCpuID | CPU 識別子
> iwsCpuIdleTime | CPU のアイドル時間
> iwsCpuKernelTime | CPU のカーネル時間
> iwsCpuTable | Sun ONE Application Server の CPU
> iwsCpuUserTime | CPU のユーザー時間
> iwsInstanceTable | Sun ONE Application Server のインスタンス
> iwsInstanceId | サーバーインスタンス識別子
> iwsInstanceVersion | 文字列 (SunONE-ApplicationServer-Enterprise/7 BB1-01/24/2001 17:15 (SunOS DOMESTIC) など)
> iwsInstanceDescription | サーバーインスタンスの説明
> iwsInstanceOrganization | サーバーインスタンスを管理する組織
> iwsInstanceContact | サーバーインスタンスを管理する担当者の連絡先
> iwsInstanceLocation | サーバーの場所
> iwsInstanceStatus | サーバーインスタンスの状態
> iwsInstanceUptime | サーバーの稼動時間
> iwsInstanceDeathCount | サーバーインスタンスのプロセスが停止した回数
> iwsInstanceRequests | サーバーインスタンスが処理した要求の数
> iwsInstanceInOctets | サーバーインスタンスが受信したオクテット数。使用できる情報がない場合は 0
> iwsInstanceOutOctets | サーバーインスタンスが送信したオクテット数。使用できる情報がない場合は 0
> iwsInstanceCount2xx | サーバーインスタンスが発行した 200 番レベル (Successful) の応答数
> iwsInstanceCount3xx | サーバーインスタンスが発行した 300 番レベル (Redirection) の応答数
> iwsInstanceCount4xx | サーバーインスタンスが発行した 400 番レベル (Client Error) の応答数
> iwsInstanceCount5xx | サーバーインスタンスが発行した 500 番レベル (Server Error) の応答数
> iwsInstanceCountOther | サーバーインスタンスが発行したその他 (2xx、3xx、4xx、5xx 以外) の応答数
> iwsInstanceCount200 | サーバーインスタンスが発行した 200 (OK) の応答数
> iwsInstanceCount302 | サーバーインスタンスが発行した 302 (Moved Temporarily) の応答数
> iwsInstanceCount304 | サーバーインスタンスが発行した 304 (Not Modified) の応答数
> iwsInstanceCount400 | サーバーインスタンスが発行した 400 (Bad Request) の応答数
> iwsInstanceCount401 | サーバーインスタンスが発行した 401 (Unauthorized) の応答数
> iwsInstanceCount403 | サーバーインスタンスが発行した 403 (Forbidden) の応答数
> iwsInstanceCount404 | サーバーインスタンスが発行した 404 (Not Found) の応答数
> iwsInstanceLoad1MinuteAverage | サーバーインスタンスを実行しているシステムの 1 分間の平均読み込み
> iwsInstanceLoad5MinuteAverage | サーバーインスタンスを実行しているシステムの 5 分間の平均読み込み
> iwsInstanceLoad15MinuteAverage | サーバーインスタンスを実行しているシステムの 15 分間の平均読み込み
> iwsInstanceNetworkInOctets | ネットワーク上で送信された 1 秒間のオクテット数
> iwsInstanceNetworkOutOctets | ネットワーク上で受信された 1 秒間のオクテット数
> iwsVsTable | 仮想サーバー
> iwsVsId | 仮想サーバー識別子
> iwsVsRequests | 仮想サーバーが処理した要求の数
> iwsVsInOctets | 仮想サーバーが受信したオクテット数
> iwsVsOutOctets | 仮想サーバーが送信したオクテット数
> iwsVsCount2xx | 仮想サーバーが発行した 200 番レベル (Successful) の応答数
> iwsVsCount3xx | 仮想サーバーが発行した 300 番レベル (Redirection) の応答数
> iwsVsCount4xx | 仮想サーバーが発行した 400 番レベル (Client Error) の応答数
> iwsVsCount5xx | 仮想サーバーが発行した 500 番レベル (Server Error) の応答数
> iwsVsCountOther | 仮想サーバーが発行したその他 (2xx、3xx、4xx、5xx 以外) の応答数
> iwsVsCount200 | 仮想サーバーが発行した 200 (OK) の応答数
> iwsVsCount302 | 仮想サーバーが発行した 302 (Moved Temporarily) の応答数
> iwsVsCount304 | 仮想サーバーが発行した 304 (Not Modified) の応答数
> iwsVsCount400 | 仮想サーバーが発行した 400 (Bad Request) の応答数
> iwsVsCount401 | 仮想サーバーが発行した 401 (Unauthorized) の応答数
> iwsVsCount403 | 仮想サーバーが発行した 403 (Forbidden) の応答数
> iwsVsCount404 | 仮想サーバーが発行した 404 (Not Found) の応答数
> iwsProcessTable | Sun ONE Application Server のプロセス
> iwsProcessId | オペレーティングシステムのプロセス識別子
> iwsProcessThreadCount | 要求処理スレッド数
> iwsProcessThreadIdle | 現在アイドル状態の要求処理スレッド数
> iwsProcessConnectionQueueCount | 接続キュー内の接続数
> iwsProcessConnectionQueuePeak | これまでに同時にキューに入れた最大接続数
> iwsProcessConnectionQueueMax | 接続キューに入れることができる最大接続数
> iwsProcessConnectionQueueTotal | これまでに受け入れた接続数
> iwsProcessConnectionQueueOverflows | 接続キューのオーバーフローによって拒否された接続数
> iwsProcessKeepaliveCount | キープアライブキュー内の接続数
> iwsProcessKeepaliveMax | キープアライブキューに入れることができる最大接続数
> iwsProcessSizeVirtual | K バイト単位のプロセスサイズ
> iwsProcessSizeResident | K バイト単位のプロセス常駐サイズ
> iwsProcessFractionSystemMemoryUsage | システムメモリ内のプロセスメモリ部分
> iwsListenTable | Sun ONE Application Server 待機ソケット
> iwsListenId | 待機ソケット識別子
> iwsListenAddress | ソケットが待機するアドレス
> iwsListenPort | ソケットが待機するポート
> iwsListenSecurity | 暗号化のサポート
> iwsThreadPoolCount | 拒否された要求の数
> iwsThreadPoolMax | キューに入れることができる最大要求数
> iwsThreadPoolPeak | これまでに同時にキューに入れた最大の要求数
> iwsThreadPoolTable | Sun ONE Application Server のスレッドプール
> iwsVsCount503 | 発行された 503 (Unavailable) の応答数
> iwsInstanceCount503 | 発行された 503 (Unavailable) の応答数

> ### SNMP メッセージ

> SNMP では、GET と SET の 2 種類のメッセージが定義されています。

> 各オブジェクトには、MIB 内で一意の識別子が割り当てられます。SNMP マネージャでオブジェクトにアクセスするには、その識別子を指定する GET コマンドおよび GETNEXT コマンドを発行します。プロキシエージェントは、指定されたオブジェクトの値を取得し、SNMP マネージャに転送します。ログに追加されたイベントがトラップフィルタの条件を満たしている場合、SNMP トラップが生成されます。トラップを生成しないイベントは、単に管理ログテーブルのエントリとして記録されます。これらには、標準の GET コマンドおよび GETNEXT コマンドで SNMP マネージャからアクセスできます。

> GET メッセージと SET メッセージは、NMS からマスターエージェントに送信されます。管理インタフェースでは、このいずれかまたは両方のメッセージを使用できます。

> SNMP は、プロトコルデータユニット (PDU) の形式でネットワーク情報をやり取りします。このユニットには、HTTP サーバーなどの管理対象デバイスに格納されている変数の情報が収められています。これらの変数は、必要に応じて NMS に報告される値とタイトルを含んでおり、管理対象オブジェクトとも呼ばれます。サーバーから NMS に送信されるプロトコルデータユニットを「トラップ」と呼びます。GET、SET、トラップの各メッセージの使用については、以降の各節で説明します。

> ### SNMP トラップの送信先

> SNMP トラップは、SNMP エージェントが NMS に送信するメッセージです。SNMP エージェントは、インタフェースの状態が稼動から停止に変わったときなどにトラップを送信します。SNMP エージェントは、NMS のアドレスを元にトラップの送信先を認識します。

> SNMP マスターエージェントのトラップの送信先は、Sun ONE Application Server の管理インタフェースで設定できます。設定済みのトラップの送信先の表示、編集、および削除も可能です。管理インタフェースを使ってトラップの送信先を設定すると、実際に CONFIG ファイルが編集されます。

> サーバーのサブエージェントは、重大なイベントが発生したとき、NMS にメッセージまたはトラップを送信します。次に例を示します。

> 1. サブエージェントがマスターエージェントに、サーバーの停止を通知します。
> 2. マスターエージェントは、イベントを報告するメッセージまたはトラップを NMS に送信します。
> 3. NMS は、ネットワーク管理アプリケーションを通して、情報をテキストまたはグラフィックで表示します。

> SNMP トラップポートの設定方法については、「SNMP マスターエージェントのインストール」を参照してください。

> ### SNMP エージェントコミュニティ

> SNMP エージェントコミュニティは、指定されたコミュニティに割り当てられたコミュニティ文字列と操作で構成されます。コミュニティ文字列は、SNMP エージェントが承認に使用する NMS 名を示すテキスト文字列です。NMS は、エージェントに送信するメッセージとともにコミュニティ文字列を送信します。

> 割り当てられる操作は、get、set のいずれか、または両方です。SNMP エージェントは、データ交換のために get、set のいずれか、または get と set の両方を実行する権限が NMS に与えられているかどうかを検証します。SNMP パケット内のコミュニティ文字列は秘匿されず、ASCII テキストで送信されます。

> 管理インタフェースを使用すると、指定されたコミュニティごとのコミュニティ文字列と許可された操作を設定および管理できます。SNMP エージェントコミュニティの設定方法については、「SNMP マスターエージェントのインストール」を参照してください。

> ##

> SNMP の設定

> 通常、SNMP を使用するには、システムにマスターエージェントと 1 個以上のサブエージェントをインストールし、実行している必要があります。サブエージェントを有効にする前に、マスターエージェントをインストールする必要があります。「SNMP マスターエージェントのインストール」を参照してください。

> SNMP の設定手順はシステムによって異なります。次の表に、さまざまな条件下での設定手順の概要を示します。実際の手順は、この章の後半で詳しく説明します。

> サーバーの条件 | 手順 (詳細は次の各項で説明)
> --- | ---
> ネイティブエージェントが実行されていない | 1. マスターエージェントを起動します。 2. システムにインストールされている各サーバーのサブエージェントを有効にします。
> ネイティブエージェントが実行されている SMUX がサポートされていない ネイティブエージェントを継続して使用する必要がない | 1. 管理サーバーのマスターエージェントをインストールする前に、ネイティブエージェントを停止します。 2. マスターエージェントを起動します。 3. サーバーインスタンスごとに SNMP サブエージェントを設定します。
> ネイティブエージェントが実行されている SMUX がサポートされていない ネイティブエージェントを継続して使用する必要がある | 1. プロキシ SNMP エージェントをインストールします。 2. プロキシ SNMP エージェントを起動します。 3. マスターエージェントのポート番号以外のポート番号を使って、ネイティブエージェントを再起動します。 4. マスターエージェントを起動します。 5. システムにインストールされている各サーバーのサブエージェントを有効にします。

> 最初に、次の点について確認します。

> - SNMP エージェント (使用するオペレーティングシステムのネイティブエージェント) がシステムですでに稼動しているか
> - 稼動している場合は、ネイティブ SNMP エージェントが SMUX 通信をサポートしているか

> 確認方法については、ご使用のシステムのマニュアルを参照してください。

> 注 | 管理サーバーの SNMP 設定の変更、新しいサーバーのインストール、または既存のサーバーの削除を行なった場合は、次の手順を実行する必要があります。 (Windows 2000 の場合) Windows SNMP サービスまたはマシンを再起動する (UNIX の場合) 管理サーバーを使用して、SNMP マスターエージェントと SNMP サブエージェントを再起動する

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

> - プロキシ SNMP エージェントの使用 (UNIX/Linux)
> - SNMP マスターエージェントのインストール

> ### プロキシ SNMP エージェントの使用 (UNIX/Linux)

> すでに実行中のネイティブエージェントを Sun ONE Application Server のマスターエージェントと同時に継続して使用する場合は、プロキシ SNMP エージェントを使用する必要があります。その前に、ネイティブマスターエージェントを停止します。詳しい手順については、ご使用のシステムのマニュアルを参照してください。

> 注 | プロキシエージェントを使用するには、プロキシエージェントをインストールして起動する必要があります。さらに、Sun ONE Application Server のマスターエージェントが実行されているポート番号以外のポート番号を使って、ネイティブ SNMP エージェントを再起動する必要があります。

> この節には次の項目があります。

> - プロキシ SNMP エージェントのインストール
> - プロキシ SNMP エージェントの起動
> - ネイティブ SNMP デーモンの再起動

> #### プロキシ SNMP エージェントのインストール

> システム上で SNMP エージェントが稼動中で、ネイティブ SNMP デーモンを継続して使用する場合は、次の手順に従います。

> 1. SNMP マスターエージェントをインストールします。「SNMP マスターエージェントのインストール」を参照。
> 2. プロキシ SNMP エージェントをインストールし、起動して、ネイティブ SNMP デーモンを再起動します。「プロキシ SNMP エージェントの使用 (UNIX/Linux)」を参照。
> 3. SNMP マスターエージェントを起動します。「SNMP マスターエージェントの有効化と起動」を参照。
> 4. サブエージェントを有効にします。「サブエージェントの有効化」を参照。

> SNMP プロキシエージェントをインストールするには、サーバーのルートディレクトリの install_dir/lib/snmp/sagt にある CONFIG ファイル (別の名前を付けることも可能) を編集して、SNMP デーモンの待機ポートを指定します。さらに、プロキシ SNMP エージェントが転送する MIB ツリーおよびトラップも指定します。

> CONFIG ファイルの例を示します。

> AGENT AT PORT 1161 WITH COMMUNITY public SUBTREES 1.3.6.1.2.1.1, 1.3.6.1.2.1.2, 1.3.6.1.2.1.3, 1.3.6.1.2.1.4, 1.3.6.1.2.1.5, 1.3.6.1.2.1.6, 1.3.6.1.2.1.7, 1.3.6.1.2.1.8 FORWARD ALL TRAPS;

> #### プロキシ SNMP エージェントの起動

> プロキシ SNMP エージェントを起動するには、コマンドプロンプトで次のように入力します。

> # sagt -c CONFIG&

> #### ネイティブ SNMP デーモンの再起動

> プロキシ SNMP エージェントの起動後、CONFIG ファイルに指定されているポートでネイティブ SNMP デーモンを再起動します。

> ネイティブ SNMP デーモンを再起動するには、コマンドプロンプトで次のように入力します。

> # snmpd -P port_number

> port_number は CONFIG ファイルに指定されているポート番号です。たとえば、Solaris プラットフォームで、前述した例の CONFIG ファイルのポート番号を使用する場合は、次のように入力します。

> # snmpd -P 1161

> ### SNMP マスターエージェントのインストール

> 注 | 管理インタフェースを使って、マスター SNMP エージェントをインストールして起動するには、サーバーが root として実行されている必要があります。

> マスター SNMP エージェントをインストールするには、次の手順に従います。

> 1. root としてログインします。
> 2. SNMP デーモン (snmpd) がポート 161 で実行されているかどうかを確認します。

> SNMP デーモンが実行されていない場合は、手順 4 に進みます。

> SNMP デーモンが実行中の場合は、再起動の方法と、どの MIB ツリーがサポートされているかを確認してください。

> 3. SNMP デーモンが実行されている場合は、そのプロセスを強制終了します。
> 4. 管理インタフェースの左側のペインで、管理サーバーノードを選択します。
> 5. 「監視」タブを選択して、次の図で示される「SNMP エージェントトラップ」ページを表示します。

> 図 6-2 SNMP エージェントトラップ (SNMP Agent Trap) ページ

> このページには、マネージャエントリの情報が表示されます。

> 1. ネットワーク管理ソフトウェアを実行しているシステムの名前を入力します。
> 2. ネットワーク管理システムがトラップを待機しているトラップポート番号を入力します。一般的なポート番号は 162 です。トラップの詳細については、「SNMP トラップの送信先」を参照してください。
> 3. トラップで使用するコミュニティ文字列を入力します。コミュニティ文字列の詳細については、「SNMP エージェントコミュニティ」を参照してください。
> 4. 「了解」をクリックします。
> 5. 「監視」タブの「SNMP エージェントコミュニティ」リンクをクリックします。

> 次の図に示すコミュニティ文字列の情報が表示されます。

> 図 6-3 SNMP エージェントコミュニティ (SNMP Agent Community) ページ

> 1. マスターエージェントのコミュニティ文字列を入力します。
> 2. コミュニティの動作レベルを選択します。

> コミュニティが確立されると、このページの「現コミュニティ」という見出しの下のボタンで、コミュニティ設定の編集や削除を行うことができます。

> 3. 「了解」をクリックします。
> 4. 左ペインでアプリケーションサーバーインスタンスを選択してサーバーインスタンスにアクセスし、「変更を適用」をクリックします。

> ##

> SNMP マスターエージェントの有効化と起動

> マスターエージェントの動作は、CONFIG という名前のエージェント設定ファイルに定義されています。このファイルは手動で編集できます。SNMP サブエージェントを有効にする前に、マスター SNMP エージェントをインストールする必要があります。

> 注 | マスターエージェントの再起動時に「システムエラーポートにバインドできませんでした」のようなバインドエラーメッセージが表示される場合は、ps -ef | grep snmp コマンドを使用して、magt が実行中であるかどうかを確認します。実行中である場合は、kill -9 pid コマンドでこのプロセスを終了します。これで、SNMP の CGI が再度機能するようになります。

> この節には次の項目があります。

> - 別のポートを使用したマスターエージェントの起動
> - SNMP マスターエージェントの手動設定
> - マスターエージェントの CONFIG ファイルの編集
> - sysContact 変数と sysLocation 変数の定義
> - SNMP サブエージェントの設定
> - SNMP マスターエージェントの起動
> - サブエージェントの有効化

> ### 別のポートを使用したマスターエージェントの起動

> 管理インタフェースでは、161 以外のポートで SNMP マスターエージェントを起動することはできません。別のポートを使用するには、次の手順に従って手動でマスターエージェントを起動してください。

> 1. install_dir/lib/snmp/magt/CONFIG を編集して、適切なポートを指定します。
> 2. 次のようにして起動スクリプトを実行します。

> cd instance_root/admin-server ./start -shell install_dir/lib/snmp/magt/magt
> install_dir/lib/snmp/magt/CONFIG
> install_dir/lib/snmp/magt/INIT

> 指定のポートでマスターエージェントが起動します。手動で起動した場合も、管理インタフェースで、このマスターエージェントが実行されていることを確認できます。

> ### SNMP マスターエージェントの手動設定

> SNMP マスターエージェントを手動で設定するには、次の手順に従います。

> 1. root としてログインします。
> 2. ポート 161 に実行中の SNMP デーモン (snmpd) があることを確認します。

> SNMP デーモンが実行中の場合は、再起動の方法と、どの MIB ツリーがサポートされているかを確認してください。その後、プロセスを強制終了します。

> 3. サーバーのルートディレクトリの lib/snmp/magt にある CONFIG ファイルを編集します。
> 4. CONFIG ファイルに sysLocation 変数と SysLocation 変数を定義します (オプション) 。「sysContact 変数と sysLocation 変数の定義」を参照してください。

> ### マスターエージェントの CONFIG ファイルの編集

> CONFIG ファイルでは、マスターエージェントで動作するコミュニティおよびマネージャを定義します。マネージャの値は、有効なシステム名または IP アドレスにしてください。

> 基本的な CONFIG ファイルの例を示します。

> COMMUNITY public ALLOW ALL OPERATIONS MANAGER manager_station_name SEND ALL TRAPS TO PORT 162 WITH COMMUNITY public

> ### sysContact 変数と sysLocation 変数の定義

> CONFIG ファイルを編集して、MIB-II 変数の sysContact および sysLocation を指定する sysContact および sysLocation の初期値を追加できます。この例の sysContact および sysLocation の文字列が二重引用符で囲まれていることに注意してください。スペース、改行、タブなどが含まれている文字列は、二重引用符で囲む必要があります。16 進数の値を指定することもできます。

> 次に、sysContact 変数と sysLocation 変数が定義された CONFIG ファイルの例を示します。

> COMMUNITY public ALLOW ALL OPERATIONS MANAGER nms2 SEND ALL TRAPS TO PORT 162 WITH COMMUNITY public INITIAL sysLocation "Server room 901 San Antonio Road Palo Alto CA 94303 USA" INITIAL sysContact "John Doe email: jdoe@sun.com"

> ### SNMP サブエージェントの設定

> SNMP サブエージェントを設定するには、次の手順に従います。

> 1. 管理サーバーの左側のペインでサーバーインスタンスノードを選択します。
> 2. 右側のペインで「監視」タブを選択します。
> 3. 「SNMP サブエージェント設定」リンクを選択します。

> 次に示すページが表示されます。

> 図 6-4 SNMP サブエージェント設定ページ

> 1. (UNIX のみ)「マスターホスト」フィールドにサーバーの名前とドメインを入力します。
> 2. サーバーの説明 (オペレーティングシステムの情報を含む) を入力します。
> 3. サーバーを管理する組織を入力します。
> 4. サーバーインスタンスの名前を入力します。
> 5. 「連絡先」フィールドに、サーバーの管理担当者の名前と連絡先を入力します。
> 6. 「SNMP 統計収集を有効」で「オン」を選択します。
> 7. 「了解」をクリックします。
> 8. 左ペインでアプリケーションサーバーインスタンスを選択してサーバーインスタンスにアクセスし、「変更を適用」をクリックします。

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

> SNMP マスターエージェントのインストール後、手動または管理インタフェースから管理サーバーを使用して SNMP マスターエージェントを起動できます。

> #### SNMP マスターエージェントの手動による起動

> マスターエージェントを手動で起動するには、コマンドプロンプトに次のように入力します。

> # magt CONFIG INIT&

> INIT ファイルは、システムの場所や連絡先情報など、MIB-II システムグループからの情報が格納された不揮発性ファイルです。INIT ファイルが存在しない場合、ファイルはマスターエージェントの初回の起動時に作成されます。

> 注 | CONFIG ファイルに無効なマネージャ名が指定されている場合は、マスターエージェントの起動に失敗します。

> 標準以外のポートでマスターエージェントを手動で起動するには、次の 2 種類の方法のいずれかを使用してください。

> 方法 1 : CONFIG ファイルに、マスターエージェントがマネージャからの SNMP 要求を待機する各インタフェースのトランスポートマッピングを指定します。トランスポートマッピングを使うと、マスターエージェントは標準ポートと標準以外のポートで接続を受け入れることができます。また、マスターエージェントは、標準以外のポートで SNMP トラフィックを受け入れることができます。最大同時 SNMP 数は、1 プロセスあたりのオープンソケット数またはファイル記述子数に関するシステムの制限値によって決まります。トランスポートマッピングのエントリの例を示します。

> TRANSPORT extraordinary SNMP
> OVER UDP SOCKET
> AT PORT 11161

> CONFIG ファイルを手動で編集した後、コマンドプロンプトに次のように入力し、マスターエージェントを手動で起動します。

> # magt CONFIG INIT&

> 方法 2 : /etc/services ファイルを編集して、マスターエージェントが標準ポートと標準以外のポートでも接続を受け入れることができるようにします。

> #### 管理サーバーによる SNMP マスターエージェントの起動

> 管理サーバーを使って SNMP マスターエージェントを起動するには、次の手順に従います。

> 注 | SNMP マスターエージェントを起動するには、Sun ONE Application Server に root としてログインする必要があります。

> 1. 管理サーバーにログインします。
> 2. 左側のペインの管理サーバーノードを選択し、「監視」タブを選択します。
> 3. 右側のペイン最上部の「SNMP エージェント制御」リンクを選択します。

> 次に示すページが表示されます。

> 図 6-5 SNMP エージェント制御ページ

> 1. 「起動」をクリックします。

> 「SNMPエージェント制御」ページで、SNMP マスターエージェントの停止と再起動を行うこともできます。

> ### サブエージェントの有効化

> 管理サーバーに付属するマスターエージェントをインストールしたら、マスターエージェントを起動する前に、サーバインスタンスのサブエージェントを有効にする必要があります。マスターエージェントの詳しいインストール方法については、「SNMP マスターエージェントのインストール」を参照してください。

> UNIX/Linux プラットフォームでは、サブエージェントを使用して SNMP 機能を停止できます。サブエージェントを停止してから、マスターエージェントを停止する必要があります。マスターエージェントを先に停止すると、サブエージェントを停止できなくなることがあります。その場合は、マスターエージェントを再起動し、サブエージェントを停止したあと、マスターエージェントを停止します。

> SNMP サブエージェントを有効化するには、次の手順に従います。

> 1. 左側のペインでアプリケーションサーバーインスタンスノードを展開します。
> 2. サーバーインスタンスを選択し、「監視」タブをクリックします。
> 3. 「SNMP サブエージェント制御」オプションを選択して、次の図で示されるページを表示します。

> 図 6-6 SNMP サブエージェント制御ページ

> このページで、SNMP サブエージェントの起動、停止、再起動を行うことができます。サブエージェントの状態が、制御ボタンの上に表示されます。

> Windows プラットフォームでは、Sun ONE Application Server の監視に Windows SNMP サービスが使用されます。このサービスは、「コントロールパネル/管理ツール/サービス」から制御できます。

> 注 | SNMP の設定を変更したときは、「適用」ボタンをクリックしてから、「SNMP サブエージェント制御」ページで SNMP サブエージェントを再起動する必要があります。

> 前へ 目次 索引 次へ

> Copyright 2003 Sun Microsystems, Inc. All rights reserved.