本地檢測之間到$JAVA_HOME/bin 下的目錄點擊jmc 或者jvisualvm,然后選擇你要監控的app
可是一般我們生產環境項目都是部署在遠程,這個時候想要監控怎么辦
1、監控tomcat
找到tomcat的catalina.sh,然后在第一行加上:(最后的位置加上本機ip)
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname="
2、監控其他java程序
修改啟動參數
如果你原來啟動的腳本 java -jar demo.jar
添加參數
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=
啟動程序以后:點擊連接 然后創建新連接 就可以遠程監控
把服務器ip和剛才開放的端口填上就好了,測試一下連接
效果圖
上面的是不需要密碼的 生產環境不安全 如果想設置密碼
1.進入服務器$JAVA_HOME/jre/lib/management
把jmxremote.password文件的后綴去掉,然后修改至600權限
chmod 600 jmxremote.access
打開編輯到最后
#monitorRole ROF
#controlRole R&D
去掉# 保存 (前面是用戶名,后面是密碼 可自己修改 用戶在同目錄 jmxremote.access文件內定義,默認有2個用戶,可定義權限)
2.將剛才的啟動參數中的
-Dcom.sun.management.jmxremote.authenticate=false 修改為 true 或者直接去掉(默認true)
3.創建新連接的時候輸入用戶名和密碼
大功告成!!!!!!!!!