繁体   English   中英

无法使用VisualVM连接到远程JMX,但使用JConsole无法连接

[英]Unable to connect to remote JMX using VisualVM but OK with JConsole

我正在尝试使用带有JRE 1.8.0的VisualVM 1.3.8连接到远程JMX服务。 与JConsole完全相同的连接可以很好地工作,但是在VVM中使用相同参数的尝试只是挂起在“添加服务”阶段。 我查看了VVM日志,但实际上并没有记录任何内容。

我也在这里阅读VVM远程JMX文档:

注意:要检索和显示有关在远程主机上运行的应用程序的信息,需要在远程主机上运行jstatd实用程序。

这让我很困惑,因为我可以使用JConsole建立远程JMX连接,据我所知,jstatd没有在远程上运行。

有谁知道jstatd 仅将VVM作为远程JMX客户端的要求? 由于可以在同一客户端和服务器端点之间使用JConsole建立JMX连接,因此网络/防火墙等没有问题。

除此之外,我真的很困惑在哪里寻找线索?

当我从Java 7切换到8时,我遇到了同样的麻烦,同时使用SOCKS我通过VisualVM -> Tools -> Plugins -> Settings -> Proxy Settings更新代理设置VisualVM -> Tools -> Plugins -> Settings -> Proxy Settings 但是,我成功了以下几点:

  1. 使用以下选项运行JVM:

-Dcom.sun.management.jmxremote.port=<JMX_PORT> -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

请注意,您显然可以执行更安全的操作,包括SSL和身份验证。

  1. 从本地主机到远程服务器设置SOCKS代理:

ssh -D<SOCKS_PORT> -vvv -N <REMOTE_HOST>

  1. 在localhost上运行以下任一命令:

jconsole -J-DsocksProxyHost=localhost -J-DsocksProxyPort=<SOCKS_PORT> service:jmx:rmi:///jndi/rmi://<REMOTE_HOST:JMX_PORT>/jmxrmi jvisualvm -J-DsocksProxyHost=localhost -J-DsocksProxyPort=<SOCKS_PORT> --openjmx <REMOTE_HOST>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM