我正在使用Nagios进行监视 - 并在给定框中查看NPRE以进行各种监视。我有一些java进程 - 通过JMX等“窥探它们”会很好。如果不启动JVM并远程连接,我看不到一种方法来实现这一点。通过来自非java客户端的JMX调用/监视JVM
任何想法?
我正在使用Nagios进行监视 - 并在给定框中查看NPRE以进行各种监视。我有一些java进程 - 通过JMX等“窥探它们”会很好。如果不启动JVM并远程连接,我看不到一种方法来实现这一点。通过来自非java客户端的JMX调用/监视JVM
任何想法?
我相信你可以通过RMI-IIOP连接到JMX服务,我相信这是Java的CORBA。我相信这意味着您可以使用任何COBRA客户端连接到RMI-IIOP Java服务。请查看JBoss IIOP,我相信这只是你想要的,只有它是JBoss特有的。
也许使用JAX-WS或JAX-RS(即Web服务)简单地包装要导出的JMX服务可能更容易?然后你可以使用普通的'HTTP来访问你想要的东西。
其实it seems someone has done exactly that!我想你想获得的东西,如:
http://<host>:<port>/rest/jmx/java.lang:type=Memory/NonHeapMemoryUsage/commited
整个项目可在https://opendmk.dev.java.net/contributions/rest-adaptor/readme.html:
宁静的JMX适配器
该项目 OpenDMK贡献提供了一个HTTP 以RestFul方式访问JMX信息。发表在the JMX NetBeans blog的一篇文章,详细介绍了 的方法。
另一个(一样吗?)的项目可在https://ws-jmx-connector.dev.java.net/
对于Nagios的监控JMX jmx4perl是一个完美的解决方案,因为它具有丰富的Nagios插件check_jmx4perl功能已经来了。它使用Jolokia,它是通过JSON/HTTP桥接JMX的代理程序,并具有高级功能,如细粒度安全性或批量请求,这些功能不适用于传统的JSR-160连接器。它也在积极开发之中,而上述REST方法似乎在2008年停滞不前(这也是2009年5月启动jmx4perl的原因)。顺便说一句,JSR-262“用于Java管理扩展(JMX)代理的Web服务连接器”很不幸地处于“非活动状态”,因此我不期望从这方面取得很多进展。
很高兴知道,谢谢。我很喜欢纳吉奥斯,它已被证明是非常值得信赖的。 – 2011-01-26 23:27:08
heh - 我最后偶然做了一个简单的RESTful事件(几行代码),但这很好理解!毕竟我没有疯狂! – 2010-09-01 06:18:51