visualVM使用jstatd和jmx连接远程jvm及遇到的问题解决
visualVM使用jstatd和jmx连接远程jvm及遇到的问题解决
- 
JMX方式:- 
编辑Tomact里bin目录的catalina.sh . 在其头部加入 JAVA_OPTS=" 
 -Dcom.sun.management.jmxremote
 -Dcom.sun.management.jmxremote.port=8998 这个端口可以改
 -Dcom.sun.management.jmxremote.rmi.port=8998
 -Dcom.sun.management.jmxremote.ssl=false
 -Dcom.sun.management.jmxremote.authenticate=ture 需要鉴权 若为false则不需要下两行的配置
 -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password
 -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access
 -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx" 服务器ip地址
- 
编辑Tomcat里conf目录的server.xml 加入监听器: <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="8998" rmiServerPortPlatform="8999" />- 其中8998可以改为你想要的端口
 
- 
在conf目录新建两个文件 
 - 
jmxremote.access文件内容: username readwrite第一个参数是用户名,第二个是这个用户拥有读取/写入权限 
- 
jmxremote.passwd文件内容: username password第一个参数为access的文件里的用户名,password为要设置的密码 
 - 去iptables开启刚刚设置的端口,这里为8998
 - vim /etc/sysconfig/iptables
 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8998 -j ACCEPT- 这个时候理论上可以开启visualVM然后添加远程主机监控了,但是由于JMX还需要监听一到两个随机端口。
 - 
会报错: 无法使用service:jmx:rmi连接
- 
解决方法有两种 - 
是用 jps 得到pid,然后使用 lsof -i|grep {pid} 命令得到监听的其他端口 
 然后将在iptables开放。
- 
关闭iptabels防火墙,service iptables stop。 
 
- 
- 
之后就可以在本地机上开visualVm添加远程主机,不使用ssl连接。开启监控啦 
 - jmx方式只能针对一个jvm,并且不支持visualGC。下面介绍第二种。
 
- 
- 
jstatd方式- 
使用cd $JAVA_HOME 到jdk的根目录,bin文件夹里面新建jstatd.all.policy文件。 - 
内容如下: grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission; };
 
- 
- 
在bin目录下启动Jstatd。 - 
./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.0.23 hostname为外网ip。 
 
- 
- 
这个使用本地主机上使用jps xxx.xxx.xxx.xxx的方式访问远程报错:java.rmi.ConnectException: Connection refused to host: xxx.xxx.xxx.xxx; - 原因 : jstatd会随机监听1,2个端口。
- 解决方法: 同上(用lsof命令查看监听的端口)。
 
- 
这个时候visualVM会自动刷新进程,一般两三秒就可以看到远程服务器上的所有jvm进程。 
 本文地址:http://www.cnblogs.com/zhengshiqiang47/p/7634522.html
 
- 
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号