我试图设置JVisualVm来监视Tomcat 6实例(在Ubuntu Server 10.04 LTS上运行)。 我见过其他问题,但没有一个直接回答我的问题。 我尝试用JVisualvm连接到Tomcat,并返回一个“无法连接”的错误 – 但有TCP连接到服务器; 服务器在短时间的stream量后断开连接。
我已经添加到/ etc / default / tomcat6并重新启动tomcat6
# This enables JMX in order to permit VisualVM to profile the JVM. JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
我使用默认设置启动了rmiregistry:
rmiregistry &
我还没有开始jstatd
; 在服务器上安装它需要完整的需要X库的JDK。 我不打算安装X只是为了得到一个单一的二进制文件。
我想知道是不是运行jstatd
会有什么关系; 我的印象是我既不需要RMI也不需要jstatd,只要我可以通过JMX端口直接使用JMX即可。
服务器和JVisualvm客户端之间没有防火墙,并且iptables主机防火墙已打开。 使用jconsole
导致相同的错误。
对本地Ubuntu 10.04计算机运行JVisualVM(通过使用其IP地址和JMX端口)并添加一个JMX实例工作正常 – 而且我既不运行rmiregistry
也不运行jstatd
– 尽pipe显示器显示正在运行的RMI线程。
问题:为了能够使用JVisualVM通过JMX监视Tomcat(和其他Java程序),我必须做什么(在服务器或客户机上)?
提前致谢。
如果没有防火墙,请尝试为您的Tomcat设置java.rmi.server.hostname系统属性。 添加到你的Tomcat的JAVA_OPTS:
-Djava.rmi.server.hostname=<IP address of Ubuntu server>
您不需要启动rmiregistry
,也不需要运行jstatd
即可远程监视Tomcat。
记录: jstatd
不需要X库,它只依赖于其他推荐的包。 您可以使aptitude
或apt-get
跳过安装推荐的软件包,并安装jstatd
而不使用任何X11库。
对于aptitude
,进入选项➞首选项automatically自动安装推荐的软件包。 对于apt-get
,请在askubuntu上查看此问题 。