如何在 Visual VM 中远程连接 Spring 启动应用程序?
How to connect Spring Boot application remotely in Visual VM?
我是 Visual VM 的新手,如何在 Visual VM 中远程连接到 Spring 启动应用程序?
多个实例 运行 作为 java -jar app.jar
具有随机端口。如何从 Visual VM 连接,我有远程系统的 root 访问权限。我需要启用任何安全配置吗?
在本地系统中,应用程序会自动显示,但当我输入远程系统 IP 地址时,它会提示 Add JMX connection
和 Add jstatd connection
。
我们需要指定远程 IP ADDRESS
并公开监听 PORT
而 运行 jar。
语法:
java
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=<PORT>
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=<IP_ADDRESS>
-Dcom.sun.management.jmxremote.rmi.port=<PORT>
-jar app-1.0.0-SNAPSHOT.jar
示例:侦听端口为6001
并且可用于远程ip地址192.168.0.23
java -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=6001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.0.23 -Dcom.sun.management.jmxremote.rmi.port=6001 -jar app-1.0.0-SNAPSHOT.jar
有关设置 Visual VM 的更多详细信息https://github.com/M-Thirumal/installation_guide/blob/master/visualVm/visualvm_remote_set_up.md
我在 Spring Boot 时也遇到了这个难题。但我没有使用罐子。我将 jmx 参数传递给 maven 以分析应用程序,而无需先构建 jar。
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost"
有关详细信息,我记录了我的步骤 here。
我是 Visual VM 的新手,如何在 Visual VM 中远程连接到 Spring 启动应用程序?
多个实例 运行 作为 java -jar app.jar
具有随机端口。如何从 Visual VM 连接,我有远程系统的 root 访问权限。我需要启用任何安全配置吗?
在本地系统中,应用程序会自动显示,但当我输入远程系统 IP 地址时,它会提示 Add JMX connection
和 Add jstatd connection
。
我们需要指定远程 IP ADDRESS
并公开监听 PORT
而 运行 jar。
语法:
java
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=<PORT>
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=<IP_ADDRESS>
-Dcom.sun.management.jmxremote.rmi.port=<PORT>
-jar app-1.0.0-SNAPSHOT.jar
示例:侦听端口为6001
并且可用于远程ip地址192.168.0.23
java -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=6001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.0.23 -Dcom.sun.management.jmxremote.rmi.port=6001 -jar app-1.0.0-SNAPSHOT.jar
有关设置 Visual VM 的更多详细信息https://github.com/M-Thirumal/installation_guide/blob/master/visualVm/visualvm_remote_set_up.md
我在 Spring Boot 时也遇到了这个难题。但我没有使用罐子。我将 jmx 参数传递给 maven 以分析应用程序,而无需先构建 jar。
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost"
有关详细信息,我记录了我的步骤 here。