簡體   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