zhuangjinxin / blog

:notebook: 个人博客 技术分享 整理笔记
http://blog.zhuangjinxin.top
7 stars 0 forks source link

Java VisualVM监控远程JVM #29

Closed zhuangjinxin closed 6 years ago

zhuangjinxin commented 6 years ago

JAVA VisualVM 远程监控效果图: JAVA VisualVM

VisualVM支持JMX和jstatd两种远程连接方式

以下是JMX方式的操作步骤:

I. 修改远程机器JDK配置文件

  1. cd ${JAVA_HOME}\jre\lib\management
  2. cp jmxremote.password.template jmxremote.password
  3. vi jmxremote.password
  4. 去掉 # monitorRole QED# controlRole R&D 这两行前面的注释符号,保存退出

II. 修改远程机器上被监控的程序(Tomcat)

  1. cd ${TOMCAT_HOME}\bin
  2. vi catalina.sh
  3. 加入JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=<hostname> -Dcom.sun.management.jmxremote.port=<port> -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false",保存退出
  4. 重启Tomcat服务.

    III. VisualVM远程连接

  5. 打开VisualVM
  6. 右键'Romote'->'Add Romote Host'->填写远程IP 保存'OK';
  7. 右键远程Host->'Add JMX Connection...'->填写Connection栏中的: ->保存'OK';
  8. 双击新建的JMX远程连接,即可!
zhuangjinxin commented 6 years ago

以下是jstatd方式的操作步骤:

jstatd.all.policy

grant codebase "/usr/lib/jvm/jdk1.8.0_131/lib/tools.jar" {  
   permission java.security.AllPermission;  
};

apt-get install screen

screen jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.logCalls=true -J-Djava.security.policy=jstatd.all.policy // 权限 -J-Djava.rmi.server.logCalls=true //日志

ctrl+a+d 退出screen screen -r -d 进入screen