ここでは、次の内容について説明します。
Application Server の管理と監視は、JMX をベースにしています。つまり、管理対象コンポーネントは、MBean で表されます。Java 2 Standard Edition (J2SE) 5.0 を使用すると、JVM を監視したり、JVM MBean を表示したりして、状況を理解することができます。このインストゥルメンテーションを公開するために、Application Server ではシステム JMX コネクタサーバーという標準 JMX コネクタサーバーの設定を提供します。Application Server の起動時に、この JMX コネクタサーバーのインスタンスを起動し、信頼できるクライアントにインストゥルメンテーションを公開します。
Java Monitoring and Management Console (JConsole) は、JMX バックエンドを管理できる一般的な JMX コネクタです。JConsole (http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jconsole.html) は、J2SE 5.0 からの標準 JDK ディストリビューションの一部として利用できます。JConsole の詳細は、http://java.sun.com/developer/technicalArticles/J2SE/jconsole.htmlを参照してください。
Application Server で使用できるように JConsole を設定すると、Application Server は JMX コネクタのサーバー側となり、JConsole は JMX コネクタの優先クライアント側となります。
Application Server 、つまりJMX コネクタサーバー側への接続方法は、接続のトランスポート層のセキュリティーによって若干異なります。サーバー側がセキュリティー保護されている (トランスポート層のセキュリティーが保証されている) 場合、クライアント側で実行する設定があります。
デフォルトでは、Application Server の Platform Edition のシステム JMX コネクタサーバー側はセキュリティー保護されていません。
デフォルトでは、Application Server の Enterprise Edition のシステム JMX コネクタサーバー側はセキュリティー保護されています。
通信に使用されるプロトコルは、RMI/JRMP です。JMX コネクタのセキュリティーが有効な場合、使用されるプロトコルは SSL 上の RMI/JRMP です。
SSL 上の RMI では、クライアントが目的のサーバーと通信できるようにするための追加チェックは行われません。そのため、JConsole の使用時は、悪意のあるホストにユーザー名とパスワードを送信している可能性が常にあります。セキュリティーが安全であるかどうかの確認は、管理者に完全に委ねられています。
Platform Edition ドメインを appserver.sun.com のようなマシンにインストールすると、管理サーバーまたは単にドメインである DAS (ドメイン管理サーバー) の domain.xml に次のようなエントリが含まれます。
<!- – The JSR 160 "system-jmx-connector" – –><jmx-connector accept-all="false" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="false"/> <!- – The JSR 160 "system-jmx-connector" – –>
JMX コネクタの security-enabled フラグは false です。Enterprise Edition が稼働している場合、または Platform Edition の JMX コネクタのセキュリティーを有効にした場合、このフラグは true に設定されます。
<!- – The JSR 160 "system-jmx-connector" – –><jmx-connector accept-all="false" address="0.0.0.0" auth-realm-name="admin-realm" enabled="true" name="system" port="8686" protocol="rmi_jrmp" security-enabled="true"/> ...</jmx-connector><!- – The JSR 160 "system-jmx-connector" – –>
JConsole の設定は、2 つに分かれます。サーバー側とクライアント側です。Application Server ドメインは、強力な Solaris サーバーであるappserver.sun.com と呼ばれるマシンにインストールされます。これがサーバー側です。
クライアント側にも Application Server のインストールがあります。ここでは、クライアント側は Windows マシンで、Java SE 5.0 と Application Server がインストールされているものとします。
クライアント側で Application Server のインストールが必要になるのは、Application Server ドメインのリモートマシン上でセキュリティーが有効な場合 (Enterprise Edition のデフォルト) だけです。前述の Solaris マシンで Application Server Platform Edition ドメインを管理する場合、このクライアントマシンに Application Server のインストールは必要ありません。
同じマシン上にサーバー側とクライアント側がある場合、localhost を使用してホスト名を指定できます。
この節では、JMX コネクタでセキュリティーを有効にしないで JConsole を Application Server に接続する方法について説明します。デフォルトでは、Application Server Platform Edition でセキュリティーは有効ではありません。
appserver.sun.com でドメインを起動します。
JDK_HOME/bin/jconsole を実行して JConsole を起動します。
JConsole の「エージェントに接続」タブで、ユーザー名、パスワード、ホスト名、およびポート (デフォルトは 8686) を入力します。
ユーザー名は管理ユーザーの名前、パスワードはドメインの管理パスワードを参照します。
「接続」をクリックします。
JConsole ウィンドウの各種タブに、MBean、VM 情報などが表示されます。
この節では、JMX コネクタでセキュリティーを有効にして JConsole を Application Server に接続する方法について説明します。デフォルトでは、Application Server Enterprise Edition でセキュリティーは有効です。この手順は、Platform Edition の JMX コネクタでセキュリティーを有効にした場合に使用してください。
クライアントマシン (JConsole がインストールされている) に Application Server をインストールします。
この作業が必要になるのは、信頼するドメイン管理サーバーのサーバー証明書の場所を JConsole に対して通知するためです。この証明書を取得するには、remote asadmin コマンドを 1 回以上呼び出しますが、そのためには Application Server のローカルインストールが必要です。
appserver.sun.com で Application Server Enterprise Edition を起動します。
これは Enterprise Edition ドメインであるため、システム JMX コネクタサーバーはセキュリティー保護されています。
ローカル Application Server インストールから install-dir/bin/asadmin list --user admin --secure=true --host appserver.sun.com --port 4849 を実行します。4849 はサーバーの管理ポートです。
この例では asadmin list コマンドを選択していますが、任意のリモート asadmin コマンドを実行できます。ここで、appserver.sun.com の DAS から送信される証明書を受け入れることを要求されます。
y を押して、appserver.sun.com のドメイン管理サーバーから送信される証明書を受け入れます。
サーバーの証明書は、クライアントマシンのホームディレクトリにある .asadmintruststore ファイルに格納されます。
サーバーマシンとクライアントマシンが同じである場合、この手順は必要ありません。つまり、JConsole も appserver.sun.com で稼働している場合です。
次の JConsole コマンドを使用して、DAS のトラストストアの場所を JConsole に通知します。
JDK-dir/bin/jconsole.exe -J-Djavax.net.ssl.trustStore="C:/Documents and Settings/user/.asadmintruststore"
これで、この証明書は JConsole によって自動的に信頼されます。
JDK_HOME/bin/jconsole を実行して JConsole を起動します。
JConsole の「エージェントに接続」タブで、ユーザー名、パスワード、ホスト名、およびポート (デフォルトは 8686) を入力します。
ユーザー名は管理ユーザーの名前、パスワードはドメインの管理パスワードを参照します。
「接続」をクリックします。
JConsole ウィンドウの各種タブに、MBean、VM 情報などが表示されます。