1、 在/etc/hosts中添加远程主机IP
vim /etc/hosts
例如:192.168.11.63 mylinux 添加在文章最后即可
2、配置安全策略
① 查看环境变量的路径(确定修改哪个java.policy文件)
echo $PATH
② 查找java.policy文件位置
find / -name java.policy
查找到多个java.policy文件,最后一个在环境变量路径下,所以这就是我们要找的文件。
③ 修改java.policy文件
vim /usr/local/java/conf/security/java.policy
在文末};前边添加一行
permission java.security.AllPermission;
启动jstatd
① 进入jstatd所在的目录
cd $JAVA_HOME/bin
② 命令启动
jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.11.63 -J-Djava.rmi.server.logCalls=true
③启动后
华为云开放端口
①查看jstatd启动后使用的端口
netstat -anp | grep jstatd
注意:
可以看到,jstatd启动后开放了两个端口1099和39845,这两个端口都需要在华为云安全组中开放,否则连接失败。
② 华为云配置开放端口
点击对应的服务器名称
点击安全组
点击ID
点击配置规则
添加规则
将jstatd使用的端口添加,别的都不用填,点击确定
同样的方式将1099也添加进去,否则无法启动
##jvisualvm远程连接
右击上一步添加的远程地址
监控成功
注意:
关于防火墙,可关闭防火墙,如果防火墙开启,需要在防火墙中也将两个端口开放。
防火墙开放端口
将启动的两个端口都在防火墙中开放
firewall-cmd --permanent --add-port=39845/tcp
并重启防火墙:
firewall-cmd --reload
然后查看端口是否开放:
firewall-cmd --query-port=1099/tcp
补充内容–启动方式
① 前台启动不打印日志
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=服务器IP
②前台启动并打印日志
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=服务器IP -J-Djava.rmi.server.logCalls=true
③后台启动并且不打印日志
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=服务器IP &
④ 后台启动且打印日志并指定端口
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=服务器IP -p 端口 -J-Djava.rmi.server.logCalls=true &