java自帶的監控工具VisualVM(二)遠程監控


ps:嘗試了網上的幾個網友提供的方法,始終不得其法,匯總后,終於嘗試成功!將一些需要注意的細節也記錄下來以后備用!

我們經常需要對我們的開發的軟件做各種測試, 軟件對系統資源的使用情況更是不可少, 目前有多個監控工具相比JProfiler對系統資源尤其是內存的消耗是非常龐大,JDK1.6開始自帶的VisualVM就是不錯的監控工具.
這個工具就在JAVA_HOME\bin\目錄下的jvisualvm.exe, 雙擊這個文件就能看到一個比較直觀的界面.

要進行遠程監控, 本機的VisualVM就必須和遠程的JVM要進行通信, Visualvm目前支持兩種remote connection方式.
分別是jstatd和JMX方式: 這里主要介紹的是通過JMX方式.

JMX方式:

首先講述需要賬號密碼的方式:

  1.修改遠程需要被監控機子的jdk配置文件;
  •   進入JAVA_HOME\jre\lib\management\
  •   拷貝一份jmxremote.password.template並改名為jmxremote.password到當前目錄,並去掉# monitorRole  QED 和 # controlRole  R&D 這兩行  前面的注釋符號.
  •   這里是設置 遠程登錄的賬號和密碼。比如默認的 賬號是 monitorRole 和controlRole,其對應的密碼分別是 QED和 R&D;可以自定義用戶名密碼,我自  定義了一個賬號密碼都為 root的賬號。如圖:

    

  •   同時需要修改 當前目錄里的jmxremote.access 文件,該文件可以控制訪問權限;如圖:

    

  2.修改遠程機器上需要被監控的程序的配置文件 (我這里是監控Tomcat容器內部署的應用).

   修改TOMCAT_HOME/bin/catalian.sh文件;

    在第一行加入如下語句:

    export JAVA_OPTS="-Djava.rmi.server.hostname=192.168.2.120 -Dcom.sun.management.jmxremote.port=18999  -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"

    ps: 我需要監控的tomcat機子ip為 192.168.2.120;監控端口設置為:18999;遠程認證設置(默認)為true;

      當時就因為很多資料上沒有 將JAVA_OPTS變量 export,導致失敗了多次。

    詳細的參數見下面:    

 參數 描述
com.sun.management.jmxremote true / false. Default is true
com.sun.management.jmxremote.port Port number. No default.
com.sun.management.jmxremote.ssl true / false. Default is true.
com.sun.management.jmxremote.ssl.enabled.protocols Default SSL/TLS protocol version.
com.sun.management.jmxremote.ssl.enabled.cipher.suites Default SSL/TLS cipher suites.
com.sun.management.jmxremote.ssl.need.client.auth true / false. Default is false
com.sun.management.jmxremote.authenticate true / false.Default is true
com.sun.management.jmxremote.password.file JRE_HOME/lib/management/jmxremote.password
com.sun.management.jmxremote.access.file JRE_HOME/lib/management/jmxremote.access
com.sun.management.jmxremote.login.config Default login configuration is a file-based password authentication
  3.重啟tomcat,讓配置生效。

  ps: 可以用 netstat -anp| grep 18999 ,查看守護線程是否已經啟動!如圖:

    

  4.VisualVM配置。
  •   打開你本機命令框,輸入jvisualvm,點擊這個EXE文件;或者進入JAVA_HOME\bin\目錄下面點擊也可以!

 

 

 

  •    右擊遠程,點擊添加遠程主機:

    

  •   右擊 192.168.2.120(遠程主機),添加一個JMX鏈接,如圖:

    

  • 登錄后狀態:  

  

 

ps:

不需要賬號密碼登錄的,設置:-Dcom.sun.management.jmxremote.authenticate=false 即可。

export JAVA_OPTS="-Djava.rmi.server.hostname=192.168.2.120 -Dcom.sun.management.jmxremote.port=18999  -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" 如圖:

 輸入端口,直接點擊確定,即可登錄!

 

 

 ok!后面的可以參考 java自帶的監控工具VisualVM一,來監控學習了!

 

 

    

 

 

Jstatd方法:(略)還沒有試過!

 

參考文件:

https://segmentfault.com/a/1190000004313468

http://blog.csdn.net/lijiecong/article/details/6882267

http://blog.csdn.net/wzyzzu/article/details/50380511


免責聲明!

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



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