欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2025/3/12 51 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java jmx 监控_只用五分钟为系统实现基于JMX的监控 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

早期是作为J2EE的一部分, 因此总给人一种开发起来会很"重"的感觉, 这让不少Java程序员宁愿选择自行实现"轻量级"方案. 时至今日, 借助一些优秀的开源项目, JMX 也可以用起来很"轻".

pojo-mbean 使用Annotation对MBean进行声明, 省去不少 JMX规范中要求的罗嗦代码, 不知道有多罗嗦的请见 这里 . 例如, ManagableServer 希望被声明为一个MBean, 只有两个步骤:

注解

@MBean(objectName="jsmx:type=Demo")

class ManagableServer {

@ManagedAttribute

public long getCount() {...}

@ManagedAttribute

public int getGauge() {...}

@ManagedOperation

public void shutdown() {...}

}

注册

ManagableServer mBean = new ManagableServer();

new MBeanRegistration(mBean).register();

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

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

使用 jolokia 访问MBean

jconsole 作为JDK自带的们免费工作还是很强大的, 它提供JVM最基本的监控能力, 然而默认的RMI通讯方式可能会由于安全原因而被限制使用.

jolokia 实现了通过HTTP+JSON的方式访问MBean, 很好的解决这个问题. 无需额外编写代码便可使用, 只需要在启动命令中指定 -javaagent 选项即可实现:

java -javaagent:/path/to/jolokia-jvm-jdk6-x.xx-agent.jar=port=7777,host=localhost -cp ...

开发一个真正满足应用的 web console 肯定不是5分钟能够搞定的, 专业的监控平台还是有很多可供使用的, Ganglia 便是其中之一.

如题所述, jmxetric 就提供方便与 Ganglia 集成解决方案, 同样无需额外编写代码, 实现的两个步骤是:

声明数据采集点

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 中的效果是:

结束语

细节是魔鬼! "5分钟"虽有点标题党, 但丰富的开源资源确实令JMX使用变的超级容易啦.完整的Demo在 这里 . 期待更多更好更有创意的做法!

总结

以上是生活随笔为你收集整理的java jmx 监控_只用五分钟为系统实现基于JMX的监控的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。