我在亚马逊的云中的Linux服务器上运行Tomcat 6。我正尝试从我的办公室的Mac上用VisualVM连接到它。我允许打开桌面和服务器之间的所有TCP端口,但我无法让VisualVM做任何事情。调试VisualVM远程连接
在Linux中,我已经开始用Tomcat的:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9191
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
在我的Mac,我推出的VisualVM,选择文件 - >新建JMX连接...
我进入amazonhostname.com: 9191在箱子里。它说“添加amazonhostname.com:9191 ...”并在那里等待几分钟后才超时。
从我的Mac,我可以“telnet amazonhostname.com 9191”就好了,我尝试了一些其他随机端口,他们都工作。我相当确信这不是防火墙问题,除非我需要打开UDP或ICMP或类似的东西。 (真的吗??)
服务器上的catalina.log或我的Mac上与jmx相关的系统控制台中没有任何内容。服务器上的netstat显示9191和其他一些端口在所有接口上打开。
远程服务器上没有jstatd。这是JMX的先决条件吗? (我对Java完全陌生,我甚至不知道这些东西是什么意思,但是我在某个地方的博客文章中看到了它,我现在正在抓秸秆。)
你确定iptables没有阻塞你的linux系统上的连接吗?编辑:我看到你可以telnet - 好吧,从头开始。 –
你需要看的另一件事是RMI主机名 - 看看:http://stackoverflow.com/questions/9985293/how-do-i-use-jconsole-to-connect-to-ec2 –
Jstatd不需要。正如Greg建议尝试将-Djava.rmi.server.hostname = the.public.ip添加到Tomcat JVM参数。 –