JDK-Jconsole管理工具

JDK-Jconsole管理工具

一、介绍
    Jconsole,Java Monitoring and Management Console。
    java监控和管理控制台,从java5开始,在JDK中提供。
    用于对JVM中内存,线程和类等的监控。
二、本地监控
    a)在Java项目启动脚本中加上 -Dcom.sun.management.jmxremote
      如:java -Dcom.sun.management.jmxremote -jar imstart.jar
    b)查询启动Java项目的PID window中在"任务管理器"中直接可以查看[首次使用需要在"查看"--"选项列"--"pid"]或者使用命令 tasklist
      linux ps -ef|grep java
    c)进入%JDK_HOME%bin/目录 cmd模式中输入 jconsole [pid]
三、远程监控
    a)匿名远程监控
      匿名远程监控即无效认证就可以监控。
      在Java项目启动脚本中加上如下选项
         -Djava.rmi.server.hostname=192.168.1.*[服务器ip] -Dcom.sun.management.jmxremote.port=8088[jmx端口]
         -Dcom.sun.management.jmxremote.ssl=false[不使用SSL] -Dcom.sun.management.jmxremote.authenticate=false[匿名]
      打开Jconsole选择"远程"输入IP 端口 连接
    b)认证远程监控
      在%JRE_HOME%/lib/management/目录下[简称MM目录]编辑"jmxremote.access"[用户名]文件
       [用户名]      [权限]
       monitorRole   readonly [只读]
       controlRole   readwrite [读写]
       zxpRole   readwrite [读写]
      在MM目录下找到密码模板"jmxremote.password.template"复制一份根据自己喜欢的命名如:"jmxremote.password"并编辑该文件
       [用户名]     [密码]
       monitorRole   QED
       controlRole   R&D
       zxpRole       xxx
      在MM目录下编辑"management.properties"文件
       将该文件中的参数"#"去除表示可用并填写相应的参数值如:
        com.sun.management.jmxremote.port=8088
        com.sun.management.jmxremote.ssl=false
        com.sun.management.jmxremote.authenticate=true[认证]
        com.sun.management.jmxremote.password.file=C:/Java/jre1.5.0_15/lib/management/jmxremote.password
        com.sun.management.jmxremote.access.file=C:/Java/jre1.5.0_15/lib/management/jmxremote.access
      完成以上操作后最后编辑Java项目启动脚本加上以下参数
       java -Dcom.sun.management.config.file=C:/Java/jre1.5.0_15/lib/management/management.properties -Djava.rmi.server.hostname=192.168.1.132 -jar imstart.jar
      打开Jconsole选择"远程"输入IP 端口 用户名 密码 连接

四、自已测试成功命令

#!/bin/bash
CLASSPATH=../MTOServer:./lib/newcomapi.jar:./lib/build-1.02.jar:./lib/configapi.jar:./lib/log4j-1.2.8.jar:./lib/logapi.jar
java -Xmx1024m -Djava.rmi.server.hostname=192.168.0.244 -Dcom.sun.management.jmxremote.port=7777 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -cp "$CLASSPATH" com.xuanwu.smap.cmppmtoserver.YDMtoServer > /home/esms/gateway/startScript/MTOServer/console.log & echo $! > /home/esms/gateway/startScript/MTOServer/ps.pid &
echo "MTOServer is runing"

你可能感兴趣的:(JDK-Jconsole管理工具)