ITPub博客

首页 > 应用开发 > Java > 只用五分钟为系统实现基于JMX的监控

只用五分钟为系统实现基于JMX的监控

Java 作者:壹頁書 时间:2015-12-31 17:56:38 1 删除 编辑
转载自:
http://my.oschina.net/zhongl/blog/29075

JMX 早期是作为J2EE的一部分, 因此总给人一种开发起来会很"重"的感觉, 这让不少Java程序员宁愿选择自行实现"轻量级"方案. 时至今日, 借助一些优秀的开源项目, JMX 也可以用起来很"轻".
使用 pojo-mbean 声明MBean
pojo-mbean 使用Annotation对MBean进行声明, 省去不少 JMX规范中要求的罗嗦代码, 不知道有多罗嗦的请见 这里 . 例如, ManagableServer 希望被声明为一个MBean, 只有两个步骤:

注解

  1. @MBean(objectName="jsmx:type=Demo")  
  2. class ManagableServer {  
  3.    
  4.     @ManagedAttribute  
  5.     public long getCount() {...}  
  6.    
  7.     @ManagedAttribute  
  8.     public int getGauge() {...}  
  9.    
  10.     @ManagedOperation  
  11.     public void shutdown() {...}  
  12. }  

注册
  1. ManagableServer mBean = new ManagableServer();  
  2. new MBeanRegistration(mBean).register();  

运行之后, 你可以通过 jconsole 查看到已经发布的MBean.



如果 jconsole 就可以满足你对监控的要求, 那么下文的内容大可不必再看啦.

使用 jolokia 访问MBean
jolokia 实现了通过HTTP+JSON的方式访问MBean, 很好的解决这个问题. 无需额外编写代码便可使用, 只需要在启动命令中指定 -javaagent 选项即可实现:
 
java -javaagent:/path/to/jolokia-jvm-jdk6-x.xx-agent.jar=port=7777,host=localhost -cp ...
再使用 jolokia 提供的 javascript API 便可打造一个超轻量的 web console, 如图:




使用 jmxetric 与 Ganglia 集成
开发一个真正满足应用的 web console 肯定不是5分钟能够搞定的, 专业的监控平台还是有很多可供使用的, Ganglia 便是其中之一. 
如题所述, jmxetric 就提供方便与 Ganglia 集成解决方案, 同样无需额外编写代码, 实现的两个步骤是:
声明数据采集点
  1. <jmxetric-config>  
  2.   <jvm process="JSMX" />  
  3.   <sample delay="10">  
  4.     <mbean name="jsmx:type=Demo" pname="Demo">  
  5.       <attribute name="count" type="int32" pname="Count" />  
  6.       <attribute name="gauge" type="int32" pname="Gauge" />  
  7.     </mbean>  
  8.   </sample>  
  9.   <ganglia hostname="localhost" port="8649" mode="multicast" wireformat31x="true" />  
  10. </jmxetric-config>  

启动时(javaagent )加载
 
java -javaagent:/path/to/jmxetric-0.0.x.jar=config=etc/jmxetric.xml,wireformat31x=true -cp ...

在 jmxetric -0.0.6中, 若要设置wireformat31x为true只有在 javaagent option中设置才能生效, 详情请见 issue25 .
在 Ganglia 中的效果是:

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29254281/viewspace-1969305/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    620
  • 访问量
    6339922