java-jvisualvm遠端監控阿里雲伺服器上的Tomcat

可比克大魔王發表於2018-05-26

一、修改要訪問的遠端主機(Linux)tomcat相關檔案

    1.開啟$CATALINA_HOME/bin/catalina.sh,在第一行註釋後面新增,也就是#!/bin/sh後新增,

export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.*.* -Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=/opt/apache-tomcat-9.0.1/conf/jmxremote.password
-Dcom.sun.management.jmxremote.access.file=/opt/apache-tomcat-9.0.1/conf/jmxremote.access"

2.備註:

-Dcom.sun.management.jmxremote 啟用JMX遠端監控
-Djava.rmi.server.hostname=192.168.*.* 連線的伺服器地址
-Dcom.sun.management.jmxremote.port=8999 jmx連線埠 可以自己定義
-Dcom.sun.management.jmxremote.ssl=false 是否ssl加密
-Dcom.sun.management.jmxremote.authenticate=true 遠端連線需要密碼認證(如為false後面的可省略);
-Dcom.sun.management.jmxremote.password.file=/opt/apache-tomcat-9.0.1/conf/jmxremote.password 指定連線的使用者名稱和密碼配置檔案

-Dcom.sun.management.jmxremote.access.file=/opt/apache-tomcat-9.0.1/conf/jmxremote.access 指定連線的使用者所擁有許可權的配置檔案

連線伺服器地址可以寫為公網地址,linux使用命令 hostname -i 檢視輸出是否為公網地址,不是的話修改/etc/hosts檔案,指向公網地址。

3.其中jmxremote.password檔案:

monitorRole roor123
controlRole root123

4.jmxremote.access檔案:

monitorRole readonly  
controlRole readwrite  

5.重啟Tomcat服務。

6.使用命令 lsof  -i:8999 檢視埠號是否被監聽。

7.使用命令 netstat -antup |grep [pid]


會發現tomcat多開啟了兩個埠號 39143 38202。

因為當我們新增 -Dcom.sun.management.jmxremote.port 引數後不止會開啟指定的埠,還會隨機開啟兩個埠號,一個作為Jms的資料通訊埠,另一位作為jconsole的本地連線埠從阿里雲控制檯開放指定埠和兩個隨機埠,如果開啟有防火牆,同樣放開,不然會導致連線不上。

二、在本地(Windows)建立jvisualvm--JMX連線

1.開啟本地安裝JDK_HOME/bin目錄:{JAVA_HOME}\bin

2.開啟:jvisualvm.exe

 3.右鍵新增遠端主機:


4.新建JMX連線


右鍵開啟此連線即可。


參考資料:

https://www.cnblogs.com/quyanhui/p/5924474.html

https://blog.csdn.net/caomiao2006/article/details/51589836


相關文章