この章では、Enterprise Manager Cloud Control環境でJVM診断(JVMD)エージェントを手動でインストールする方法について説明します。
この章の具体的な内容は次のとおりです。
JVM診断は、Oracle Enterprise Manager Cloud Controlに統合されています。これにより、管理者は本番環境でのJavaアプリケーションのパフォーマンスの問題を診断できます。問題を再現する必要性がなくなることにより、こうした問題解決に必要な時間が短縮されるため、アプリケーションの可用性とパフォーマンスが向上されます。JVMDを使用すると、管理者は、パフォーマンスの問題をテスト環境または開発環境で再現することなく、本番環境で問題の根本原因を特定できます。
次の図に、JVMDのアーキテクチャを示します。
JVMDエンジンは、JVMD監視システムのコア分析エンジンです。リリース13cでは即時使用可能な状態に構成されています。JVMDエンジンは、OMSからの要求に応じてJVMDエージェントからランタイム・データを収集し、そのデータをリポジトリに保存します。複数のJVMDエンジンを構成できます。
注意: Cloud Controlアプリケーションを再起動せずにJVMDエンジン(OMSホストにデプロイされた)を再起動するには、WebLogic管理コンソールを使用します。 |
JVMDエージェントは、ターゲットJVMのデータ・コレクタです。JVMDエージェントは管理アプリケーション・サーバーにデプロイされ、JVMスレッド、スタック、ヒープおよびCPU使用率などに関するJVM監視データを最小限のオーバーヘッドでリアルタイムに収集します。
JVMDエンジンは、WebLogic ServerのEnterprise JavaBeans (EJB)テクノロジとして実行されます。JVMDエージェントは、ターゲットJVM (本番環境のWebLogic Serverを実行するJVM)にデプロイされます。リアルタイムのデータを収集し、JVM診断エンジンに転送します。このデータは管理リポジトリに保存され、収集された情報はEnterprise Manager Cloud Controlコンソールに監視情報として表示されます。JVMDエンジンとJVMDエージェント間の通信は、セキュア(SSL)または非セキュアのどちらかになります。
JVMDエージェントをインストールする前に、『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』の概要説明を確認してください。
JVMDエージェントをインストールする前に、『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』で説明されている前提条件を満たしていることを確認してください。
この項では、JVMDエージェントを手動でデプロイする方法について説明します。
注意: いったんエージェントを削除した後で再びデプロイする場合は、デプロイする前にJVMを再起動する必要があります。 |
この項の内容は次のとおりです。
JVMDエージェントを手動でデプロイするには、次の手順を実行します。
jamagent.warをダウンロードします。
Cloud Controlを使用してjamagent.war
をダウンロードするには、次の手順に従います。
Cloud Controlで、「設定」メニューから、「ミドルウェア管理」、「設定」の順に選択します。
「設定」ページで「JVMDエージェントのダウンロード」をクリックします。「JVM診断コンポーネントのダウンロード」ダイアログ・ボックスが表示されます。
「JVMDコンポーネント」メニューから、jamagent.war
をダウンロードするために「JVMDエージェント」を選択し、「OK」をクリックします。「JVM診断エージェントWeb xmlパラメータ」ダイアログ・ボックスが表示されます。
「使用可能なエンジン」メニューで、リストからオプションを選択します。
セキュアではない接続を使用して、JVMDエージェントがJVMDエンジンに接続するようにするには、HTTP URLを選択します。
セキュアな接続を使用して、JVMDエージェントがJVMDエンジンに接続するようにするには、HTTPS URLを選択します。
ロード・バランサまたはファイアウォールを介して、JVMDエージェントがJVMDエンジンに接続するようにするには、「カスタム」を選択します。JVMDエージェントを接続する必要のあるホスト名およびポートを指定します。
次に例を示します。
HTTP: http://sl1.us.example.com:3800
HTTPS: https://sl1.us.example.com:3801 (セキュアな通信)
JVMDエージェントの手動でのデプロイ
次の関連する手順を参照してください。
WebLogic ServerへのJVMDエージェントのデプロイ
JVMDエージェントをWebLogic管理対象サーバーに手動でデプロイするには、次の手順を実行します。
jvmd.zip
ファイルにあるデプロイメント・プロファイルsample_jvmdagent_deploy.properties
のコピーを作成します。javadiagnosticagent.ear
ファイルの場所、WebLogicドメイン名およびサーバー情報を更新します。プロファイルをjvmdagent_deploy.properties
として保存します。
パラメータの詳細は、jvmd.zip
ファイルのcustomprov
フォルダにあるREADME.txt
ファイルを参照してください。
jvmd.zip
ファイルのcustomprov
フォルダにあるperlのスクリプトを実行して、指定されたすべてのサーバーにJVMDエージェントをデプロイします。
JVMDエージェントをGlassFishサーバーに手動でデプロイするには、次の手順を実行します。
GlassFish管理コンソールにログインします。
「共通タスク」セクションで、「アプリケーション」をクリックします。
「デプロイ済みアプリケーション」セクションで、「デプロイ」をクリックします。
「場所」には、「サーバーにアップロードされるパッケージ・ファイル」を選択し、jamagent.war
のあるローカル・ホスト上の場所を指定します。
「選択したターゲット」に、jamagent.war
をデプロイするサーバーを追加します。
「OK」をクリックします。
JVMDエージェントをJBossに手動でデプロイするには、次の手順を実行します。
JBoss管理コンソールにログインします。
「アプリケーション」で「Webアプリケーション(WAR)」をクリックします。
「新しいリソースを追加」をクリックします。
ローカル・ホストにあるjamagent.war
への絶対パスを入力します。
「展開済をデプロイ」および「ファーム済をデプロイ」の両方に対して「いいえ」を選択します。
「続行」をクリックします。
JVMDエージェントをJBossに手動でデプロイするには、次の手順も可能です。
次の場所にjamagent.war
を転送します。
<JBOSS_HOME>/server/all/deploy
アプリケーション・サーバーを再起動します。
JVMDエージェントをTomcatに手動でデプロイするには、次の手順を実行します。
次の場所にjamagent.war
を転送します。
$CATALINA_BASE/webapps
アプリケーション・サーバーを再起動します。
Tomcatの最新版では、$CATALINA_BASE/conf/server.xml
においてautoDeploy
フラグがtrue
に設定されている場合、アプリケーション・サーバーを再起動する必要はありません。Tomcatは実行時にjamagent.war
を選択します。
JVMDエージェントをWebsphereに手動でデプロイするには、次の手順を実行します。
WebSphere管理コンソールにログインします。
「アプリケーション」を展開し、「新規アプリケーション」をクリックします。
新規エンタープライズ・アプリケーションをクリックします。
「新規アプリケーションへのパス」で「ローカル・ファイルシステム」を選択し、jamagent.war
があるローカル・ホスト上の場所を指定します。
jamagent.war
のコンテキスト・ルートを指定します。
構成を保存します。
アプリケーションを起動します。
JVMDエージェントをOC4Jに手動でデプロイするには、次の手順を実行します。
OC4J管理コンソールにログインします。
「アプリケーション」をクリックします。
「デプロイ」をクリックします。
「アーカイブはローカル・ホストに存在します」を選択します。「アーカイブの場所」で、jamagent.war
があるローカル・ホスト上の場所を指定します。「次へ」をクリックします。
「アプリケーション名」にjamagent
と入力します。「コンテキスト・ルート」には/jamagent
と入力します。
「デプロイ」をクリックします。
JVMDエージェントは、web.xml
から入力を読み取るか、コマンドラインから入力を指定することによって、スタンドアロンJVMにデプロイできます。
すべての入力がweb.xml
から読み取られるようにして、JVMDエージェントをスタンドアロンJVMにデプロイするには、コマンドラインから次のコマンドを実行します。
java -cp <absolute_path_to_jamagent.war> jamagent.jamrun <java_class_with_a_main_method>
すべての入力をコマンドラインで指定することによって、JVMDエージェントをスタンドアロンJVMにデプロイするには、コマンドラインから次のコマンドを実行します。
java -cp <absolute_path_to_jamagent.war> jamagent.jamrun <java_class_with_a_main_method> jamconshost=<jvmd_engine_host> jamconsport=<jvmd_engine_listen_port> jamjvmid=<unique_jvmd_identifier> jamtimeout=<timeout_period_in_seconds> jamloglevel=<jvmd_agent_log_level>
注意: jamagent.war がIBM Java Development Kit (JDK)を使用して実行する場合、ログに次の警告が表示されることがあります。
******can_tag_objects capability is not set.Copy library libjamcapability to another directory and restart Java with argument "-agentpath:<absolute_path_to_libjamcapability.so>" ****** この警告を解決するには、
|
deploy_jvmdagent.pl
スクリプトを使用して、JVMDエージェントを手動でデプロイできます。このスクリプトはサイレント・モードでのみ実行できます。つまり、プロパティ・ファイルを使用してすべての入力の詳細を指定する必要があります。
deploy_jvmdagent.pl
を使用してJVMDエージェントを手動でデプロイするには、次の手順を実行します。
最新バージョンのjamagent.war
がダウンロードされていることを確認します。
jamagent.war
のダウンロード方法の詳細は、第15.4.1項の手順1を参照してください。
OMSホスト上の次の場所に移動します。
$<MIDDLEWARE_HOME>/plugins/oracle.sysman.emas.oms.plugin_13.1.1.0.0/archives/jvmd/deployment_Scripts/agent/jvmd/
README.txt
ファイルでdeploy_jvmdagent.pl
スクリプトの使用方法の情報を確認します。
すべての入力をプロパティ・ファイルに指定し、次のコマンドを使用します。
perl deploy_jvmdagent.pl [-appserver <server_type>] [-file <name_of_properties_file>]
例: perl deploy_jvmdagent.pl -appserver WLS -file wls_deploy.properties
deploy_jvmdagent.pl
を使用するJVMDエージェントは、WebLogic ServerおよびGlassFishのみでサポートされており、他のアプリケーション・サーバーではサポートされていません。-appserver
パラメータは、JVMDエージェントをデプロイするアプリケーション・サーバーを定義します。JVMDエージェントをWebLogic管理対象サーバーにデプロイしている場合は、-appserver
にWLS
を指定します。JVMDエージェントをGlassFishサーバーにデプロイしている場合は、-appserver
にGF
を指定します。-appserver
パラメータを指定しない場合は、デフォルトでWLS
が割り当てられます。
-file
パラメータは、デプロイメント入力を含むプロパティ・ファイルの名前を定義します。このパラメータを指定しない場合で、-appserver
にWLS
を指定済の場合は、deploy_jvmdagent.pl
によって、スクリプトが含まれるフォルダでweblogic_deploy.properties
というプロパティ・ファイルが検索されます。-file
パラメータを指定しない場合で、-appserver
にGF
を指定済の場合は、deploy_jvmdagent.pl
によって、スクリプトが含まれるフォルダでglassfish_deploy.properties
というプロパティ・ファイルが検索されます。入力の詳細をプロパティ・ファイルに指定する方法は、サンプルのプロパティ・ファイルsample_weblogic_deploy.properties
またはsample_glassfish_deploy.properties
をご覧ください。
セットアップに複数のJVMDエンジンがあり、それらに対してロード・バランサを構成している場合、JVMDエージェントを個々のJVMDエンジンのいずれかではなくロード・バランサに接続するようにしてデプロイできます。こうすることでJVMDエージェントの可用性を高め、フェイルオーバー・メカニズムが作成されます。つまり、特定のJVMDエンジンがダウンしても、JVMDエージェントはアクティブを保持できます。
「設定」ページを使用するか手動で高可用性を実現するJVMDエージェントをデプロイできます。
「設定」ページを使用した高可用性を実現するJVMDエージェントのデプロイ
「設定」ページを使用して高可用性を実現するJVMDエージェントをデプロイするには、次の手順を実行します。
『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』に記載の手順に従って、JVMDエージェントをデプロイします。
注意: デフォルトでは、JVMDエージェントはHTTPを使用してロード・バランサに接続します。HTTPSを使用してJVMDエージェントをロード・バランサに接続するには、第15.4.1項の手順2で説明するとおり、JVMDエージェントを手動でデプロイする必要があります。 |
JVMDエージェント構成ページの「使用可能なJVMDエンジン」で、「その他」を選択します。ロード・バランサのホスト名とポートを指定します。
「次へ」をクリックします。
確認ページですべての情報を確認し、「デプロイ」をクリックします。
高可用性を実現するJVMDエージェントの手動でのデプロイ
高可用性を実現するJVMDエージェントを手動でデプロイするには、次の手順を実行します。
第15.4.1項の手順1に記載の手順に従って、jamagent.war
をダウンロードします。
「JVM診断エージェントWeb xmlパラメータ」ダイアログ・ボックスが表示された場合、「使用可能なエンジン」メニューから「カスタム」を選択します。ロード・バランサのホスト名とポートを指定します。
「ダウンロード」をクリックします。
第15.4.1項の手順2で説明したとおりJVMDエージェントをデプロイします。
注意: デフォルトでは、JVMDエージェントはHTTPを使用してロード・バランサに接続します。HTTPSを使用してJVMDエージェントをロード・バランサに接続するには、第15.4.4項で説明するとおり、証明書を使用する必要があります。使用する証明書の共通名は、ロード・バランサのホスト名と一致するようにしてください。 |
JVMDエンジンとのセキュアな通信を保証するためには、JVMDエージェントは、JVMDエンジンのデプロイ先の管理対象サーバーの証明書が追加されるキーストアにアクセスできる必要があります。Enterprise Manager Cloud Controlドメイン(JVMDエンジン管理対象サーバーが作成されるEMGCのドメイン)のキーストアは、同じように使用できます。
JVMDエンジンおよびJVMDエージェントを同じホストで実行している場合、JVMDエージェントはEMGCドメインおよびデフォルトのキーストアにアクセスできます。この場合、セキュアな通信を確実にするために次の手順に従ってください。
キーストアの場所を特定します。通常は、次の場所から入手できます。
<WEBLOGIC_HOME>/server/lib/DemoTrust.jks
WEBLOGIC_HOME
はWebLogic Serverソフトウェアのインストール・ディレクトリを参照しています。
WebLogic Server管理コンソールにログインします。
「環境」メニューから、「サーバー」を選択します。
JVMDエージェントをデプロイする管理対象サーバーを選択して、「サーバーの起動」タブを選択します。
「引数」に次の引数を指定します。
-Djavax.net.debug=ssl -Djavax.net.ssl.trustStore=<location_of_DemoTrust.jks>
-Djavax.net.ssl.trustStorePassword=<DemoTrust.jks_KeyStore_password>
管理対象サーバーを再起動します。
JVMDエンジンおよびJVMDエージェントを異なるホストで実行している場合(ほとんどの環境の場合)、SSL証明書をJVMDエンジン管理対象サーバーからダウンロードして、JVMDエージェントをデプロイするターゲットの管理対象サーバーの新規または既存のキーストアに追加する必要があります。これにより、JVMDエージェントは証明書にアクセスして、JVMDエンジンのセキュアなポートと通信できます。これを実行するには、次の手順に従います。
次の手順に従って、JVMDエンジンの管理対象サーバーの証明書をダウンロードします。
ブラウザを使用して、次のURLにアクセスします。
https://<jamconshost>:<jamconsport(secure)>
「ツール」メニューから、「オプション」を選択します。
「拡張」タブを選択して、「暗号化」タブを選択します。
「証明書の表示」をクリックします。
「サーバー」タブを選択して、<jamconshost>:<jamconsport(secure)>
証明書を検索し選択します。「エクスポート」をクリックします。
証明書をJVMDCert.crt
として保存します。
既存のキーストアに証明書を追加するか(例: DemoTrust.jk
)、新しいキーストアを作成して(例: keystore.jks
)証明書に追加します。これを行うには、次のコマンドを実行します。
keytool -import -trustcacerts -alias root -file JVMDCert.crt -keystore <name_of_existing_or_new_KeyStore>
-keystore
パラメータに既存のキーストア名を指定する場合、キーストアのパスワードの入力を求められます。-keystore
パラメータに新しいキーストアの名前を指定する場合、新しいキーストアが作成されデフォルトのパスワードはchangeit
になります。
WebLogic Server管理コンソールにログインします。
「環境」メニューから、「サーバー」を選択します。
JVMDエージェントをデプロイする管理対象サーバーを選択して、「サーバーの起動」タブを選択します。
「引数」に次の引数を指定します。
-Djavax.net.debug=ssl -Djavax.net.ssl.trustStore=<location_of_KeyStore>
-Djavax.net.ssl.trustStorePassword=<KeyStore_password>
注意: DemoTrust.jksキーストアのデフォルトのパスワードは、DemoTrustKeyStorePassPhrase です。 |
管理対象サーバーを再起動します。
注意: SunまたはJRockit Java仮想マシン(JVM)で実行されているWebLogic管理対象サーバーがHTTPSを使用して外部リソースに接続しようとすると、次の例外が発生する場合があります。
HTTP APIではSun実装を使用するかわりに基礎となるWebLogic実装を使用するため、この例外が発生します。この例外を回避するには、ランタイム引数を使用して次のフラグを設定します。
|