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

标签 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 线程正在运行。

问题:为了能够使用 JVisualVM 通过 JMX 监视 Tomcat(和其他 Java 程序),我必须做什么(在服务器或客户端上)?

提前致谢。

最佳答案

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

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

你不需要启动 rmiregistry 也不需要运行 jstatd 就可以远程监控你的 Tomcat。

关于java - 如何在 Ubuntu Linux 中使用 JVisualvm 监控 Tomcat6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6347261/

相关文章:

java - 获取 n 位 BigInteger 的最大值

java - 如何在按钮组中添加单选按钮?

apache - ColdFusion 9、Tomcat 7、Apache 和虚拟主机

java - android tomcat读取servlet字符串文本

ubuntu - 如何让动态库从 Ubuntu 中的同一目录加载?

c++ - 跨 Linux 发行版编译时的 OpenGL 问题

java - 延迟初始化一个由另一个延迟初始化 bean 引用的 bean

java - Android 6(棉花糖)的 SSLHandshakeException SSLProtocolException

tomcat - azure 网站中tomcat 7的默认用户名和密码

c - 为什么 fcntl() 不阻塞 WSL 中的 F_SETLKW?