Sun ONE ロゴ      前へ      目次      索引      次へ     

Sun ONE Application Server 7, Enterprise Edition 管理者ガイド

第 6 章
Sun ONE Application Server の監視

この章では、Sun ONE Application Server で利用可能な、監視と SNMP (Simple Network Management Protocol) の機能と特徴について、説明しています。

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


Sun ONE Application Server の監視について

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

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

統計情報

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

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

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

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 7, Enterprise Edition のすべてのサブシステムに関する統計情報を利用するには、コマンド行インタフェースを使用します。


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

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

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

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

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

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

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

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

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

EJB コンテナの場合、監視機能を有効にすると、エンティティ 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 コマンド

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 7, Enterprise Edition のインスタンス名で表されます。たとえば、server1 と名前付けされているインスタンスのルートの監視オブジェクトは、次のようになります。

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

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

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

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

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

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

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

Petstore の例

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

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

    asadmin>export AS_ADMIN_HOST=localhost AS_ADMIN_PORT=4848

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

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

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

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

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

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

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

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

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

  16. 次のコマンドを入力して、実行時間など特定の統計情報を取得することもできます。
  17. 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

Yes

No

http-server iiop-service
resources
transaction-service application standalone-ejb-module

 

http-server

Yes

No

virtual-server
Process

 

virtual-server

Yes

Yes

 

 

process

Yes

Yes

 

 

iiop-service

Yes

Yes

orb

 

orb

No

No

orb-connection orb-thread-pool

system がシステム ORB のために予約されている。すべてのユーザー ORB が TCP エンドポイントから派生する名前を取得する

orb-connection

Yes

Yes

 

 

orb-thread-pool

Yes

Yes

 

 

resources

Yes

No

jdbc-connection-pool

 

jdbc-connection-pool

No

Yes

 

名前は、接続プール作成時にユーザーが指定するものと同じ

transaction-service

Yes

Yes

 

 

application

No

No

ejb-module

server.xml に登録されたアプリケーションの名前

ejb-module

No

No

stateless-session-bean stateful-session-bean entity-bean message-driven-bean

EJB モジュールの名前。EJB JAR 名から派生する

standalone-ejb-module

No

No

stateless-session-bean stateful-session-bean entity-bean message-driven-bean

server.xml に登録されたスタンドアロン EJB モジュールの名前

stateless-session-bean

No

No

bean-pool
bean-method

配備記述子の Bean 名

stateful-session-bean

No

No

bean-cache
bean-method

配備記述子の Bean 名

entity-bean

No

No

bean-cache
bean-pool
bean-method

配備記述子の Bean 名

message-driven-bean

No

No

bean-pool
bean-method

配備記述子の Bean 名

bean-pool

Yes

Yes

 

 

bean-cache

Yes

Yes

 

 

bean-method

No

Yes

 

メッセージ駆動型 Beans の onMessage。別のエンタープライズ Beans 内のメソッド用に、数値のサフィックスを付けたメソッド名。サフィックスは、オーバーロードされたメソッドを特定するために必要

監視可能な属性名

すべての監視可能なオブジェクトについて、監視可能な属性名を公開する必要があるわけではありません。オブジェクトには、その他のオブジェクトをグループ化するためだけに使用されるものもあります。Sun ONE Application Server 7, Enterprise Edition では、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

長形式

最後に成功したメソッドの実行に要した時間。EJB コンテナに対する監視機能が有効に設定されている場合は、ステートレスセッション Beans、ステートフルセッション Beans、およびエンティティ Beans について収集される。メッセージ駆動型 Bean コンテナに対する監視機能が有効に設定されている場合は、メッセージ駆動型 Beans について収集される

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

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

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

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

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

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

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

要素名

サブ要素

説明

Server

ConnectionQueue
ThreadPool
Profile
Process
VirtualServer

サーバーインスタンス

ConnectionQueue

なし

要求が送信される前に保持されるキュー。Sun ONE Application Server 7 には接続キューが 1 個だけある

ThreadPool

なし

スレッドプール。init.conf ファイルで定義する

Profile

なし

init.conf ファイルで定義される、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 7, Enterprise Edition のバージョンを示す文字列

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

Name

 

スレッドプールのシンボリック名

表 6-16 Profile 

属性名

説明

Id

 

NSAPI パフォーマンスプロファイルバケット ID

Name

 

NSAPI パフォーマンスプロファイルバケットのシンボリック名

Description

 

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 つの接続が複数回キューに入れられることもあるため、CountTotalQueuedCountTotalConnections 以上の値になる

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

unknownactive

仮想サーバーがアクティブの場合は active が表示される

Hosts

 

仮想サーバーが配信するソフトウェア仮想サーバーのホスト名 (www.foo.com foo.com foo.isp.com など)

Interfaces

 

仮想サーバーを設定したインタフェース (リスナー)。192.168.1.2:80 192.168.1.2:443 など

表 6-25 RequestBucket 

属性名

説明

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 ProfileBucket 

属性名

説明

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 トランザクションサービスの詳細は、第 8 章「トランザクションサービスの使用」を参照してください。


HTTP サービス品質の使用

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

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

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

サービス品質 (QOS) の例

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

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

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

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

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


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


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

  1. 左のペインで「App Server Instances (アプリケーションサーバーインスタンス)」ノードを選択します。
  2. サーバーインスタンスノードを展開して、「HTTP Server (HTTP サーバー)」ノードを表示します。
  3. 「HTTP Server (HTTP サーバー)」ノードをクリックして、「QOS」タブを表示します。
  4. 「QOS」タブをクリックします。
  5. 次のページでは、サービス品質の一般的な設定と、「Propaeties (プロパティ)」ボタンが表示されています。

    図 6-1 仮想サーバーインスタンスの「QOS」タブ
    この図は、HTTP サーバーインスタンスの「QOS」(サービス品質) タブを示しています。

  6. この HTTP サーバーに対するサービス品質を有効にするために、「QOS Enable (QOS を有効)」をクリックします。
  7. 注 : デフォルトでは、サービス品質は無効になっています。サービス品質を有効にすると、サーバーのオーバーヘッドがわずかに増えます。

  8. 「QOS Metrics Interval (QOS メトリック間隔)」を指定します。
  9. メトリック間隔は、サーバートラフィック計算中にデータがサンプリングされる時間 (秒単位) です。デフォルト値は 30 秒です。

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

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

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

  10. 「QOS Recompute Time Interval (QOS 再計算時間間隔)」を指定します。
  11. 再計算時間間隔は、すべてのサーバー、クラス、および仮想サーバーの帯域幅の計算間隔を示すミリ秒数です。デフォルトは 100 ミリ秒です。

  12. 「Bandwidth Limit (帯域幅制限)」を指定します。
  13. これは、サーバーインスタンスに対する最大帯域幅 (バイト / 秒) です。ある程度「QOS Metrics Interval (QOS メトリック間隔)」と依存関係があります。

  14. 最大帯域幅の設定を強制するかどうかを選択します。
  15. 最大帯域幅を強制する場合は、帯域幅の制限値に達したとき、それ以上の接続が拒否されます。

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

  16. 「Connection Limit (接続制限)」を指定します。
  17. これは、同時に処理できる要求の数です。

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

  20. この指定はオプションです。サービス品質に関する追加の名前 - 値ペアを指定するには、「Properties (プロパティ)」ボタンをクリックします。
  21. サービス品質のプロパティで有効な名前 - 値ペアの一覧については、オンラインヘルプを参照してください。

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

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

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

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』を参照してください。

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

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


SNMP について

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

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

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

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

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

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


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


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

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 種類のサブツリーがあることがわかります。

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 7, Enterprise Edition に関する管理情報をリアルタイムで確認および監視できます。次の表に、appserv.mib ファイルに格納されている管理対象オブジェクトとその説明を示します。

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

管理対象オブジェクト

説明

iwsCpuID

CPU 識別子

iwsCpuIdleTime

CPU のアイドル時間

iwsCpuKernelTime

CPU のカーネル時間

iwsCpuTable

Sun ONE Application Server 7, Enterprise Edition の CPU

iwsCpuUserTime

CPU のユーザー時間

iwsInstanceTable

Sun ONE Application Server 7, Enterprise Edition のインスタンス

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 では、GETSET の 2 種類のメッセージが定義されています。

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

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

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

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 は、エージェントに送信するメッセージとともにコミュニティ文字列を送信します。

割り当てられる操作は、getset のいずれか、または両方です。SNMP エージェントは、データ交換のために getset のいずれか、または getset の両方を実行する権限が 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 設定の変更、新しいサーバーのインストール、または既存のサーバーの削除を行なった場合は、次の手順を実行する必要があります。

  • (UNIX の場合) 管理サーバーを使用して、SNMP マスターエージェントと SNMP サブエージェントを再起動する

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

プロキシ SNMP エージェントの使用

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


プロキシエージェントを使用するには、プロキシエージェントをインストールして起動する必要があります。加えて、ネイティブ SNMP エージェントは、Sun ONE Application Server マスターエージェントで使用しているものとは異なるポート番号を設定した上で、再起動が必要になります。


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

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

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

  1. SNMP マスターエージェントをインストールします。「SNMP マスターエージェントのインストール」を参照してください。
  2. プロキシ SNMP エージェントをインストールし、起動して、ネイティブ SNMP デーモンを再起動します。「プロキシ SNMP エージェントの使用」を参照してください。
  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 エージェントを起動するには、コマンドプロンプトで次のように入力します。

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

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

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

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

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


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


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

  1. root としてログインします。
  2. SNMP デーモン (snmpd) がポート 161 で実行されているかどうかを確認します。
  3. SNMP デーモンが実行されていない場合は、手順 4 に進みます。

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

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

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

  8. ネットワーク管理ソフトウェアを実行しているシステムの名前を入力します。
  9. ネットワーク管理システムがトラップを待機しているトラップポート番号を入力します。一般的なポート番号は 162 です。トラップの詳細は、「SNMP トラップの送信先」を参照してください。
  10. トラップで使用するコミュニティ文字列を入力します。コミュニティ文字列の詳細は、「SNMP エージェントコミュニティ」を参照してください。
  11. 「OK (了解)」をクリックします。
  12. 「Monitoring (監視)」タブの「SNMP Agent Community (SNMP エージェントコミュニティ)」リンクをクリックします。
  13. 次の図に示すコミュニティ文字列の情報が表示されます。

    図 6-3 「SNMP Agent Community (SNMP エージェントコミュニティ)」ページ
    この図は、「SNMP Agent Community (SNMP エージェントコミュニティ)」ページの設定を示しています。

  14. マスターエージェントのコミュニティ文字列を入力します。
  15. コミュニティの動作レベルを選択します。
  16. コミュニティが確立されると、このページの「Current Communities (現コミュニティ)」という見出しの下のボタンで、コミュニティ設定の編集や削除を行うことができます。

  17. 「OK (了解)」をクリックします。
  18. 左ペインでアプリケーションサーバーインスタンスを選択してサーバーインスタンスにアクセスし、「Apply Changes (変更を適用)」をクリックします。


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

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


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


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

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

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

  1. install_dir/lib/snmp/magt/CONFIG を編集して、適切なポートを指定します。
  2. 次のようにして起動スクリプトを実行します。
  3. 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) があることを確認します。
  1. サーバーのルートディレクトリの lib/snmp/magt にある CONFIG ファイルを編集します。
  2. CONFIG ファイルに sysContact 変数と 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. 右側のペインで「Monitoring (監視)」タブを選択します。
  3. 「SNMP Subagent Configuration (SNMP サブエージェント設定)」リンクを選択します。
  4. 次に示すページが表示されます。

    図 6-4 「SNMP Subagent Configuration (SNMP サブエージェント設定)」ページ
    この図は、サブエージェントの SNMP 設定を示しています。

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

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

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

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

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

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


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


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

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

TRANSPORT          extraordinary   SNMP
                   OVER UDP SOCKET
                    AT PORT 11161

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

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

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

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


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


  1. 管理サーバーにログインします。
  2. 左側のペインの管理サーバーノードを選択し、「Monitoring (監視)」タブを選択します。
  3. 右側のペイン最上部の「SNMP Agent Control (SNMP エージェント制御)」リンクを選択します。
  4. 次に示すページが表示されます。

    図 6-5 「SNMP Agent Control (SNMP エージェント制御)」ページ
    この図は、SNMP マスターエージェントを制御する方法を示しています。

  5. 「Start (起動)」をクリックします。

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

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

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

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

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

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


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




前へ      目次      索引      次へ     


Copyright 2003 Sun Microsystems, Inc. All rights reserved.