1.远程主机配置jstatd
1.1 检查host文件
vim /etc/hosts
127.0.0.1 localhost iZ2zei0nwllapkwklisoncZ
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 iZ2zei0nwllapkwklisoncZ
1.2 创建java.policy
[root@iZ2zei0nwllapkwklisoncZ data]# cat java.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
1.3 启动jstatd
jstatd -J-Djava.security.policy=java.policy -J-Djava.rmi.server.logCalls=true -J-Djava.rmi.server.hostname=123.56.13.77
注:-J-Djava.rmi.server.hostname=123.56.13.77这个参数可以不加 有时候要加是步骤1.1中的配置hostname映射相关。
1.4 启动自己的某个应用
java -jar -XX:+PerfBypassFileSystemCheck target/demo-app-55.jar --spring.profiles.active=demo
注:-XX:+PerfBypassFileSystemCheck这个参数不一定加,如果启动后再jvisualvm看不到就加上
1.5 jps看Linux上的Java进程
root@iZ2zei0nwllapkwklisoncZ demo-app]# jps
1042 Application
904 Jps
32555 Jstatd
827 demo-app-55.jar
2. 在自己的机器启动jvisualvm添加远程IP
3.更新一步,配置jmx
3.1 配置jmxremote.password
将jre/lib/management/下的jmxremote.password.template改名并打开注释即可。
vim /usr/local/services/jdk1.8.0_91/jre/lib/management/jmxremote.password
#
monitorRole QED
controlRole R&D
3.2 启动Linux的app
(java -jar -Xms800m -Xmx800m -Xmn600m -Xss256k -XX:PermSize=64m -XX:+PerfBypassFileSystemCheck -Dcom.sun.management.jmxremote.port=8999 -Djava.rmi.server.hostname=23.56.13.70 -Dcom.sun.managent.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false target/demo-app-55.jar --spring.profiles.active=demo &)