我正在尝试设置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程序)?
提前致谢。
答案 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库,它只依赖于它们通过其他推荐的包。您可以让aptitude
或apt-get
跳过安装推荐的软件包,并在没有任何X11库的情况下安装jstatd
。
对于aptitude
,请进入选项➞首选项➞自动安装推荐的包。对于apt-get
,请参阅this question on askubuntu。