visualvm jmx 监控linux上的tomcat

1 在java home下的bin目录下面创建文件java.all.policy文件,并添加一下内容:

  

grant codebase "file:${java.home}/../lib/tools.jar" {

   permission java.security.AllPermission;

};

 2 执行命令

jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=10.12.49.64 &

    注:10.12.49.64 为tomcat所在服务器的ip地址;如果执行jstatd 命令时,提示无法找到该命令,是因为你的java home下bin目录下不存在jstatd,重装一下jdk(我就遇到这个问题);如果你的java.all.policy文件不是放到java home的bin目录下的,那么执行上面命令的时候要使用绝对路径

 

3 上面两步成功之后,可以使用visualvm建立对远程机器上的监控,不过很多jmx相关功能无法使用,下面配置一下jmx

   在tomcat的根目录下的bin目录下,vi catalina.sh修改此文件,在

# ----- Execute The Requested Command -----------------------------------------

 这上面添加如下文字:

 

JAVA_OPTS="-Djava.rmi.server.hostname=10.12.49.64
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8081
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false $JAVA_OPTS"
export JAVA_OPTS

 注:第一行的ip为tomcat所在服务器的ip;第三行的端口为jmx使用的端口,确保此端口是未被占用的;(不要少了第一行,我一开始配置的时候就是没有第一行,jmx一直连接不上)

 

4 启动tomcat,netstat -aux 看看8080,8081端口是否被监听,如果被监听,说明配置成功了,然后在visualvm的远程选择ip,右键,添加“jmx连接”,成功连接就成功了


visualvm jmx 监控linux上的tomcat_第1张图片
 

你可能感兴趣的:(linux)