现在的位置: 首页 > 综合 > 正文

使用jconsole监视远程主机上的JVM

2014年02月23日 ⁄ 综合 ⁄ 共 2607字 ⁄ 字号 评论关闭

使用jconsole监视远程主机上的JVM

====================

jconsole是随着SUN JDK 1.5而推出的。这是一个Java监测和管理控制台-JMX兼容的图形工具来监测Java虚拟机。它能够同时监测本地和远程的JVMsjconsole远程监视的配置步骤如下:

环境:
服务端::Linux2.6.23 +Sun jdk1.5.0 update12 + WebLogic9.2.3

服务端IP:192.168.1.22
客户端::Windows2003 Server EE sp2 +sun jdk1.5.0 update12

$BEA_HOME=/opt/wls923/bea

$JAVA_HOME=/opt/wls923/bea/jdk150_12

$WL_HOME=/opt/wls923/bea/weblogic92

$Domain_HOME=/opt/wls923/bea/user_projects/domains/alone_domain


服务端:
1.
使用自己创建的一个普通用户,如weblogic,切换到$JAVA_HOME,新建一个目录用来存放远程JMX的管理(监控)角色信 

息。

$ cd  /opt/wls923/bea/jdk150_12

$mkdir  jcon_pwd
2. $ cp  /opt/wls923/bea/jdk150_12/jre/lib/management/jmxremote.pwd.template    

/opt/wls923/bea/jdk150_12/jcon_pwd/jmxremote.pwd

3. 编辑这个文件,去掉#monitorRole  QED前的注释并将QED修改为你要设置的密码。

$vi  jmxremote.pwd

如我的是:

      monitorRole  tdy218

          #controlRole  R&D

其实也可以将这两个角色及其对应的密码存储到一个xxx.properties文件里,在调用时指定其绝对路径即可。

4. 修改$Domain_HOME /bin/setDomainEnv.sh,为$JAVA_OPTIONS

(JAVA_OPTIONS)添加四个参数:
  -Dcom.sun.management.jmxremote.port=22801

-Dcom.sun.management.jmxremote.pwd.file=/opt/wls923/bea/jdk150_12/jcon_pwd/jmxremote.pwd

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

注:为了能让更多的Java Application Server可以使用jconsole来监控JVM的运行状况,你只需要将以上4个参数添加到java命令的后面即可。

5. 执行hostname -i ,如果显示的是127.0.0.1,则需要切换到root用户,修改/etc/hosts文件
#vi /etc/hosts 
修改如下:
127.0.0.1                      localhost localhost.localdomain localhost
服务器的真实IP地址       主机名

# vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=主机名    //在这修改主机名,(切换到普通即可生效)
具体原因是服务器端解释机器名的问题,相关问题见:   

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6209663
服务器端配置参见: http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#remote

6. 启动该域下的AdminServernetstat -na|grep 22801 查看22801端口是否已在监听。如果没有请检查你的配置。

客户端:

1. 切换到Windows2003 Server下的%JAVA_HOME%/bin目录下,双击打开jconsole.exe

2. 指定连接参数:
 
远程主机: 服务器的真实IP地址
 
端口: 22801 ($JAVA_OPTIONS-Dcom.sun.management.jmxremote.port指定

的端口)
 
用户名:monitorRole 
 
密码:your password(jmxremote.pwd中设置的密码,如我的是tdy218)

与远程JVM连接

 

3. 连接 –>OK

连接成功的效果图

 

Ø        客户端配置参见:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html

Ø        本文为修改自《配置jconsole远程监视 (jconsole Remote Monitoring)

文章地址:http://xsen.javaeye.com/blog/150317

Ø        jconsole文档地址:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jconsole.html

Ø        什么是JMX?

http://www.blogjava.net/mlh123caoer/archive/2007/09/03/142456.html

Ø        jdk1.6 中使用 jconsole 需要包含的启动参数》

       -Dcom.sun.management.jmxremote.port=22801

 -Dcom.sun.management.jmxremote.ssl=false

 -Dcom.sun.management.jmxremote.authenticate=false

:
1.
远程连接才需要包含此参数(包括本地 web 应用),本地连接则不需要
2.
本地应用还要加参数 -jar,比如: -jar  

JDK_HOME/demo/jfc/Java2D/Java2Demo.jar

3.目前wls10.3的里面SUN JDK的版本还是1.5.x的,所以SUN JDK1.6jconsole的使用配置我没去关注,谁用到的时候,请做个文档,共享一下,谢谢!~

 

抱歉!评论已关闭.