官网: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,新建连接:

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

完毕!

细说tomcat之应用监控的更多相关文章

  1. Tomcat开启JMX监控 visualvm

    Tomcat开启JMX监控 https://blog.csdn.net/dongdong2980/article/details/78476393

  2. Tomcat java zabbix 监控

    排除汤姆猫错误的步骤 ps-ef | grep java或jps –lvm 查看java pid进程 netstat –lntup | grep java 查看java 端口有没有启动 查看 tomc ...

  3. linux 配置tomcat运行远程监控(JMX)

    在实际使用中,我们经常要监控tomcat的运行性能.需要配置相应的参数提供远程连接来监控tomcat服务器的性能.本文详细介绍如何一步一步的配置tomcat相应参数.允许远程连接监控. 工具/原料 v ...

  4. Tomcat 配置 Probe 监控

    转至:http://9771104.blog.163.com/blog/static/19446622009811112836524/ 手上接触Tomcat的项目越来越多,虽说tomcat的manag ...

  5. 【监控】使用probe对tomcat服务进行监控

    1.运行环境(博主本地) JDK:jdk1.6 Tomcat:tomcat7 OS:Windows10 2.下载 点击下载 3.安装运行 1.解压,将probe文件夹复制放进tomcat里面的weba ...

  6. zabbix监控tomcat(使用jmx监控,但不使用系统自带模版)

    一,zabbx使用jmx监控tomcat的原理分析 1.Zabbix-Server找Zabbix-Java-Gateway获取Java数据 2.Zabbix-Java-Gateway找Java程序(j ...

  7. JaCoCo在Tomcat服务器上监控代码覆盖率的使用方法

    简介 Jacoco是一个开源的覆盖率工具.Jacoco可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序.很多第三方的工具提 ...

  8. tomcat健康检查监控脚本

    #!/bin/sh#自动监控tomcat脚本并且执行重启操作#获取tomcat_IDTomcatID=`ps -ef|grep tomcat|grep -v "grep"|grep ...

  9. cacti系列(二)之cacti添加对tomcat服务器的监控

    cacti添加对tomcat的监控 1.首先下载监控tomcat的模板 TomcatStats-0.1.zip    2.导入模板 (cacti_host_template_tomcat_server ...

随机推荐

  1. 【同步复制常见错误处理3】找不到存储的过程 sp_MSins_tablename

    环境在SQL2008 R2同步复制时出错 这个错误提示是由于在订阅端没有找到同步时调用的同步存储过程,MS错误说明: 当某个事务发布在 SQL SERVER自动同步设置选择订阅服务器插入. 更新和删除 ...

  2. 在一个字符串(1<=字符串长度<=10000,全部由大小写字母组成)中找到第一个只出现一次的字符,并返回它的位置

    // test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  3. css重置样式表reset.css

    body, h1, h2, h3, h4, h5, h6, hr, p, blockquote,/* structural elements 结构元素 */ dl, dt, dd, ul, ol, l ...

  4. ssm+jsp+自定义标签实现分页,可以通用(前端实现)

    近期做了一些分页方面的开发,大致梳理一下 1 jsp页面上关于分页的代码 <tr> <td colspan="9"> <ule1:pagination ...

  5. 什么是j2ee ??EJB与j2ee的关系?? 请看百度百科

    首先,EJB是j2ee的一部分. http://baike.baidu.com/link?url=SGmNOVWoaZ62WCjb7a_yzz-GBGsDT3jyFM1hsvv8ycAwusdmo_D ...

  6. 小tip:生成一组不重复的随机数(去重的方法)

    var arr = []; for(var i=0;i<150;i++){ // num为0-100的随机数 var num = Math.round(Math.random()*100); v ...

  7. Web APP &amp; 弹窗插件

    Web APP & 弹窗插件 移动端弹窗插件 alert.confirm.toast.notice 四种类型弹窗 jQuery & Zepto https://github.com/s ...

  8. 第n次搭建 SSM 框架

    什么说第 N 次搭建SSM框架呢? 刚学习java的时候,搭建 SSM 框架想做一个个人项目之类的,后来没搭起来,也就拖延了,进入公司之后,接触的第一个项目就是SSM的,模仿了一下,也能搭个简简单单的 ...

  9. mysql的并发控制

    并发即指在同一时刻,多个操作并行执行.MySQL对并发的处理主要应用了两种机制——是"锁"和"多版本控制". 1.并发控制 MySQL提供两个级别的并发控制:服 ...

  10. 阿里云OSS图片云存储测试上传

    在开发DEMO之前首先要确定 你开发OSS服务并获取了 accessKeyId和accessKeySecret final String key = MD5.Md5(DateFormat.format ...