使用jvisualvm進行遠程監控


1. 描述

jvisualvm是JDK自帶的監控工具,位於JDK bin目錄下面。

默認jvisualvm不能監控遠程的JVM進程,需要進行一些配置。

2. 單獨在應用上配置JVM啟動參數

在Java啟動時,配置如下參數:

-Djava.rmi.server.hostname=192.168.23.65 -Dcom.sun.management.jmxremote.port=18888 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.managementote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

其中java.rmi.server.hostname配置的是運行JVM所在的機器IP。

如:

nohup java $JAVA_OPTS -Dfile.encoding=UTF-8 -Djava.rmi.server.hostname=192.168.23.65 -Dcom.sun.management.jmxremote.port=18888 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.managementote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -cp $LIB_PATH com.test.Application  > console.log &

注意:com.sun.management.jmxrenote.port=18888,這個端口不能與業務的端口一致,否則報錯。

在jvisualvm里面添加遠程主機192.168.23.65,然后右鍵添加JMX連接,如圖:

輸入上面配置的端口即可,之后就可以看到各種監控的數據。

3. 使用jstatd

新建一個文件jstatd.all.policy(名稱隨意),內容如下:

grant codebase "file:${java.home}/../lib/tools.jar" {  
   permission java.security.AllPermission;  
};

然后執行 jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.23.65

在jvisualvm里面添加遠程主機 192.168.23.65,然后右鍵添加jstatd連接,端口默認。jvisualvm即可掃描出所有正在運行的JVM,點擊即可監控。

對比兩種方式,第一種需要在每個JVM參數中都要配置,第二種不需要配置應用的JVM參數,只需要額外啟動一個jstatd即可。

 


免責聲明!

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



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