【问题标题】:Is there any JMX - REST bridge available?是否有任何可用的 JMX - REST 桥接器?
【发布时间】:2009-10-15 10:51:09
【问题描述】:

您好,我想使用浏览器监控 Java 应用程序,但同时利用现有的 JMX 基础架构。

我知道 JMX 提供了一个 HTTP 接口,但我认为它提供了一个标准的 web gui,并且不可能将其功能与现有系统混搭。

您知道 JMX 的任何 REST 接口吗?

我目前对谷歌的研究表明,有一个project 做了类似的事情。这是唯一的选择吗?

【问题讨论】:

    标签: http rest jmx


    【解决方案1】:

    Jolokia 是一个新的(此时)JMX 代理,您可以安装在您的 JVM 中,并通过 HTTP 以 JSON 格式公开 MBeanServer。

    【讨论】:

      【解决方案2】:

      Tomcat 在其管理器应用程序中提供JMX Proxy Servlet。我不认为它完全是 REST,但它是无状态的,并且是由简单的 HTTP 请求构建的,所以它应该足够接近。

      【讨论】:

      • Tomcat JMX 代理不支持 JSON、XML 或其他编码类型。实际上它不支持 header 中的 Accept 键。
      【解决方案3】:

      为了后代,我最近在我的 SimpleJMX 包中添加了一个小型 Web 服务器。如果在类路径中,它将通过 Jetty 从平台 MBeanServer 向 HTTP 公开 bean。还有所有页面的文本版本,便于抓取。

      // create a new JMX server listening on a specific port
      JmxServer jmxServer = new JmxServer(8000);
      jmxServer.start();
      
      // register any beans to jmx as necessary
      jmxServer.register(someObj);
      
      // create a web server publisher listening on a specific port
      JmxWebServer jmxWebServer = new JmxWebServer(8080);
      jmxWebServer.start();
      

      有一个little test program 显示它正在运行。这是从浏览器访问的java.lang:type=Memory 的图像。如您所见,输出是非常基本的 HTML。

      【讨论】:

      • 我真的很喜欢这个项目,但可能值得指出的是,连接器在 jetty 9 上不起作用,所以请使用 jetty 8。
      • 所以我尝试在 SimpleJMX 1.10 版 @ShawnVader 中添加 Jetty 9 支持。估计不行?不幸的是,我没有 Java 7,所以我自己无法测试 9。如果您希望我帮助您使其正常工作,请通过 256.com/gray/email 联系我。
      【解决方案4】:

      您可能想看看jmx4perl。它带有一个代理 servlet,它将 REST 请求代理到本地 JMX 调用并返回一个带有答案的 JSON 结构。它支持读取、写入、执行、列表(mbean 列表)和搜索操作,并且知道如何通过类似 XPath 的表达式深入研究复杂的数据结构。查看协议说明了解更多详情。

      即将发布的版本也可以处理批量(== 一次多个)请求,并增加了发布 JSON 请求以替代纯 REST GET 请求的可能性。

      在下一个版本中,将支持代理模式,因此不需要在目标平台上部署代理 servlet,而只需在中间代理服务器上部署。

      【讨论】:

        【解决方案5】:

        MX4J 是另一种选择。从它的主页下面引用 -

        MX4J 是一个项目,旨在构建 Java(TM) 管理扩展 (JMX) 和 JMX Remote API (JSR 160) 规范的开源实现,并构建与 JMX 相关的工具。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-02-04
          • 1970-01-01
          • 1970-01-01
          • 2021-02-23
          • 2020-06-19
          • 2021-08-11
          相关资源
          最近更新 更多