我需要使用VisualVM监视堆启动远程应用程序的堆分配和使用情况。我无法更改代码,但我已在本地看到它,因此源代码中的配置必须正确。我需要能够公开JMX端口。目前,我在应用程序的配置中有这个
RUN_ARGS="--spring.profiles.active=dev -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=<PORT>
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.rmi.port=<PORT>
-Djava.server.hostname=<IP>"
其中<PORT>
的两个实例都相同,并且仅为了读取目的而添加缩进,在文件本身中不存在。
在VisualVM中,我尝试创建一个Remote并向其添加JMX连接。我尝试了两种语法<hostname>:<port>
和service:jmx:<protocol>:<sap>
,但似乎都没有。
编辑:我在Spring Boot配置文件中使用的RUN_ARGS变量中执行此操作。我不知道它是否需要在另一个变量中,例如JAVA_OPTS
编辑2:检查netstat,我发现端口就像LISTEN那样......现在我无法从我的机器连接。我正在使用此https://theholyjava.wordpress.com/2012/09/21/visualvm-monitoring-remote-jvm-over-ssh-jmx-or-not/
编辑3:我发现我可以telnet到端口,但VisualVM仍然拒绝它...