Java VisualVM监控远程JVM

本次使用的是jdk1.8,tomcat8.5

1.首先在输入hostname -i,查看本机的ip,若出现的是127.0.0.1,则需要设置映射,使用root账号

vi /etc/hosts #编辑hosts文件

在文件中添加

ip 主机名

保存退出即可,主机名可以通过hostname查看

2.编辑tomcat目录下的setenv.sh文件(没有就新建)

JAVA_OPTS="-Djava.rmi.server.hostname=ip -Dcom.sun.management.jmxremote.rmi.port=8180 -Dcom.sun.management.jmxremote.port=8180 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

3.设置防火墙规则,将2中的的端口号排除在防火墙规则外

vi /etc/sysconfig/iptables

如图

service iptables restart #重启防火墙  
/sbin/iptables -L -n  #查看开放端口

4.在本地cmd中 telnet ip:端口,若是通,说明配置成功

5.重器tomcat服务器,使配置生效

6.在本地jdk目录下的bin目录内找到jvisualvm.exe,双击打开程序,在远程-》添加远程主机-》输入远程主机ip,如图

 

在新建的远程主机上右键,添加jmx连接,填入端口号即可,如图

连接成功,如下

 7.解决不支持visual gc

 vi $JAVA_HOME/jre/lib/security/java.policy

  在文件末尾的};前面加上

permission java.security.AllPermission;

  进入jdk目录下的bin目录,执行

./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.106.39 -p 8182 -J-Djava.rmi.server.logCalls=true

  以上的ip和端口根据实际情况设置

在java visualVM添加jstast连接即可,若关掉jstatd,则需要再次在bin目录下执行

./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.106.39 -p 8182 -J-Djava.rmi.server.logCalls=true

如下

 8.使用插件

由于默认的插件地址被墙,因此可以可在工具-》插件-》设置-》插件中心-》编辑中修改地址,即可获取到插件,推荐以下地址

https://visualvm.github.io/pluginscenters.html,这个地址下有各个版本jdk的插件地址,可以根据实际选择具体的地址,我的是

jdk1.8.0_122的,因此选择了如下地址https://visualvm.github.io/archive/uc/release138/updates.xml.gz

posted @ 2018-05-18 09:09  无聊的小剑  阅读(401)  评论(0编辑  收藏  举报