JMX实现远程服务器Tomcat系统监控之一

本文介绍了如何利用JMX对远程Tomcat服务器进行系统监控,包括CPU、堆内存使用情况。通过在Tomcat配置中启用JMX远程监控,并通过`jconsole`连接到服务,可以获取详细的JVM和操作系统信息。示例代码展示了如何获取和操作MBean以获取监控数据。

最近做多个远程服务器的系统监控,花费了不少的时间,下面就做一个总结

从JAVA 5开始,JDK提供了一些JVM检测的API,这就是有名的java.lang.management 包,包里提供了许多MXBean的接口类,可以很方便的获取到JVM的内存、GC、线程、锁、class、甚至操作系统层面的各种信息,本文就简单的介绍一种利用JMX对JAVA进程进行CPU、堆内存使用的监控。可能有人会觉得没必要这样做,因为用jconsole之类的工具都能做到,而且会比本文的例子更详细。但是有些时候将console不一定能监控到作为系统服务的java进程,我最近就不得不自己编码去获取远程java进程的监控数据。希望能起到抛砖引玉的作用吧。

第一步:向被监控的服务器Tomcat中添加一段配置代码

详情:http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html#Enabling_JMX_Remote

打开Tomcat的bin文件夹下的catalina.bat文件(用文件编辑软件打开)

添加如下代码:


set CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8787 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

2 启动tomcat服务,调用jconsole监视器查看里面的MBean

在CMD中输入 : jconsole



在远程哪儿输入:

service:jmx:rmi:///jndi/rmi://192.168.85.54:8787/jmxrmi  (替换服务器tomcat所在的ip)


可以显示如下图:包括CPU占用率,堆信息,非堆信息,类加载,内存使用情况等,如下图


点开右边的MBean,我们可以获取其对应MBean的ObjectName,然后通过属性和做操的Key值获取想要的数据,如下图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值