Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

第2章 パフォーマンスの監視

JBoss EAP のパフォーマンスは、マシン上で実行される JVM を分析できるツールを使用して監視できます。Red Hat は、JBoss EAP に事前設定されたラッパースクリプトが含まれる JConsole か、Java VisualVM の使用を推奨します。これらのツールは、メモリー使用量、スレッド使用状態、ロードされたクラス、その他の JVM メトリックスなどの JVM の基本的な監視を行います。

これらのツールの 1 つを JBoss EAP が稼働している同じマシン上で実行する場合、設定は必要ありません。しかし、これらのツールの 1 つを実行して、リモートマシン上で稼働している JBoss EAP を監視する場合、JBoss EAP がリモート JMX 接続を許可する必要があるため、一部の設定が必要になります

2.1. リモート監視接続のための JBoss EAP の設定

スタンドアロンサーバーの場合

  1. 管理ユーザーが作成済みであることを確認してください。JBoss EAP サーバーの監視に個別の管理ユーザーを作成することがあります。詳細は、JBoss EAP『設定ガイド』を参照してください。
  2. JBoss EAP を開始するとき、管理インターフェースをサーバーのリモート監視に使用する IP アドレスにバインドしてください。

    $ EAP_HOME/bin/standalone.sh -bmanagement=IP_ADDRESS
    警告

    これにより、管理コンソールと管理 CLI を含むすべての JBoss EAP 管理インターフェースが指定のネットワークに公開されます。必ず管理インターフェースのみをプライベートネットワークにバインドするようにしてください。

  3. JVM 監視ツールの管理ユーザー名とパスワードに以下の URI を使用して JBoss EAP サーバーに接続します。以下の URI はデフォルトの管理ポート (9990) を使用します。

    service:jmx:remote+http://IP_ADDRESS:9990

管理対象ドメインホストの場合

管理インターフェースをバインドする上記の手順を管理対象ドメインホストで使用すると、リモート監視するホストコントローラー JVM のみが公開され、そのホスト上で稼働している個別の JBoss EAP サーバーは公開されません。

JBoss EAP を設定して、管理対象ドメインホストで各サーバーをリモート監視するには、以下の手順に従います。

  1. リモート監視する JBoss EAP サーバーに接続するために使用する新規ユーザーを ApplicationRealm で作成します。詳細は JBoss EAP『 設定ガイド』を参照してください。
  2. 管理 CLI で以下のコマンドを実行し、リモーティングポートをソケットバインディングツールに追加し、リモーティングを ApplicationRealm に追加します。必要な場合は、以下のコマンドのプロファイル名とソケットバインディンググループを使用中のものに置き換えます。

    /profile=full/subsystem=jmx/remoting-connector=jmx:add(use-management-endpoint=false)
    /socket-binding-group=full-sockets/socket-binding=remoting:add(port=4447)
    /profile=full/subsystem=remoting/connector=remoting-connector:add(socket-binding=remoting,security-realm=ApplicationRealm)
  3. JBoss EAP 管理対象ドメインホストを起動するとき、以下のインターフェースの 1 つまたは両方を、監視に使用する IP アドレスにバインドします。

    • 管理対象ドメインホスト上で実行されている個別の JBoss EAP サーバーの JVM に接続する場合は、パブリックインターフェースをバインドします。

      $ EAP_HOME/bin/domain.sh -b=IP_ADDRESS
    • JBoss EAP ホストコントローラーの JVM に接続する場合は、管理インターフェースもバインドします。

      $ EAP_HOME/bin/domain.sh -bmanagement=IP_ADDRESS
      警告

      これにより、管理コンソールと管理 CLI を含むすべての JBoss EAP 管理インターフェースが指定のネットワークに公開されます。必ず管理インターフェースのみをプライベートネットワークにバインドするようにしてください。

  4. JVM 監視ツールで以下の詳細を使用します。

    • 管理対象ドメインホスト上で実行されている個別の JBoss EAP サーバーの JVM に接続するには、前の手順で作成した ApplicationRealm のユーザー名およびパスワードで以下の URI を使用します。

      service:jmx:remote://IP_ADDRESS:4447

      単一ホスト上の別の JBoss EAP サーバーに接続するには、対象となるサーバーのポートオフセット値を上記のポート番号に追加します。

    • JBoss EAP ホストコントローラーの JVM に接続するには、管理ユーザー名とパスワードで以下の URI を使用します。

      service:jmx:remote://IP_ADDRESS:9999

2.2. JConsole

JBoss EAP には事前設定された JConsole ラッパースクリプトがバンドルされています。このラッパースクリプトを使用すると、必要なライブラリーすべてがクラスパスに追加され、さらに JConsole 内から JBoss EAP 管理 CLI へアクセスできるようになります。

2.2.1. JConsole を使用したローカル JBoss EAP JVM への接続

JConsole と同じマシン上で実行している JBoss EAP JVM に接続するには、以下を行います。

  1. EAP_HOME/binjconsole スクリプトを実行します。
  2. Local Process で、監視する JBoss EAP JVM プロセスを選択します。

    • スタンドアロン JBoss EAP サーバーの場合は、JBoss EAP の JVM プロセスは 1 つになります。

      図2.1 JConsole のローカルスタンドアロン JBoss EAP サーバーの JVM

      jconsole local standalone
    • JBoss EAP の管理対象ドメインホストには、ホストコントローラー、JVM プロセス、プロセスコントローラーの JVM プロセス、およびホスト上の各 JBoss EAP サーバーの JVM プロセスなど、接続できる複数の JVM プロセスがあります。JVM 引数を確認すると、接続した JVM を判断できます。

      図2.2 JConsole の管理対象ドメイン JBoss EAP の JVM

      jconsole local domain
  3. Connect をクリックします。

2.2.2. JConsole を使用したリモート JBoss EAP JVM への接続

前提条件

  1. EAP_HOME/binjconsole スクリプトを実行します。
  2. Remote Process で、監視するリモート JBoss EAP JVM プロセスの URI を挿入します。

    使用する URI については「リモート監視接続のための JBoss EAP の設定」の手順を参照してください。

    図2.3 JConsole のリモート JBoss EAP JVM

    jconsole remote
  3. 必ず、監視接続のユーザー名およびパスワードを提供してください。
  4. Connect をクリックします。

2.3. Java VisualVM

Java VisualVM は Oracle JDK に含まれ、JAVA_HOME/bin/jvisualvm にあります。Oracle JDK を使用していない場合、VisualVM は VisualVM の Web サイト からダウンロードすることもできます。VisualVM は IBM JDK とは動作しないため注意してください。

以下のセクションでは、VisualVM を使用してローカルまたはリモート JBoss EAP JVM に接続する手順を取り上げます。VisualVM の使用に関するその他の情報は、VisualVM のドキュメントを参照してください。

2.3.1. VisualVM を使用したローカル JBoss EAP JVM への接続

VisualVM と同じマシン上で実行している JBoss EAP JVM に接続するには、以下を行います。

  1. VisualVM を開き、VisualVM ウインドウの左側にある Applications ペインを見つけます。
  2. Local で、監視する JBoss EAP JVM プロセスをダブルクリックします。

    • スタンドアロン JBoss EAP サーバーの場合は、JBoss EAP の JVM プロセスは 1 つになります。

      図2.4 VisualVM のローカルスタンドアロン JBoss EAP サーバーの JVM

      visualvm local standalone
    • JBoss EAP の管理対象ドメインホストには、ホストコントローラー、JVM プロセス、プロセスコントローラーの JVM プロセス、およびホスト上の各 JBoss EAP サーバーの JVM プロセスなど、接続できる複数の JVM プロセスがあります。JVM 引数を確認すると、接続した JVM を判断できます。

      図2.5 VisualVM のローカル管理対象ドメイン JBoss EAP の JVM

      visualvm local domain

2.3.2. VisualVM を使用したリモート JBoss EAP JVM への接続

前提条件

  1. JBoss EAP JVM をリモートで監視するには、必要な JBoss EAP ライブラリーをクラスパスに追加する必要があります。ローカルマシンで必要なライブラリーの引数を用いて VisualVM を起動します。例を以下に示します。

    $ visualvm -cp:a EAP_HOME/bin/client/jboss-cli-client.jar  -J-Dmodule.path=EAP_HOME/modules
  2. File メニューで Add JMX Connection を選択します。
  3. リモート JBoss EAP JVM の詳細を入力します。

    • 監視するリモート JBoss EAP JVM プロセスの URI をConnection フィールドに挿入します。使用する URI については「リモート監視接続のための JBoss EAP の設定」の手順を参照してください。
    • Use security credentials チェックボックスを選択し、監視接続のユーザー名およびパスワードを入力します。
    • SSL 接続を使用していない場合は、Do not require SSL connection チェックボックスを選択します。

    図2.6 VisualVM のリモート JBoss EAP JVM

    visualvm remote
  4. OK をクリックします。
  5. VisualVM ウインドウの左側にある Applications ペインで、リモートホストの下にある JMX 項目をダブルクリックし、監視接続を開きます。