VisualVM加jstatd通过JMI方式远程监控远程主机

weilaidewo 2014-05-28

VisualVM是用来监控JAVA应用底层JVM的各项参数的,包括CPU,内存、线程、垃圾回收等待状态。

启动VisualVM后,可以直接查看本机的JAVA应用,但是如果要看远程服务器上的JAVA应用JVM状态,就需要进行配置。配置方法如下:

1. 登录远程服务器,进入cd $JAVA_HOME/bin目录,创建jstatd安全管理文件jstatd.all.policy,然后加入下面的内容:

grant codebase "file:${java.home}/../lib/tools.jar" {
       permission java.security.AllPermission;
};

[root@test bin]# cd $JAVA_HOME/bin
[root@test bin]# vim jstatd.all.policy 

grant codebase "file:${java.home}/../lib/tools.jar" {
       permission java.security.AllPermission;
};

2. 执行RMI监控启动命令:

rmiregistry 2020 &jstatd -J-Djava.security.policy=all.policy  -p 1099  -J-Djava.rmi.server.hostname=192.168.100.52 &

[root@test  bin]# rmiregistry 2020 &jstatd -J-Djava.security.policy=all.policy  -p 1099  -J-Djava.rmi.server.hostname=192.168.100.52 &

 rmiregistry 2020 启动的是远程消息服务

 jstatd -J-Djava.security.policy=all.policy 根据安全策略启动监控(如果hosts文件配置不正常,单独启动可能会异常)

 -p 1099  启动1099端口 用来给 VisualVM进行监控

 -J-Djava.rmi.server.hostname=192.168.100.52  本机IP(如果hosts文件配置不正常,可以手动指定本机IP供VisualVM进行配置监控)

 & 后台运行

3. 配置远程监控 (一般在Windows主机或者VisualVM监控软件所在的机器上)

 启动VisualVM监控软件,在远程节点右键点击选择新添加一个远程主机,然后输入远程主机的IP,端口等内容,点确定,进行监控。


VisualVM加jstatd通过JMI方式远程监控远程主机
 

      可以通过双击具体应用,来查看监控信息,比如Visual GC,这个是查看JAVA GC状态的,可以查看各内存分区的活动状态。


VisualVM加jstatd通过JMI方式远程监控远程主机

备注:

    如果执行过程出现异常,一般是因为CLASSPATH, 主机名/etc/hosts配置错误:

    解决方案是加入CLASSPAHT

    

JAVA_HOME=/usr/java/jdk1.6.0_45
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 或者在启动命令中加入主机名:
 rmiregistry 2020 &jstatd -J-Djava.security.policy=all.policy  -p 1099  -J-Djava.rmi.server.hostname=192.168.100.52 &

相关推荐