在看过很多jvisualvm在服务器端的配置方法后,感觉还是有必要自己整理下过程中的一些步骤。
1.确认或修改服务器端的host为该服务器ip(而非127.0.0.1)
[root@deal-transaction bin]# hostname -i
10.1.5.228
修改方法:去/etc/hosts下修改127.0.0.1为该服务器ip
[root@deal-transaction logs]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.1.5.228 deal-transaction
2.去tomcat上找到catalina.sh并添加jvisualvm的相关参数
[root@deal-transaction bin]# vi /server/tomcat/bin/catalina.sh
#JAVA_OPTS="$JAVA_OPTS -javaagent:$TINGYUN_JAR"; export JAVA_OPTS
JAVA_OPTS="$JAVA_OPTS -server -Xms5120m -Xmx6144m -Xmn3072m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.1.5.228";
export JAVA_OPTS
# OS specific support. $var _must_ be set to either true or false.
被添加的参数代码:
-Dcom.sun.management.jmxremote.port=1099 //这个是配置远程 connection 的端口号的,要确定这个端口没有被占用
-Dcom.sun.management.jmxremote.ssl=false //指定了 JMX 是否启用 ssl
-Dcom.sun.management.jmxremote.authenticate=false //指定了JMX 是否启用鉴权(需要用户名,密码鉴权)
2,3两个是固定配置,是JMX 的远程服务权限的
-Djava.rmi.server.hostname=10.1.5.228 //这个是配置 server 的 IP 的
3.去服务器上的java程序下设置jstatd服务的相关权限
[root@deal-transaction bin]# vi /server/java/jdk1.7.0_51/lib/jstatd.all.policy
grant codebase "file:/server/java/jdk1.7.0_51/lib/tools.jar" { permission java.security.AllPermission; };
4.启动jstatd监听服务,以便客户端连接该监听并进行实时的java内存监控
cd /server/java/jdk1.7.0_51/bin
前台运行的方式
./jstatd -J-Djava.security.policy=/server/java/jdk1.7.0_51/lib/jstatd.all.policy -J-Djava.rmi.server.hostname=10.1.5.228 -J-Djava.net.preferIPv4Stack=true
或者使用后台运行的方式
nohup ./jstatd -J-Djava.security.policy=/server/java/jdk1.7.0_51/lib/jstatd.all.policy -J-Djava.rmi.server.hostname=10.1.5.228 -J-Djava.net.preferIPv4Stack=true $
5.验证监听是否被启动
[root@deal-transaction bin]# netstat -an |grep 1099
tcp 0 0 :::1099 :::* LISTEN
tcp 0 0 ::ffff:10.1.5.228:1099 ::ffff:192.168.204.214:7733 ESTABLISHED
6.客户端添加远程监控
添加远程主机>添加JMX连接>
7. 好辣!开始实时监控吧,剩下的才是技术活儿!:)