Vik*_*bin 5 port jmx visualvm amazon-ec2
我在Amazon EC2实例上运行的一个服务上设置了JMX,但它无法正常工作.我正在使用VisualVM进行连接,在短暂的挂起期后,它会因超时而失败.看起来因为缺少响应数据或滞后而失败.我检查了安全组中是否启用了JMX端口,并尝试使用不启用JMX的不同端口,并且在安全组设置中未启用端口,并且两者都立即失败,因此它看起来不同.我的EC2实例和桌面都安装了Ubuntu 12.04和JDK 7.
事实证明,由于连接是SSL安全的,所以端口没有意义.我有一个私钥,不知道如何使用它与JConsole或VisualVM.
JB-*_*JB- 11
JMX需要在开放端口上运行的RMI注册表.默认情况下,RMI注册表端口在启动时随机选择,并且与防火墙不兼容.既然你可以使用JDK7u4
-Dcom.sun.management.jmxremote.rmi.port=<port>
Run Code Online (Sandbox Code Playgroud)
设置要使用的RMI端口.然后,您可以在安全组中启用该端口.
请注意.rmi.上述设置的一部分,因为这通常会与com.sun.management.jmxremote.port设置混淆.你应该不是!
这对我有用。在服务器上设置 JMX 选项:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=<some port>
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=localhost
Run Code Online (Sandbox Code Playgroud)
打开 SSH 隧道:
ssh -i /path/to/key -D <some port> username@public_dns_address
Run Code Online (Sandbox Code Playgroud)
启动 VisualVM:
jvisualvm -J-Dnetbeans.system_socks_proxy=localhost:<some port> -J-Djava.net.useSystemProxies=true
Run Code Online (Sandbox Code Playgroud)
添加到服务器的远程连接。使用您为 JMX 指定的端口添加 JMX 连接。
需要明确的是,在上述所有三种情况下,应该是同一端口。