使用JMX連接JVM


什么是JMX?

什么是JMX,Java Management Extensions,即Java管理擴展,是一個為應用程序、設備、系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平台、系統體系結構和網絡傳輸協議,靈活的開發無縫集成的系統、網絡和服務管理應用,詳細內容可查看https://www.jianshu.com/p/8c5133cab858

JMX使用

在安裝JDK開發工具包后,在bin目錄中有jmc.exe、jvisualvm.exe、jconsole.exe,這三個工具都可以提供可視化界面來監控我們的Java程序運行狀況,既可以連接本地程序,也可以監控遠程環境,使用起來很方便,這里以jvisualvm.exe為例。

本地環境

在Java安裝bin目錄直接雙擊jvisualvm.exe啟動,就可以看到本地監控程序,有啟動的IDEA,如果有其他依賴於Java平台運行的程序也都會展示。

遠程環境

連接遠程環境,需要在Java程序啟動的時候添加以下參數

-Dcom.sun.management.jmxremote.port=server_port 遠程連接需要開放的端口

-Dcom.sun.management.jmxremote.ssl=false 禁止使用ssl連接

-Dcom.sun.management.jmxremote.authenticate=false 不使用安全認證

-Djava.rmi.server.hostname=server_ip 要連接的遠程主機的IP

然后啟動你的Java程序,可以添加在啟動參數文件中,也可以用下面方式啟動

java -Dcom.sun.management.jmxremote.port=server_port -Dcom.sun.management.jmxremote.ssl=false  省略...  -jar ./your_jar

啟動遠程程序后,在本地啟動jvisualvm.exe,輸入以下信息就可以連接了

Linux在Tomcat中指定參數:在bin/catalina.sh中添加下列參數

CATALINA_OPTS="$CATALINA_OPTS
-Djava.rmi.server.hostname=你的主機
-Dcom.sun.management.jmxremote.port=需要被監控的端口,保證沒有被占用即可隨便指定
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

如果不能連接,檢查遠程服務是否啟動成功,查看遠程系統的防火牆是否開放端口,要確保你設置的端口沒有被占用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM