web-dev-qa-db-ja.com

リモートホストをVisualVMに接続できない

Java=に不慣れで、リモートホストをJVisualVMに接続する際に問題が発生しています。

インターネットを検索し、そこで説明されているすべての手順を実行しましたが、まだ問題を解決できません。私が従った手順は次のとおりです。

  1. 最初にjstatd.all.policy$Java_HOME/binファイルを作成して、リモートサーバーでjstatdを起動しました。含まれるファイル:grant codebase "file:${Java.home}/../lib/tools.jar" { permission Java.security.AllPermission;};

  2. 私はJstatdjstatd -J-Djava.security.policy=jstatd.all.policyとして開始しました

  3. Javaアプリケーションをリモートホストで起動しました。

    Java -Dcom.Sun.management.jmxremote -Dcom.Sun.management.jmxremote.port=9000 -Dcom.Sun.management.jmxremote.ssl=false -Dcom.Sun.management.jmxremote.authenticate=false application_name
    
  4. 次に、ローカルマシンのJVisualVMのインスタンスとして起動し、リモートホストを追加すると、接続されましたが、Javaプロセスのいずれも表示できませんでした。 。

誰かがこれを手伝ってくれませんか?.

ありがとう。

21
rushi

サーバーの外部IPまたはホスト名を指す追加オプションを指定してjstatdを起動する必要があります。

statd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=my_server_ip/hostname

回答: https://Java.net/projects/visualvm/lists/users/archive/2010-03/message/8

12

リモートに接続するにはVMそのリモートを起動する必要がありますVM特定のオプション

Java
 -Dcom.Sun.management.jmxremote
 -Dcom.Sun.management.jmxremote.port=9000
 -Dcom.Sun.management.jmxremote.ssl=false
 -Dcom.Sun.management.jmxremote.authenticate=false
class

VMが起動したら、VisualVMに移動して次のようにします。

  1. ファイル-> JMX接続の追加
  2. 次のように入力します:yourHostName:9000そしてOKをクリックします
  3. 左側に追加されたJMX接続があります。それをダブルクリックすると、それだけです!

Java Monitoring and Management Platformの詳細については、こちらをご覧ください here

7
davorp

監視する必要があるサーバーで Nohupjstatd を起動し、VisualVMをjstatdポートに接続します。以下の手順:

ステップ1:作成start-jstatd.shおよび以下のコンテンツをコピーします。

Nohup jstatd -p 1099 -J-Djava.security.policy=<(echo 'grant codebase "file:${Java.home}/../lib/tools.jar" {permission Java.security.AllPermission;};') &

ステップ2:ファイルに実行権限を付与します。

$ chmod a+rwx start-jstatd.sh

ステップ3:jstatdを起動します。

$ sh start-jstatd.sh

ステップ4:リモートホストをVisualVMに追加:

enter image description here

ステップ5:JMX接続リモートホスト、下の画像に示すように、[OK]ボタンをクリックします: enter image description here

2
Arpit Aggarwal

これを行う手順は次のとおりです。

  1. リモートホストで ejstatd を次のように起動します(ejstatdフォルダー内):mvn exec:Java -Djava.rmi.server.hostname=<remote_Host_name> -Dexec.args="-pr 1099 -ph 1100 -pv 1101"( "jstatd"タイプの接続に使用)(リモートのホスト名の場合は-Djava.rmi.server.hostnameのみを指定します)ホストがローカルネットワークから表示されているものと一致しません)
  2. Javaアプリケーションを追加で追加しますJavaパラメータ:-Dcom.Sun.management.jmxremote -Dcom.Sun.management.jmxremote.ssl=false -Dcom.Sun.management.jmxremote.authenticate=false -Dcom.Sun.management.jmxremote.port=1102 -Dcom.Sun.management.jmxremote.rmi.port=1102 -Djava.rmi.server.hostname=<remote_Host_name>(「JMX」タイプの接続に使用))(前のポイントと同じ-Djava.rmi.server.hostname
  3. リモートホストでこれらの4つのポートを開き、ローカルマシンで使用できるようにします:1099110011011102
  4. JVisualVMを起動する
    1. [リモート]> [リモートホストの追加...]を右クリックし、[ホスト名]にリモートホスト名を入力します(ポート1099を使用しない場合は、[詳細設定]で変更できます)設定")
    2. 作成したリモートホストを右クリックし、[JMX接続を追加...]をクリックして、[接続]入力に「<remote_Host_name>:1102」と入力し、[SSL接続を要求しない]をオンにします
    3. Javaプロセスは2回表示されます。1つは「jstatd」接続タイプから、もう1つは「JMX」接続タイプからです。

免責事項:私はオープンソースの作者です ejstatd ツール。

0
Anthony O.