`
mengxs
  • 浏览: 28730 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从JMX 谈系统监控

阅读更多

参考: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一下。

 



 

分享到:
评论

相关推荐

    jmx监控activeMQ监控

    jmx监控ActiveMQ监控 jmx(Java Management Extensions)是一种Java技术,为Java...jmx监控ActiveMQ监控是一种非常有用的监控方式,可以帮助开发者和运维人员实时监控ActiveMQ的运行状态,提高系统的可靠性和稳定性。

    jmx监控weblogic,tomcat,websphere源码

    通过JMX,开发者可以实现自定义的监控解决方案,例如收集性能指标、触发警报或自动调整系统设置。这个项目为那些希望深入了解Java应用服务器监控并实现定制化管理的人员提供了一个有价值的参考。理解JMX的工作原理和...

    Hbase和Hadoop JMX监控实战

    5. 可以考虑将JMX数据集成到第三方监控系统(如Prometheus、Grafana或Zabbix)中,实现可视化展示和告警。 在实际操作中,`hbase-monitor`这个文件可能包含了监控配置、示例脚本或工具,用于帮助你更方便地实施上述...

    TongWeb7的JMX监控.doc

    总的来说,JMX 监控对于 TongWeb7 的运维至关重要,它提供了深入洞察应用运行状况的能力,有助于及时发现并解决潜在问题,确保系统的稳定性和高效率。在实际操作中,务必注意安全设置,避免未经授权的访问,并定期...

    通过jmx监控管理weblogic

    JMX(Java Management Extensions)是SUN创建的一套规范。BEA WebLogic Server实现了JMX大部分的API,并且提供了一个完全兼容JMX的控制台来管理各种资源。OPEN SOURCE的应用服务器JBoss也是基于JMX来实现。并且对之评价...

    JMX 远程服务器信息监控

    Java Management Extensions(JMX)是Java平台提供的一种标准管理框架,用于管理和监控应用程序、系统和服务。在本场景中,我们关注的是如何利用JMX来远程监控服务器上的关键资源,如CPU利用率、内存状态、已加载类...

    7.Coherence企业级缓存(六) JMX 管理和监控.pdf

    此时,JMX作为一种标准的Java平台管理系统接口,提供了统一的管理视图,使得管理员能够实时监控和调整Coherence集群的状态,从而实现性能优化和故障排查。 #### 启用JMX管理的配置 为了在Coherence集群中启用JMX...

    Zabbix通过JMX方式监控java中间件

    通过JMX,开发人员和系统管理员可以远程监控和管理运行中的Java应用。 #### 二、Zabbix-Java-gateway工作原理 Zabbix-Java-gateway是Zabbix为实现JMX监控而设计的一个组件。其工作流程如下: 1. **Zabbix Server...

    Java 版jmx 监控中间件weblogic

    Java版 jmx 监控weblogic 生成html

    jmx 监控 tomcat

    JMX(Java Management Extensions)是Java平台提供的一种标准管理框架,用于监控和管理应用程序、服务、设备等。在Tomcat这样的Java应用服务器中,JMX能够让我们深入洞察服务器的运行状态,包括内存使用、线程信息、...

    jboss远程调用JMX

    当我们谈论"jboss远程调用JMX"时,我们关注的是如何通过网络从一个JMX客户端连接到运行在JBoss服务器上的JMX服务,以便进行远程管理和监控。 首先,我们需要了解JMX的基本概念。MBean是JMX的核心,它是一个Java对象...

    java jmx 远程监控

    java jmx 远程监控

    论文研究-JMX技术在网络监控中的应用.pdf

    监控系统的复杂性、可扩展性和互操作性等问题,一直是IT运维管理人员关注的重点。为了解决这些问题,本文提出了采用Java管理扩展(JMX)技术的方案,来实现对IP网络管理中的网络监控任务进行有效的调配和管理。JMX是...

    jmx监控tomcat测试包

    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...

    jmx三种访问方式

    Java Management Extensions(JMX)是Java平台中用于管理和监控应用程序、操作系统、网络设备等资源的一种标准框架。通过JMX,开发者可以创建管理代理(MBeans),这些代理暴露了各种管理特性,使得系统管理员可以...

    jmx prometheus监控指标插件

    总的来说,"jmx prometheus监控指标插件"是连接Java应用程序与Prometheus监控系统的桥梁,它使得开发者能够充分利用Prometheus的强大功能来监控和优化基于Java的应用,提升系统的稳定性和性能。正确配置和使用这个...

    jmx测试包用于检查zabbix的监控项是否正常

    在Zabbix这样的企业级监控系统中,JMX接口可以用来获取应用程序的内部指标,如内存使用、线程状态、数据库连接等。 标题中的"jmx测试包用于检查zabbix的监控项是否正常",意味着这个测试包是为了解决一个特定的问题...

    JMX实战 JMX开发

    书中提供了几个典型的例子,兼顾各种开发平台,这些例子的代码稍作修改就可以直接应用于项目开发之中,代码源文件可以从图灵网站下载。本书内容广泛且深入,同时适用于各个层次的Web应用开发人员。

    JMX-how-to-use.rar_jmx_服务器_远程监控 文件

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备等资源。本文档“JMX如何使用”深入探讨了如何利用JMX在Java Web环境中进行远程服务器管理与监控。 1. ...

Global site tag (gtag.js) - Google Analytics