Springboot使用jconsole遠程監控JVM

用於監控遠程環境Jvm的運行情況

一. 首先在服務器終端設置環境變量,主要是便於每次啓動項目時使用:

  1. 在/etc/profile文件的最後加上以下代碼

    export JAVA_OPTS='-Djava.rmi.server.hostname=服務器地址(公網ip) -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8617 -Dcom.sun.management.jmxremote.rmi.port=8617 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false'

    使用到的相關命令:
    vim profile
    編輯指令 i
    保存並退出指令 :wq
    配置完成後截圖:

  2. 設置環境變量後,用命令重新加載配置文件:source /etc/profile

  3. 參數解析:

  • 配置遠程調用主機地址,即jar包運行所在系統的IP地址,不配置則默認使用hosts文件中的值:-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8617
  • 指定JMX的運行端口,jconsole需要對接的既是該端口:-Dcom.sun.management.jmxremote.rmi.port=8617
  • 是否需要進行身份驗證:-Dcom.sun.management.jmxremote.authenticate=true
  • 是否允許使用ssl方式接入:-Dcom.sun.management.jmxremote.ssl=false

   注:一步驟只是爲了設置統一環境變量,便於jar包啓動時同時啓動jmx(jconsole)的相關ip,端口,連接賬號,密碼信息

 

二. jmx的賬號密碼的設置

  • 切換到服務器jvm的配置路徑(路徑不確定可以在/etc/profile統一環境變量中找)

以下是我的jvm的配置路徑:

  • 配置jmx的賬號密碼:

切換到你服務器的jvm配置路徑:cd /usr/lib/jvm/java-1.8.0-openjdk.x86_64/

拷貝jmxremote.password.template文件到jmxremote.pwssword:

sudo cp jmxremote.password.template jmxremote.password

給jmxremote.password文件添加讀寫權限

sudo chmod 666 jmxremote.password

修改jmxremote.password文件,取消最後兩行的註釋,保存退出.

注:再將權限修改爲只讀(有點坑,我開始沒有這一步驟,導致jconsole遠程連接失敗):

chmod 400 jmxremote.password

這裏默認的用戶有monitorRole和controlRole,對應的密碼分別是QED和R&D

注意:這裏的monitorRole只有讀權限,而controlRole有讀寫權限

啓動項目進行測試(jar包後臺運行):

java $JAVA_OPTS -jar onecard-2.2.0.jar &

三.使用jconsole遠程連接:

 

 

 

注:查看指定端口監聽狀態:

sudo netstat -apn | grep java

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章