gpt4 book ai didi

java - 无法使用 VisualVM 连接到远程 JMX,但可以使用 JConsole

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:01 31 4
gpt4 key购买 nike

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

我还读了here在 VVM 远程 JMX 文档中:

Note: To retrieve and display information on applications running on the remote host, the jstatd utility needs to be running on the remote host.

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

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

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

最佳答案

当我从 Java 7 切换到 8 时,我遇到了同样的问题,同时使用 SOCKS,我通过 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. 在您的本地主机上运行以下任一命令:

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>

关于java - 无法使用 VisualVM 连接到远程 JMX,但可以使用 JConsole,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30898196/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com