jsd*_*jsd 9 java tomcat jmx visualvm
我在亚马逊云的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
Run Code Online (Sandbox Code Playgroud)
在我的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完全不熟悉,我甚至不确定那些东西是什么意思,但我在某个博客文章中看到过.我现在正在抓住稻草.)
Gre*_*pff 20
在VM启动之前设置hostname属性:
java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9191 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=the.public.ip \
-jar program.jar
Run Code Online (Sandbox Code Playgroud)
将相关规则添加到您的安全组.