Java=に不慣れで、リモートホストをJVisualVM
に接続する際に問題が発生しています。
インターネットを検索し、そこで説明されているすべての手順を実行しましたが、まだ問題を解決できません。私が従った手順は次のとおりです。
最初にjstatd.all.policy
に$Java_HOME/bin
ファイルを作成して、リモートサーバーでjstatdを起動しました。含まれるファイル:grant codebase "file:${Java.home}/../lib/tools.jar" { permission Java.security.AllPermission;};
私はJstatd
をjstatd -J-Djava.security.policy=jstatd.all.policy
として開始しました
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
次に、ローカルマシンのJVisualVM
のインスタンスとして起動し、リモートホストを追加すると、接続されましたが、Javaプロセスのいずれも表示できませんでした。 。
誰かがこれを手伝ってくれませんか?.
ありがとう。
サーバーの外部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
リモートに接続するには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に移動して次のようにします。
Java Monitoring and Management Platformの詳細については、こちらをご覧ください here 。
監視する必要があるサーバーで Nohup の jstatd を起動し、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
に追加:
これを行う手順は次のとおりです。
mvn exec:Java -Djava.rmi.server.hostname=<remote_Host_name> -Dexec.args="-pr 1099 -ph 1100 -pv 1101"
( "jstatd"タイプの接続に使用)(リモートのホスト名の場合は-Djava.rmi.server.hostname
のみを指定します)ホストがローカルネットワークから表示されているものと一致しません)-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
)1099
、1100
、1101
、1102
1099
を使用しない場合は、[詳細設定]で変更できます)設定")<remote_Host_name>:1102
」と入力し、[SSL接続を要求しない]をオンにします免責事項:私はオープンソースの作者です ejstatd ツール。