MX4J是一个开源JMX管理框架,支持JSR3 (JMX) 和JSR160 (JMX Remote API)。通过Spring将MX4J集成到我们的应用系统中,可以通过HTTP协议适配,能够基于Web的方式来实现对应用系统的监控和管理。这里,使 用的版本分别为:
MX4J 3.0.2
MX4J对应的几个JAR文件,加入到CLASSPATH:
首先,给出Spring的完整配置,如下所示:
上面配置中,比较核心的是MX4J的HTTP适配器类:mx4j.tools.adaptor.http.HttpAdaptor,它有一个 processor属性,使用MX4J已经实现的mx4j.tools.adaptor.http.XSLTProcessor来对其注入。 XSLTProcessor实现了MX4J定义的XML转换成为浏览器可以解析的格式的文档,就Web网页。
通过MX4J的源码可以看到,在mx4j-3.0.2/src/tools/mx4j/tools/adaptor/http/xsl目录下面,可以看到MX4J定义的一些XSLT模板,例如serverbydomain.xsl为Web控制台首页模板:
Spring配置中通过实例化一个HttpAdaptor,注册到MBean Server中,实现基于HTTP协议远程访问管理和监控。org.shirdrn.jmx.mx4j.MyConfiguration我们定义的一个 MBean,也注册到MBean Server中,实现JMX的管理与监控,代码如下所示:
但是,Spring配置中的 org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler 对MBean暴露的操作进行了限制,主要是通过我们定义的接口 org.shirdrn.jmx.mx4j.SelectedMethodsInterface来指定需要将MBean的哪些内容暴露给JMX管理,接口 如下所示:
最后,我们可以初始化Spring的IOC容器,启动MX4J的HttpAdaptor服务,实现通过Web控制台的JMX管理,代码如下所示:
启动成功后,可以通过浏览http://192.168.1.102:9988 ,可以看到我们注册的MBean,并对其进行管理和监控。