无法使用VisualVM连接到Tomcat

15 java permissions tomcat jmx

我在监视远程Tomcat进程时遇到问题.我正在尝试使用Java 6版本的JConsole/JVisualVM.

我使用适当的安全策略在远程服务器上运行jstatd.该过程已启动,并且TCP连接可用.

当我尝试通过JConsole连接时,我得到了'Connection Failed:jmxrmi'.

当我尝试通过VisualVM连接时,我添加了主机名,我的右键单击选项是'Add JMX Connection'.从文档中我不清楚这是否是我期望看到的.当我尝试连接时,我得到:

'Cannot connect using service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi'.
Run Code Online (Sandbox Code Playgroud)

因此,文档建议我只需要远程运行jstatd来监视VisualVM,而UI则要求jmxrmi ..这些是否相同?我尝试使用jmx rmi选项设置tomcat,我也超时,但我知道这不是防火墙问题.

如果有人成功获得了以这种方式连接的远程Tomcat进程,并且可以描述如何,那将对我有所帮助.

小智 15

通常,您需要确保在JAVA_OPTS中指定服务器的IP地址.否则,似乎JMX将向客户端发回指令以重新连接到不同端口上的服务器,如果它没有给客户端的IP地址,则连接失败.

这个论点是:

-Djava.rmi.server.hostname=1.2.3.4
Run Code Online (Sandbox Code Playgroud)

你可以找到更多细节穿行在安装过程中.

  • 嘿@Tom,你通过链接帮助我.大+10,坦克你!如果服务器具有不同的适配器(如在vpn中等),则`-Djava.rmi.server.hostname = 1.2.3.4`是必需的 (5认同)

cle*_*tus 14

您需要启用Tomcat VM的管理扩展.通常这意味着传递类似这样的东西:

-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Run Code Online (Sandbox Code Playgroud)

当然,如果您通过上述方式执行此操作,请确保您的Tomcat在Internet上不可见,或者端口受远程访问防火墙或采取类似的安全措施以避免端口扫描和泄露.否则使用身份验证选项.