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

时间:2011-06-14 17:02:26

标签: java tomcat ubuntu jmx jvisualvm

我正在尝试设置JVisualVm来监控Tomcat 6实例(在Ubuntu Server 10.04 LTS上运行)。我见过其他问题,但没有一个能直接回答我的问题。我尝试使用JVisualvm连接到Tomcat,然后返回“无法连接”错误 - 但是有与服务器建立的TCP连接;服务器在短暂的流量突发后断开连接。

我已将此添加到/ 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;在服务器上安装它需要完整的JDK,这需要X库。我不打算安装X只是为了得到一个二进制文件。

我想知道如果不运行jstatd会与它有关;我的印象是我既不需要RMI也不需要jstatd,只要我可以通过JMX端口直接使用JMX。

服务器和JVisualvm客户端之间没有防火墙,并且iptables主机防火墙已打开。使用jconsole会导致相同的错误。

针对本地Ubuntu 10.04计算机运行JVisualVM(通过使用其IP地址和JMX端口)并添加JMX实例工作正常 - 我既不运行rmiregistry也不运行jstatd - 尽管监视器显示RMI线程正在运行。

问题:我必须做什么(在服务器或客户端上)才能通过JVX和JVisualVM监视Tomcat(和其他Java程序)?

提前致谢。

2 个答案:

答案 0 :(得分:4)

如果没有防火墙,请尝试为Tomcat设置java.rmi.server.hostname系统属性。将其添加到Tomcat的JAVA_OPTS:

-Djava.rmi.server.hostname=<IP address of Ubuntu Server>

您无需启动rmiregistry,也无需运行jstatd即可远程监控Tomcat。

答案 1 :(得分:0)

对于记录:jstatd不需要X库,它只依赖于它们通过其他推荐的包。您可以让aptitudeapt-get跳过安装推荐的软件包,并在没有任何X11库的情况下安装jstatd

对于aptitude,请进入选项➞首选项➞自动安装推荐的包。对于apt-get,请参阅this question on askubuntu