この章では、Enterprise Manager Cloud Control環境でJVM診断(JVMD)エージェントを手動でインストールする方法について説明します。
この章の具体的な内容は次のとおりです。
JVM診断は、Oracle Enterprise Manager Cloud Controlに統合されています。これにより、管理者は本番環境でのJavaアプリケーションのパフォーマンスの問題を診断できます。問題を再現する必要性がなくなることにより、こうした問題解決に必要な時間が短縮されるため、アプリケーションの可用性とパフォーマンスが向上されます。JVMDを使用すると、管理者は、パフォーマンスの問題をテスト環境または開発環境で再現することなく、本番環境で問題の根本原因を特定できます。
次の図に、JVMDのアーキテクチャを示します。
図15-1 JVMDアーキテクチャ
JVMDエンジンは、JVMDモニタリング・システムのコア分析エンジンです。Enterprise Manager 13c以降、JVMDエンジンは追加設定なしでEMGCドメイン上にエンタープライズ・アプリケーション・デプロイメント(earファイル)としてデプロイされます。JVMDエンジンは、OMSサーバーのEnterprise JavaBeans (EJB)テクノロジとして実行されます。JVMDエンジンは、OMSからの要求に応じてJVMDエージェントからランタイム・データを収集し、そのデータをリポジトリに保存します。複数のJVMDエンジンを構成できます。
JVMDエージェントは、ターゲットJVMのデータ・コレクタです。JVMDエージェントは管理アプリケーション・サーバーにデプロイされ、JVMスレッド、スタック、ヒープおよびCPU使用率などに関するJVMモニタリング・データを最小限のオーバーヘッドでリアルタイムに収集します。
JVMDエージェントは、ターゲットJVM (本番環境のWebLogic Serverを実行するJVM)にデプロイされます。リアルタイムのデータを収集し、JVM診断エンジンに転送します。このデータは管理リポジトリに保存され、収集された情報はEnterprise Manager Cloud Controlコンソールにモニタリング情報として表示されます。JVMDエンジンとJVMDエージェント間の通信は、セキュア(SSL)または非セキュアのどちらかになります。
クライアント(エージェントとも呼ばれる)とサーバー(マネージャ・サーバーまたはエンジンとも呼ばれる)との間のJVMD通信はHTTPSベースです。JVMDマネージャ・サーバーのホストおよびポートは、「エンジンおよびエージェント」ページで、「Enterprise Managerの設定」メニューの「ミドルウェア管理」オプションの下に表示されます。対応するJVMDマネージャ・ホストおよびポートについてプールを設定するには、SLBユーザー・ガイドを参照してください。JVMDエージェントのデプロイメントおよびダウンロードでは、SLBホストおよびポートを指定してHAをアーカイブする必要があります。
ほとんどのSLBでは、ソース・アドレス(つまり、クライアント・ホスト)ベースのアフィニティが確認されます。JVMD通信では、この目的のために使用できる、ヘッダー・フィールドFROM-AGENT-ID
が挿入されます。構成手順は、SLBユーザー・ガイドを参照してください。
13.2GCでは、OMS管理対象サーバーで終了するようロード・バランサが構成されており、カスタム証明書を定義してある場合は、次のことを確認してください。
カスタム証明書ファイルが<EMAS plugin home>/archives/jvmd/certificates
ディレクトリにある
カスタム証明書ファイルに.crt
拡張子が付いている
カスタム証明書ファイルにWLSDemo_
接頭辞がない
カスタム証明書ファイルが各OMSの上記の場所で提供される
注意:
README.txt
ファイルは、<EMAS plugin home>/archives/jvmd/certificates
ディレクトリにあります。JVMDエージェントをインストールする前に、『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』の概要説明を確認してください。
JVMDエージェントをインストールする前に、『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』で説明されている前提条件を満たしていることを確認してください。
この項では、JVMDエージェントを手動でデプロイする方法について説明します。
注意:
いったんエージェントを削除した後で再びデプロイする場合は、デプロイする前にJVMを再起動する必要があります。
この項の内容は次のとおりです。
JVMDエージェントを手動でデプロイするには、次の手順を実行します。
注意:
JVMDエージェントの手動デプロイメントの方法として推奨されるのは、手順1「jamagent.warのダウンロード」の使用です。
手順2「JVMDエージェントの手動でのデプロイ」の項は、jamagent.warのダウンロードが失敗した場合のみに適用されます。
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 (セキュアな通信)
「ダウンロード」をクリックしてjamagent.war
をダウンロードします。
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エージェントをデプロイします。
perl deploy_jvmdagent.pl
注意:
デプロイメント・プロファイルjvmdagent_deploy.properties
とperlスクリプトが同じフォルダにあることを確認します。
GlassFishへのJVMDエージェントのデプロイ
JVMDエージェントをGlassFishサーバーに手動でデプロイするには、次の手順を実行します。
GlassFish管理コンソールにログインします。
「共通タスク」セクションで、「アプリケーション」をクリックします。
「デプロイ済みアプリケーション」セクションで、「デプロイ」をクリックします。
「場所」には、「サーバーにアップロードされるパッケージ・ファイル」を選択し、jamagent.war
のあるローカル・ホスト上の場所を指定します。
「選択したターゲット」に、jamagent.war
をデプロイするサーバーを追加します。
「OK」をクリックします。
JBossへのJVMDエージェントのデプロイ
JVMDエージェントをJBossに手動でデプロイするには、次の手順を実行します。
JBoss管理コンソールにログインします。
「アプリケーション」で「Webアプリケーション(WAR)」をクリックします。
「新しいリソースを追加」をクリックします。
ローカル・ホストにあるjamagent.war
への絶対パスを入力します。
「展開済をデプロイ」および「ファーム済をデプロイ」の両方に対して「いいえ」を選択します。
「続行」をクリックします。
JVMDエージェントをJBossに手動でデプロイするには、次の手順も可能です。
次の場所にjamagent.war
を転送します。
<JBOSS_HOME>/server/all/deploy
アプリケーション・サーバーを再起動します。
TomcatへのJVMDエージェントのデプロイ
JVMDエージェントをTomcatに手動でデプロイするには、次の手順を実行します。
次の場所にjamagent.war
を転送します。
$CATALINA_BASE/webapps
アプリケーション・サーバーを再起動します。
Tomcatの最新版では、$CATALINA_BASE/conf/server.xml
においてautoDeploy
フラグがtrue
に設定されている場合、アプリケーション・サーバーを再起動する必要はありません。Tomcatは実行時にjamagent.war
を選択します。
WebsphereへのJVMDエージェントのデプロイ
JVMDエージェントをWebsphereに手動でデプロイするには、次の手順を実行します。
WebSphere管理コンソールにログインします。
「アプリケーション」を展開し、「新規アプリケーション」をクリックします。
新規エンタープライズ・アプリケーションをクリックします。
「新規アプリケーションへのパス」で「ローカル・ファイルシステム」を選択し、jamagent.war
があるローカル・ホスト上の場所を指定します。
jamagent.war
のコンテキスト・ルートを指定します。
構成を保存します。
アプリケーションを起動します。
OC4JへのJVMDエージェントのデプロイ
JVMDエージェントをOC4Jに手動でデプロイするには、次の手順を実行します。
OC4J管理コンソールにログインします。
「アプリケーション」をクリックします。
「デプロイ」をクリックします。
「アーカイブはローカル・ホストに存在します」を選択します。「アーカイブの場所」で、jamagent.war
があるローカル・ホスト上の場所を指定します。「次へ」をクリックします。
「アプリケーション名」にjamagent
と入力します。「コンテキスト・ルート」には/jamagent
と入力します。
「デプロイ」をクリックします。
スタンドアロンJVMへのJVMDエージェントのデプロイ
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>" ******
この警告を解決するには、libjamcapability.so
ライブラリを含めて、IBM JVMを再起動します。
/scratch/IBM/WebSphere/AppServer/java/bin/java -agentpath:/scratch/libjamcapability.so -cp /scratch/jamagent.war jamagent.jamrun MyFirstProgram
deploy_jvmdagent.pl
スクリプトを使用して、JVMDエージェントを手動でデプロイできます。このスクリプトはサイレント・モードでのみ実行できます。つまり、プロパティ・ファイルを使用してすべての入力の詳細を指定する必要があります。
deploy_jvmdagent.pl
を使用してJVMDエージェントを手動でデプロイするには、次の手順を実行します。
セットアップに複数のJVMDエンジンがあり、それらに対してロード・バランサを構成している場合、JVMDエージェントを個々のJVMDエンジンのいずれかではなくロード・バランサに接続するようにしてデプロイできます。こうすることでJVMDエージェントの可用性を高め、フェイルオーバー・メカニズムが作成されます。つまり、特定のJVMDエンジンがダウンしても、JVMDエージェントはアクティブを保持できます。SLBに対して複数のOMSの高可用性を構成する方法の詳細は、Enterprise Manager 13c Cloud Control: F5 BIG-IPローカル・トラフィック・マネージャを使用したOMSの高可用性の構成
テクニカル・ホワイトペーパーを参照してください。
「エンジンおよびエージェント」ページを使用するか手動で高可用性を実現するJVMDエージェントをデプロイできます。
「エンジンおよびエージェント」ページを使用した高可用性を実現するJVMDエージェントのデプロイ
「エンジンおよびエージェント」ページを使用して高可用性を実現するJVMDエージェントをデプロイするには、次の手順を実行します。
『Oracle Enterprise Manager Cloud Control基本インストレーション・ガイド』に記載の手順に従って、JVMDエージェントをデプロイします。
注意:
デフォルトでは、JVMDエージェントはHTTPSを使用してロード・バランサに接続します。
「JVMDエージェント構成」ページの「使用可能なJVMDエンジン」で、「その他」を選択します。ロード・バランサのホスト名とポートを指定します。
「次へ」をクリックします。
確認ページですべての情報を確認し、「デプロイ」をクリックします。
高可用性を実現するJVMDエージェントの手動でのデプロイ
高可用性を実現するJVMDエージェントを手動でデプロイするには、次の手順を実行します。