参考:http://www.mengxiansheng.net/index.php/archives/66
jmx介绍:
http://en.wikipedia.org/wiki/Java_Management_Extensions 写道写道
Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices (e. g. printers) and service oriented networks. Those resources are represented by objects called MBeans (for Managed Bean). In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed by Java Dynamic Management Kit.
JMX 1.0, 1.1 and 1.2 were defined by JSR 003[1] of the Java Community Process. As of 2006, JMX 2.0 is being developed under JSR 255.[2] The JMX Remote API 1.0 for remote management and monitoring is specified by JSR 160.[3] An extension of the JMX Remote API for Web Services is being developed under JSR 262.[4]
系统/应用/网站监控:
在开源的时代,只要你有足够的学习能力,完成一个系统/网站几乎不会存在技术难题,但对于系统的性能监控,重要功能性能指标的监控,数据库并发数量的监控等等问题同时也需要我们去实现。这时JMX就必须被提及了,开源架构配合JMX可以很容易的完成系统的监控功能。
更多jmx资源:
http://en.wikipedia.org/wiki/Java_Management_Extensions
http://www.oracle.com/technetwork/articles/javase/jmx-138825.html#1
体验JMX的强大之处:
童鞋们是否使用过weblogic、websphere 、oracle as这样的商用服务器,如果使用过你一定对它的管理控制台的能力印象深刻,我们可以通过他们的管理控制台去监控JVM 堆栈的使用情况,可以执行JVM 垃圾回收,可以配置数据库连接池的参数且不用重启服务就可以生效,试想它们是如何实现这样强大的功能的?
jmx,使用jmx可以很轻易的去监控系统中重要线程的运行情况,如数据缓冲池、自定义对象缓冲池的使用等等,并且可以去监控JVM虚拟机的运行情况,且可以远程调用jvm的垃圾回收。
jmx实战:
现在主流的SSH框架已经深入人心,使用spring可以让jmx变的更加容易,将jmx融入我们的系统中可以让系统更加强健,更加具有可维护性,当系统发生故障时我们可以通过jmx远程查看主要功能的运行状况,以对系统故障做出客观的判断,这对后期维护很重要,下面的案例以spring+jmx 将项目运行在jetty上 为例(因为spring对jmx做了很好的整合,可以减少很多工作)。
1.spring 配置文件
<!--通过jmx实现对城市新闻实体对象缓冲池的监控、参数调整的功能,export 是将制定的bean暴漏给jmx,使其可以通过远程jconsole可以进行控制-->
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter"
lazy-init="false">
<property name="beans">
<map>
<entry key="bean:name=cityNewsPoolMbean" value-ref="cityNewsPoolMbean" />
</map>
</property>
</bean>
<!--可以让jconsole进行远程查看参数,修改参数bean对象,JikePoolMbean 是一个普通事java bean,里面是get**、set**方法-->
<bean id="cityNewsPoolMbean" class="com.jike.mobile.JikePoolMbean">
<constructor-arg index="0"
type="org.apache.commons.pool.impl.GenericObjectPool" ref="cityNewsClientObjectPool"/>
</bean>
2.简单的测试项目完成后,将项目部署到jetty,启动jetty
到 JETTY_HOME 目录下,运行下面命令(在ubuntu下,上jetty后台运行):
nohup java -server -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=7080 -Dcom.sun.management.jmxremote -Xms1024m -jar start.jar>start.out 2>&1 &
上面的命令启动7080为JMX的监控端口,同时加入了jvm时的其他参数,可根据个人需求对参数进行增减。
使用sudo netstat -nlp|grep 7080 命令查看 是否启动成功
3.使用本机jconsole监控JVM,调整系统参数配置
在windows下运行 JAVA_HOME/bin/jconsole.exe ,创建一个远程连接,连接端口是7080,就会看到远程服务器JVM的内存信息,线程信息及cpu使用情况等
或者使用java visualvm ,运行 visualvm后添加 jconsole等插件即可,具体操作可以google一下。
分享到:
相关推荐
activeMQ开启jmx固定rmi端口,穿透防火墙,用了一天的时间,踩了无数的坑,拿出来共享.
Hbase和Hadoop JMX监控实战
java项目,自己做的项目利用jmx监控weblogic,tomcat,websphere源码
7.Coherence企业级缓存(六) JMX 管理和监控.pdf
Zabbix通过JMX方式监控java中间件 Zabbix2.0添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”;它是用java写的一个程序。 工作原理: zabbix_server想知道一台主机上的特定的JMX值时,它向...
Java版 jmx 监控weblogic 生成html
使用JMX实现对远程服务器端的信息监控:包括CPU,内存,加载类,堆信息等数据
TongWeb常见问题处理,用于运维的问题处理,便于解决应用部署时遇到的各种问题...
jmx 监控 tomcat 的设置方法,实现
JMX(Java Management Extensions)是SUN创建的一套规范。BEA WebLogic Server实现了JMX大部分的API,并且提供了一个完全兼容JMX的控制台来管理各种资源。OPEN SOURCE的应用服务器JBoss也是基于JMX来实现。并且对之评价...
java jmx 远程监控
catalina-jmx-remote.jar放到tomcat/lib目录下 如果是windows版本,编辑TOMCAT_HOME/bin/catalina.bat,在开头加入下面几行: set CATALINA_OPTS=%CATALINA_OPTS% -Djava.rmi.server.hostname=JMX_HOST set CATALINA...
书中提供了几个典型的例子,兼顾各种开发平台,这些例子的代码稍作修改就可以直接应用于项目开发之中,代码源文件可以从图灵网站下载。本书内容广泛且深入,同时适用于各个层次的Web应用开发人员。
Java分布式应用学习笔记08JMX规范与各种监控场景
jmx prometheus监控指标插件,可以将jmx指标以prometheus的形式展示
分析了当前网络监控中面临的主要问题,提出了采用JMX方案来解决的办法。介绍了JMX的技术特点,并采用该技术实现了IP网络管理中的网络监控任务的调配和管理。
为什么JMX那么受欢迎,JMX到底有那些优势只得人们去学习和理解,本文从JMX的基本架构、hellowold jmx以及spring对JMX的支持讲起,希望大家能通过本文对JMX有个基础的认识,并能通过本文为今后学习JMX打个基础
catalina jmx remote jmx 监控 tomcat 资源
NULL 博文链接:https://jonerxq.iteye.com/blog/1990872
jmx快速上手 jmx快速上手 jmx快速上手 jmx快速上手