1. 要想监控远程服务器,需要在服务器上运行 jstatd 守护进程。下面以 CentOs 为例
$JAVA_HOME/bin目录下运行 ./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=xxx.xx.xx.xx
xxx.xx.xx.xx为服务器ip
可能报错:
access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.rmi.server.ignoreSubClasses" "write")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.security.AccessController.checkPermission(AccessController.java:886)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.System.setProperty(System.java:792)
at sun.tools.jstatd.Jstatd.main(Jstatd.java:139)
解决办法,编辑 $JAVA_HOME/jre/lib/security/java.policy 文件,在最后添加 permission java.security.AllPermission;
再次运行。
2. 打开visualVm ->远程, 输入服务器ip 连接 即可