放牛的

放牛的日子,是人生初恋的诗...

0%

jstatd的配置

为了在本机上方便用jvisualvm看linux机器上JVM运行状况,昨天配了一下jstatsd,网上教程很多。

1、先写jstatd.policy文件:

1
2
3
grant codebase "file:/root/softs/jdk1.7.0_45/lib/tools.jar" { 
permission java.security.AllPermission;
};

2、写启动脚本:

1
2
3
#!/bin/bash 

/root/softs/jdk1.7.0_45/bin/jstatd -p 1088 -J-Djava.security.policy=/root/deploys/tagdataserv/jstatd/jstatd.policy -J-Djava.rmi.server.logCalls=true -J-Djava.rmi.server.hostname=192.168.1.8

3、启动。

我遇到的几个问题:

1、从网上拷下来后,字符串改错了,把路径写错了;

2、这台机器上有2个JDK,一个1.6的,一个是1.7的,我在statd.policy里配的是1.7的路径,却用1.6的statd来启动,就出错了;

3、远程连接不上,原因是这台机器的localhost 指向的是127.0.0.1,不愿改hosts,可以加参数来解决:

1
-J-Djava.rmi.server.hostname=192.168.1.8  

4、最后发现,可以不用配jstatd,在需要远程监控的JVM启动的时候,加些启动参数,用JMX即可:

1
2
3
4
-Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=192.168.1.8