Tomcat-JMX管理Tomcat/Resin

作者:聂勇 欢迎转载,请保留作者信息并说明文章来源!

环境

  • Windows XP / Linux
  • JDK5Update15
  • Tomcat5.5.26
  • Resin 3.1.6

Jconsole简介

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

一、本地监控

命令语法:

1
jconsole [进程ID]

示例:

1
jconsole 688

如何获取进程ID

图1

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

二、远程监控

命令语法:

1
jconsole [主机地址:端口]

示例:

1
jconsole 10.3.18.58:9009

可以直接在CMD中直接输入jconsole,然后在“JConcole:连接到代理”对话框中选择“远程”选项,输入主机和端口,如何设置用户名和密码,则还要输入用户名和密码,如下图所示:
图3
使用jconsole监控远程应用的详细说明和使用可以参考官方文档Remote Monitoring and Management

三、配置Resin3.0.x接受JMX管理

在启动resin时加参数:
windows下

1
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下

1
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配置信息如下:

  • 无限制访问

    • -Dcom.sun.management.jmxremote
    • -Dcom.sun.management.jmxremote.port=9009
    • -Dcom.sun.management.jmxremote.ssl=false
    • -Dcom.sun.management.jmxremote.authenticate=false
  • 需要用户名和密码访问

    • -Dcom.sun.management.jmxremote
    • -Dcom.sun.management.jmxremote.port=9009
    • -Dcom.sun.management.jmxremote.ssl=false
    • -Dcom.sun.management.jmxremote.authenticate=true
    • -Dcom.sun.management.jmxremote.access.file=D:/temp/jmxremote.access
    • -Dcom.sun.management.jmxremote.password.file=D:/temp/jmxremote.password

打开jconsole,用本地或远程方式进入,在MBean选项中将看到resin的MBean,如下界面所示:
图4

五、配置Tomcat接受JMX管理

打开Tomcat的bin/catalina.bat,如果为linux或unix系统,则为catalina.sh文件。
找到

1
set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf \logging.properties

修改为:

  • 无限制访问
    在”rem —————————————————————————“下面添加一行:

    1
    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 —————————————————————————“下面添加一行:

    1
    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,如下界面所示:
图5