簡體   English   中英

調試 VisualVM 遠程連接

[英]Debugging VisualVM remote connection

我在亞馬遜雲中的 Linux 服務器上運行 Tomcat 6。 我正在嘗試從我辦公室的 Mac 上使用 VisualVM 連接到它。 我已經允許打開我的桌面和服務器之間的所有 TCP 端口,但是我無法讓 VisualVM 做任何事情。

在 linux 機器上,我已經啟動了 Tomcat:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9191
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

在我的 Mac 上,我啟動 VisualVM 並選擇 File -> New JMX Connection...

我在框中輸入 amazonhostname.com:9191。 它說“正在添加 amazonhostname.com:9191...”並在超時前在那里停留了幾分鍾。

在我的 Mac 上,我可以“telnet amazonhostname.com 9191”就好了,我嘗試了其他一些隨機端口,它們都正常工作。 我非常確信這不是防火牆問題,除非我需要打開 UDP 或 ICMP 或類似的東西。 (真的??)

服務器上的 catalina.log 或 Mac 上的系統控制台中沒有任何與 jmx 相關的內容。 服務器上的 netstat 顯示 9191 和一些其他端口在所有接口上打開。

遠程服務器上沒有 jstatd。 這是 JMX 的先決條件嗎? (我對 Java 完全陌生,我什至不確定這些東西是什么意思,但我在某處的博客文章中看到了它。我現在正在抓緊稻草。)

在 VM 啟動之前設置主機名屬性:

java -Dcom.sun.management.jmxremote \
     -Dcom.sun.management.jmxremote.port=9191 \
     -Dcom.sun.management.jmxremote.authenticate=false \
     -Dcom.sun.management.jmxremote.ssl=false \
     -Djava.rmi.server.hostname=the.public.ip \
     -jar program.jar

將相關規則添加到您的安全組。

在 RHEL7 環境中對我來說效果很好的是使用文檔中提供的示例在 Tomcat 上實現 JmxRemoteLifecycleListener。 我還在防火牆上打開了端口 10001 和 10002。 JMX 遠程生命周期監聽器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM