首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

摘引 JMX管理Tomcat/Resin

2012-09-25 
引用 JMX管理Tomcat/Resin环境Windows XP / LinuxJDK5Update15Tomcat5.5.26Resin 3.1.6Jconsole简介jconso

引用 JMX管理Tomcat/Resin

环境
Windows XP / Linux
JDK5Update15
Tomcat5.5.26
Resin 3.1.6

Jconsole简介
jconsole是一个JMX兼容的监视工具。它使用Java虚拟机的JMX机制来提供运行在Java平台的应用程序的性能与资源耗费信息。 位于JAVA_HOME/bin目录。


一、本地监控
命令语法:jconsole [进程ID]
示例:jconsole 688

如何获取进程ID?

    Windows上在任务管理器中查看。UNIX上用ps查看。使用jps命令查看JVM的进程ID,请参考“jps - Java Virtual Machine Process Status Tool”。

    ??? ???摘引 JMX管理Tomcat/Resin

    jconsole和被监视的应用程序必须是使用同一个用户运行的,管理和监视系统使用操作系统的文件权限。在Windows操作系统如果要支持远程监控还需要磁盘格式为NTFS。
    如果你没有指定PID,直接运行jconsole,jconsole会自动的探测出本地运行的所有java应用程序并显示一个对话框让你选择你想监控的程序。如下图所示:
    摘引 JMX管理Tomcat/Resin
    使用jconsole监控本地应用的详细说明和使用可以参考官方文档:Local JMX Monitoring and Management


    二、远程监控
    命令语法:jconsole [主机地址:端口]
    示例:jconsole 10.3.18.58:9009

    可以直接在CMD中直接输入jconsole,然后在“JConcole:连接到代理”对话框中选择“远程”选项,输入主机和端口,如何设置用户名和密码,则还要输入用户名和密码,如下图所示:
    摘引 JMX管理Tomcat/Resin

    使用jconsole监控远程应用的详细说明和使用可以参考官方文档:Remote Monitoring and Management


    三、配置Resin3.0.x接受JMX管理
    在启动resin时加参数:
    windows下
    httpd.exe -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9009 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

    Linux下
    httpd.sh -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9009 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false


    四、配置Resin3.1.x接受JMX管理
    以下配置在Windows和Linux下同时适用,打开conf/resin.conf 中的JMX配置信息如下:

      无限制访问<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.port=9009</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>


        需要用户名和密码访问<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.port=9009</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.authenticate=true</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.access.file=D:/temp/jmxremote.access</jvm-arg>
        <jvm-arg>-Dcom.sun.management.jmxremote.password.file=D:/temp/jmxremote.password</jvm-arg>


        打开jconsole,用本地或远程方式进入,在MBean选项中将看到resin的MBean,如下界面所示:
        摘引 JMX管理Tomcat/Resin



        五、配置Tomcat接受JMX管理
        打开Tomcat的bin/catalina.bat,如果为linux或unix系统,则为catalina.sh文件。
        找到 set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties,修改为:

          无限制访问在"rem ---------------------------------------"下面添加一行:
          set JAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false?


            需要用户名和密码访问在"rem ---------------------------------------"下面添加一行:set JAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=D:/temp/jmxremote.password -Dcom.sun.management.jmxremote.access.file=D:/temp/jmxremote.access


            打开jconsole,用本地或远程方式进入,在MBean选项中将看到Tomcat的MBean,如下界面所示:
            摘引 JMX管理Tomcat/Resin

            同时还可用 service:jmx:rmi:///jndi/rmi://localhost:9008/jmxrmi 访问。

            4.1 异常处理
            在配置Tomcat和Resin需要用户名和密码访问的时候,遇到了两个问题,害我弄了半天才摆平它们……摘引 JMX管理Tomcat/Resin
            1)如果在启动Tomcat/Resin时报错:“错误: 必须限制口令文件读取访问: D:/temp/jmxremote.password”。
            解决:
            因为jmxremote.password只允许拥有者访问,所以要删除其他的权限账号。


            2)如果在启动Tomcat/Resin时报错:“错误: 代理抛出异常: java.lang.IllegalArgumentException: Syntax error in access evel entry []“
            解决:
            因为从JAVA_HOME/jre/lib 目录下复制 jmxremote.access 和从 jmxremote.password.template 另存为 jmxremote.password 时没有删除里面的那些注释,将多余的文字删除即可。
            jmxremote.access 文件内容示例如下:
            aofeng readonly
            nieyong readwrite

            jmxremote.password 文件内容示例如下:
            aofeng sys
            nieyong pm

热点排行