• 细说tomcat之应用监控


    官网:http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html

    Java应用程序的监控通过JMX实现,详见:https://docs.oracle.com/javase/tutorial/jmx/

    一. 监控配置
    对于Java Web应用程序而言,如果需要监控其当前运行状态,比如:内存,线程等情况。有2种方式:
    (1)如果Web应用使用嵌入式容器(如:嵌入式Jetty或Tomcat),则在启动应用时启用JMX远程监控即可。

    test-javamonitor是一个使用了嵌入式Servlet容器的Java Web应用,启动时开启JMX远程监控。

    java -jar -Dcom.sun.management.jmxremote 
    -Dcom.sun.management.jmxremote.port=%my.jmx.port% 
    -Dcom.sun.management.jmxremote.ssl=false 
    -Dcom.sun.management.jmxremote.authenticate=false 
    test-javamonitor.jar

    (2)如果Web应用直接部署在容器中,则不能直接监控到应用本身。这时可以开启容器的JMX远程监控,间接地监控应用的运行状态。
    在Tomcat下,开启JMX远程监控很简单,分为在Windows平台和Linux平台2种情况说明。
    其一,在Windows平台,开启Tomcat JMX远程监控:
    新建文件${CATALINA_HOME}/bin/setenv.bat,内容如下:

    set CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=%my.jmx.port% -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

    其二,在Linux平台,开启Tomcat JMX远程监控:
    新建文件${CATALINA_HOME}/bin/setenv.sh,内容如下:

    CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=%my.jmx.port% -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

    特别说明:
    参见上述开启JMX远程监控示例,并没有开启远程访问认证,即:-Dcom.sun.management.jmxremote.authenticate=false。
    如果需要开启访问认证,还需要指定相应认证参数,如下所示:

    -Dcom.sun.management.jmxremote.authenticate=true
    -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access
    -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password

    在${CATALINA_HOME}/conf/jmxremote.access文件中定义访问用户身份信息,格式如下:

    monitorRole readonly
    controlRole readwrite

    如上,定义了2个用户:monitorRole只能读取监控信息,controlRole具备读写权限,可以执行JMX管理操作。

    在${CATALINA_HOME}/conf/jmxremote.password文件中定义访问用户密码信息,格式如下:

    monitorRole tomcat
    controlRole tomcat

    monitorRole用户密码为:tomcat,controlRole用户密码为:tomcat。
    注意:在开启Tomcat远程监控访问认证的情况下,${CATALINA_HOME}/conf/jmxremote.password文件只能允许被运行Tomcat实例的操作系统用户访问,且只能有读权限
    否则无法启动Tomcat,报错:

    错误: 必须限制口令文件读取访问权限: ../conf/jmxremote.password


    以root用户启动tomcat实例,查看tomcat进程:

    显然,tomcat实例是操作系统root用户启动的。则${CATALINA_HOME}/conf/jmxremote.password文件只能对root用户具备可读权限,即:

    二. 查看监控数据

    jdk中已经自带了非常方便的监控工具,如:jconsole,jvisualvm。
    运行jconsole,新建连接:

    如果配置了监控访问认证,输入对应用户名和口令。

    完毕!

  • 相关阅读:
    秦腾与教学评估【前缀和+二分】
    c++中成员函数声明时const得作用
    分形【递归】
    飞行兄弟【二进制枚举+异或】
    爬取4k图片网图片
    爬虫爬取博客园文章的文字【练手】
    【YBTOJ】求 f 函数
    【YBTOJ】划分数列
    【学习笔记】高斯消元法
    【Luogu P4588】 [TJOI2018]数学计算
  • 原文地址:https://www.cnblogs.com/nuccch/p/7070789.html
Copyright © 2020-2023  润新知