1. 文章目标
通過
JMX
+
jvisualvm
監控遠端JVM,本文以監控Tomcat為例
-
動态開啟JMX無需重新開機
無認證模式 — 有認證模式
-
啟動時開啟JMX需重新開機
無認證模式 — 有認證模式
- jvisualvm監控
1.1 環境介紹
-
本機環境簡介
Win10,192.168.
,1.1
Jdk 1.8.0_201oracle
-
伺服器環境簡介
Centos 7.6,192.168.
,1.14
Jdk 1.8.0_232,tomcat 8.5.50open
2. 動态開啟JMX
2.1 無認證模式
通過jps指令獲得tomcat pid
jps -l
傳回資訊如下所示,tomcat程序id為19533
19533 org.apache.catalina.startup.Bootstrap
19583 sun.tools.jps.Jps
開啟無認證模式的JMX,此處JMX端口為9999(可自選)
jcmd 19533 ManagementAgent.start jmxremote.host=192.168.1.14 \
jmxremote.port=9999 jmxremote.ssl=false jmxremote.authenticate=false
傳回如下資訊表明開啟成功
19533:
Command executed successfully
關閉JMX
jcmd 19533 ManagementAgent.stop
傳回如下資訊表明關閉成功
19533:
Command executed successfully
2.2 有認證模式
此處依然使用無認證模式tomcat程序id 19533
建立權限檔案/root/jmxremote.access,内容如下:
root readwrite
dft readonly
jmxremote.access
檔案定義了使用者的權限,root使用者具備讀寫權限,dft使用者隻有讀權限
建立密碼檔案/root/jmxremote.password,内容如下
root [email protected]#
dft 123456a?
jmxremote.access
檔案定義了使用者的密碼資訊
更改檔案權限
jmxremote.access和jmxremote.password檔案的通路權限需要設定為
600
,否則會報錯
chmod 600 /root/jmxremote.access /root/jmxremote.password
建立配置檔案/root/management.properties,内容如下
# 開放端口号
com.sun.management.jmxremote.port=9999
# 是否隻能本地連接配接
com.sun.management.jmxremote.local.only=false
# 是否使用ssl加密
com.sun.management.jmxremote.ssl=false
# 是否需要賬号密碼認證
com.sun.management.jmxremote.authenticate=true
# 密碼檔案路徑
com.sun.management.jmxremote.password.file=/root/jmxremote.password
# 權限檔案路徑
com.sun.management.jmxremote.access.file=/root/jmxremote.access
開啟有認證模式的JMX
jcmd 19533 ManagementAgent.start config.file=/root/management.properties
傳回如下資訊表明開啟成功
19533:
Command executed successfully
關閉JMX
jcmd 19533 ManagementAgent.stop
傳回如下資訊表明關閉成功
19533:
Command executed successfully
3. 啟動時開啟JMX
需重新開機Tomcat
3.1 無認證模式
編輯TOMCAT_HOME/bin/catalina.sh,如果已定義變量JAVA_OPTS,則在此基礎上進行修改;如果未定義JAVA_OPTS,則新增此變量。此處以新增為例,在catalina.sh第二行後添加如下内容:
添加完成後,重新開機Tomcat即可。
3.2 有認證模式
如下四步與2.2小節完全一緻,參照2.2配置
- 建立權限檔案/root/jmxremote.access
- 建立密碼檔案/root/jmxremote.password
- 更改檔案權限
- 建立配置檔案/root/management.properties
編輯$TOMCAT_HOME/bin/catalina.sh
此處假設未定義
JAVA_OPTS
變量,在catalina.sh第二行後添加如下内容:
添加完成後,重新開機Tomcat即可。
4. jvisualvm監控
輕按兩下
%JAVA_HOME%/bin/jvisualvm.exe
啟動Java VisualVM,如果你的JDK中沒有預設安裝jvisualvm,可以去http://visualvm.github.io/下載下傳。
右鍵
點選
遠端
,然後點選
添加遠端主機
在彈出的視窗中填寫遠端主機IP位址,此處遠端主機為192.168.1.14,然後點選
确定
按鈕,如下圖所示
在剛添加的遠端主機
192.168.1.14
上點選
右鍵
,然後選擇
添加JMX連接配接...
在主機IP後面,填寫我們開啟的JMX的端口,本例為9999,然後點選
确定
如果你開啟了賬号認證,則在彈出的視窗中添加賬号,密碼,點确定按鈕
此處我們沒有開啟SSL,是以會有一個SSL連接配接失敗提示(當然你在輸端口的時候,勾選了不啟用SSL就不會有),點選
是
最後輕按兩下我們新加的JMX連接配接就能愉快的遠端監控了