官网: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. 自学华为IoT物联网_09 OceanConnect业务流程

    点击返回自学华为IoT物流网 自学华为IoT物联网_09 OceanConnect业务流程 1.  物流网重要的连个协议介绍 1.1  重要物联网协议介绍----MQTT MQTT(消息队列遥测传输) ...

  2. 【LOJ#2542】[PKUWC2018]随机游走(min-max容斥,动态规划)

    [LOJ#2542][PKUWC2018]随机游走(min-max容斥,动态规划) 题面 LOJ 题解 很明显,要求的东西可以很容易的进行\(min-max\)容斥,那么转为求集合的\(min\). ...

  3. 【LOJ#6060】Set(线性基)

    [LOJ#6060]Set(线性基) 题面 LOJ 题解 好题啊QwQ. 首先\(x1\oplus x2=s\)是定值.而\(s\)中假设某一位上是\(1\),则\(x1,x2\)上必定有一个是\(1 ...

  4. django rest framework mixins

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXQAAAEZCAIAAAAIa0mAAAAU/0lEQVR4nO2d247cxoGG5y3yKH6AAf

  5. Linux下搜狗输入法和快捷键Ctrl+Space冲突的解决

    配置快捷键(不是搜狗的设置) 把搜狗的启动快捷键给删了(如果有两个键盘[英+中],你按Shift就可以切换了,完全没必要占着茅坑) 其他快捷键冲突在键盘里面设置 over

  6. pycharm安装TensorFlow

    一.首先说下我在安装TensorFlow的过程中遇到的坑: 1.python的版本是3.5的版本,因为TensorFlow好像只支持到3.5现在.然后python需要安装64位的安装包,如果安装的是3 ...

  7. webpack入门(二)what is webpack

    webpack is a module bundler.webpack是一个模块打包工具,为了解决上篇一提到的各种模块加载或者转换的问题. webpack takes modules with dep ...

  8. c# 获取机器硬件信息 (硬盘,cpu,内存等)

    using System; using System.Collections.Generic; using System.Globalization; using System.Management; ...

  9. Vue+Django2.0 restframework打造前后端分离的生鲜电商项目(2)

    1.restful api介绍 1.前后端分离的优缺点 1.为什么要用前后端分离 1.pc.app.pad多端适应 2.SPA(单页面应用)开发模式开始流行 3.前后端分离职责不清 4.开发效率问题, ...

  10. 灰度发布/AB test

    背景 互联网产品有一个特点,就是不停的升级,升级,再升级.一般采用敏捷开发的团队,基本上保持每周一次的发布频率,系统升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系 ...