我在亚马逊云中的 Linux 服务器上运行 Tomcat 6。我正在尝试通过我办公室的 Mac 上的 VisualVM 连接到它。我已经允许打开我的桌面和服务器之间的所有 TCP 端口,但我无法让 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 并选择 File -> New JMX Connection...
我在框中输入 amazonhostname.com:9191。它说“正在添加 amazonhostname.com:9191 ...”并在超时前坐在那里几分钟。
在我的 Mac 上,我可以“telnet amazonhostname.com 9191”就好了,我尝试了其他一些随机端口,它们都可以正常工作。我很确信这不是防火墙问题,除非我需要打开 UDP 或 ICMP 或类似的东西。(真的??)
服务器上的 catalina.log 或我的 Mac 上的系统控制台中没有任何与 jmx 相关的内容。服务器上的 netstat 显示 9191 和所有接口上打开的其他一些端口。
远程服务器上没有 jstatd。这是 JMX 的先决条件吗?(我对 Java 完全陌生,我什至不确定这些东西是什么意思,但我在某处的博客文章中看到了它。我现在正抓着稻草。)