[英]How to use VisualVM and JMX?
我已經嘗試了書中的每一個食譜,但今天的事情根本不適用......
我正在嘗試使用VisualVM來配置我在遠程服務器上運行的Java應用程序,所以我用Google搜索並用Google搜索並搜索了這樣做的方法,我最終得到了這個解決方案:
java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9199 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-jar bin/felix.jar
運行這個會讓我JMX運行我猜,所以我可以看到他在9199運行:
java 21947 root 9u IPv6 1811434 0t0 TCP *:7192 (LISTEN)
java 26376 root 14u IPv6 1844518 0t0 TCP *:9199 (LISTEN)
此外,我可以測試該端口在Web上是否可見:
現在,當我嘗試在我的機器中打開VisualVM中的連接(也可以ping jmx服務器)時,會發生這種情況:
我一定是如此愚蠢,以至於這個世界上的每個人都能把這個東西運轉起來但是我。 該死的...
編輯:我安裝了wireshark來了解引擎蓋下發生了什么,所以我看到了這個。 一旦我在VisualVM中添加遠程IP,wireshark就開始檢測這個重復的活動:
但是,如果我嘗試添加新的JMX連接並要求他連接,則wireshark甚至不會抓取該連接嘗試的單個數據包。
在我看來VisualVM甚至沒有嘗試連接,盡管給出錯誤消息“無法連接”...... !! 這到底是怎么回事?
使用以下選項啟動您的服務:
-Djava.rmi.server.hostname=193.163.XXX.XXX
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9199
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
然后你可以使用jvisualvm或jconsole只有“193.163.XXX.XXX:9199”地址。
請按照以下步驟操作。
1)轉到遠程機器打開X11轉發,
2)在Windows中安裝XMING
3)在遠程機器中啟動可視VM,GUI將進入你的windows xming。
4)而不是IP使用localhost並使用相同的端口號。
如果上述步驟不起作用,則表示配置有問題。
如果上面的步驟工作正常,那么去iptables並確保端口9199對外部世界開放。 以及使用java -Djava.rmi.server.hostname=YOUR_IP
啟動程序
有關詳細信息,請參閱此鏈接
請使用以下JVM選項:
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=<PORT> -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<IP>
在VisualVM中使用以下連接:
service:jmx:rmi:///jndi/rmi:/<IP>:<PORT>/jmxrmi
希望這會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.