amazon-ec2 - 为什么与Amazon EC2的JMX连接失败?

标签 amazon-ec2 port jmx visualvm

我在Amazon EC2实例上运行的一项服务上设置了JMX,但它无法正常运行。我正在使用VisualVM进行连接,经过短暂的等待后,它因超时而失败。似乎由于缺少响应数据或滞后而导致失败。我检查了是否在安全组中启用了JMX端口,并尝试使用未启用JMX的其他端口以及在安全组设置中未启用的端口,并且两者均立即失败,因此外观有所不同。我的EC2实例和 table 面都安装了Ubuntu 12.04和JDK 7。

事实证明,由于连接受SSL保护,所以端口没有意义。我有一个私钥,不知道如何在JConsole或VisualVM中使用它。

最佳答案

这对我有用。在服务器上设置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

打开SSH隧道:
ssh -i /path/to/key -D <some port> username@public_dns_address

启动VisualVM:
jvisualvm -J-Dnetbeans.system_socks_proxy=localhost:<some port> -J-Djava.net.useSystemProxies=true

将远程连接添加到服务器。使用您为JMX指定的端口添加JMX连接。

需要明确的是,在上述所有三种情况下,都应使用相同的端口。

关于amazon-ec2 - 为什么与Amazon EC2的JMX连接失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19130877/

相关文章:

amazon-ec2 - 在 AWS EC2 中,没有入站规则的安全组是什么意思?

docker - 根据用户名转发SSH连接

javascript - 'Error: listen EACCES 0.0.0.0:7090'是什么?

docker-compose - docker : run multiple container on same tcp ports with different hostname

java - Grails:将 jconsole 连接到指定端口上的本地进程

java - 是否可以通过 JMX 加载类信息?

amazon-web-services - 如何指定具有常规公共(public) IP 地址而不是 EIP 的网络接口(interface)?

amazon-web-services - AWS ELB -> 带有自签名证书的 HTTPS 后端服务器

jmx - 显示从 Talend ESB 到 Prometheus 的 JvmHeapSize

amazon-web-services - 使用 cloudformation 模板创建时,用户数据脚本未在 ubuntu 服务器中运行