如何在Ubuntu Linux中使用JVisualvm监视Tomcat6?

我试图设置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库,它只依赖于其他推荐的包。 您可以使aptitudeapt-get跳过安装推荐的软件包,并安装jstatd而不使用任何X11库。

对于aptitude ,进入选项➞首选项automatically自动安装推荐的软件包。 对于apt-get ,请在askubuntu上查看此问题 。