技术开发 频道

从黑箱到企业:JMX 集成动手实践

        远程 JMX 的两难境地

  网络管理应用程序或分布式服务可以通过 远程 JMX(JMX Remoting)的方式跨网络地访问 JMX 代理,远程 JMX 也是 JSR 160 的主旨所在。远程 JMX(JMX Remoting)也是即将发布的 JMX 1.2 参考实现发行版的新的主要特征。

  JSR 160 将详细说明在一个网络上应该如何执行 JMX 代理的发现以及远程访问代理能力的具体方式。这将包括一些有关所使用的协议适配器的具体细节。在最终完成远程 JMX 1.2 规范之前(很可能在 2003 年发布),我们必须寻找一种在 OpenNMS 和用来管理 ClickMeter MBean 的 JMX 代理之间进行通信的替代方法。

  一个可实施的提供远程 JMX 的解决方案

  当然,JMX 代理的主要目的之一是提供对它所管理 JMX MBean 的远程访问(虽然,可以将某些 JMX 代理设计成增值服务,可能不会公开它们所有的受管 MBean)。代理可以使用连接器和协议适配器来与 NMS 应用程序或分布式服务进行通信。

  在 ClickMeter 这种情况中,我们使用 JMX 参考实现中的一个简单的代理,这个实现包括了一个 HTTP 协议适配器。这个简单的代理通过 HTTP 协议适配器公开它管理的所有 MBean 的属性和操作。

  使用 HTTP 适配器将工作降至最少

  可以方便地使用 JMX 参考实现中的这个简单代理和 HTTP 协议适配器来进行 OpenNMS 和 ClickMeter MBean 之间的通信。图 3 显示了我们所提议的通信方法。在操作期间,OpenNMS 的 capsd 将扫描已检测到的节点,以确定是否支持“CLICKMETER”服务。轮询器守护程序 pollerd 将定期轮询已检测到的服务以确保它们是可操作的。为了提供这两种探测,可以使用由 ClickMeter MBean 公开的 incPanelValue 操作。使用 incPanelValue 作为探测机制所带来的好处是我们能够以可视化的方式看见 OpenNMS 的检测和轮询操作。每一次探测会使 ClickMeter 的值递增。

  图 3. 用 HTTP 适配器访问 ClickMeter

  然后,唯一剩下要做的是,确定如何使用 HTTP 协议适配器来访问对 ClickMeter MBean 的 incPanelValue 操作。可以使用浏览器来访问 JMX 代理,其中 URL 为:

1 http://<host of agent>:8082/

  当然,在做这之前,请确保该代理正在运行。(如果您需要重新温习如何去做,请参阅本系列的 第 2 部分)。然后,单击按钮,尝试执行已公开的 incPanelValue 操作。您应该看到类似于图 4 的页面。

  图 4. 确定探测 URL

  在图 4 中,请注意用来访问该操作的所使用的 URL 为:

1 http://<host of agent>:8082/InvokeAction//MBean:name=ClickMeter/
2 action=incPanelValue?action=incPanelValue
3

  还要注意,如果 ClickMeter 应用程序运行正确,产生的页面将包含短语 incPanelValue Successful。我们将用该信息来从 OpenNMS 远程地访问 MBean。

  

0
相关文章