本地監控:只要打開某個JAVA程序就會自動的加入到本地監控中.
遠程監控:要進行遠程監控, 本機的VisualVM就必須和遠程的JVM要進行通訊, Visualvm目前支持兩種remote connection方式.
分別是jstatd和JMX方式:java
經過JMX鏈接遠程機器, 須要通過下面的配置:
1. 修改遠程機器JDK配置文件 (我這裏遠程機器是linux).
a.進入$JAVA_HOME\jre\lib\management\目錄
b.拷貝jmxremote.password.template這個文件到當前目錄, 並更名爲jmxremote.password
c.打開jmxremote.password文件,去掉 # monitorRole QED 和 # controlRole R&D 這兩行前面的註釋符號
2. 修改遠程機器上須要被監控的程序的配置文件 (我這裏是監控Tomcat容器內部署的應用).
a.進入TOMCAT_HOME\bin目錄
b.打開catalina.sh文件,加入以下信息:
//對於一臺服務器上安裝多個tomcat的,JAVA_OPTS改成CATALINA_OPTS
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.0.237
-Dcom.sun.management.jmxremote.port=18999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
-server -Xms512m -Xmx1024m -Xmn256m -XX:PermSize=256m -XX:MaxPermSize=1024m
c.重啓Tomcat服務.
3. 客戶端VisualVM配置 (我客戶端用的是WinXP).
a.直接反鍵點擊Remote,選擇Add Remote Host...
b.在彈出的界面中輸入遠程機器的IP地址(192.168.0.237),這個IP地址會加入到Remote節點下.
c.反鍵點擊這個IP地址,選擇Add JMX Connection, 在彈出的界面中輸入剛配置的端口號(18999), 這個鏈接會加入到該IP節點下.
d.反鍵點擊這個鏈接,選擇Open.linux
jstatd配置:
1.配置java安全訪問,將以下的代碼存爲文件 jstatd.all.policy放入$JAVA_HOME/bin目錄下:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};tomcat
2.修改服務器hosts文件中的IP地址
要使Java VisualVM成功鏈接到遠程服務器上,服務器端應該在/etc/hosts文件中把本機地址設爲本機的IP地址。
使用hostname -i命令查看,若是顯示的是127.0.0.1或者與本機實際IP不一致的話,須要把/etc/hosts文件中相應的地址改成本機實際IP。
修改/etc/hosts文件:在127.0.0.1下一行增長一行,本機ip 域名/主機名 別名
3.而後經過以下的命令啓動RMI服務:
jstatd -J-Djava.security.policy=jstatd.all.policy
或者在$JAVA_HOME/bin目錄下創建腳本文件startjstatd.sh:
nohup ./jstatd -J-Djava.security.policy=jstatd.all.policy &
此命令將jstatd服務後臺運行且將日誌文件輸出到nohup.out目錄下;
4.在visualVM中創建鏈接,就可看到jmx和jstatd
此時就能夠看到監控的界面, 從界面上咱們能夠看到CPU信息,內存信息,統計加載類數量,線程信息.安全