| 在我们的早期文章中(WLDJ, Vol. 3, issue 5),我们讨论了可管理性设计的重要性。通过学习一个在线购物应用程序 DizzyWorld 的案例,我们展示了开发人员围绕应用程序可管理性的观点。这包括在 BEA WebLogic 平台上开发一个 JMX MBean 和使用一个 Java 页面流。
在我们的早期文章中(WLDJ, Vol. 3, issue 5),我们讨论了可管理性设计的重要性。通过学习一个在线购物应用程序 DizzyWorld 的案例,我们展示了开发人员围绕应用程序可管理性的观点。这包括在 BEA WebLogic 平台上开发一个 JMX MBean 和使用一个 Java 页面流。
在本文中,我们从操作员的观点观察可管理性。我们将显示如何定义管理度量并且映射到 JMX MBean,以及如何利用 HP OpenView 收集和监视这些度量。最终的目标是更好地说明如何在您的应用程序中设计可管理性,然后如何利用该数据构建一个真正的自适应 IT 环境。我们将从有关 HP OpenView 架构如何支持 BEA WebLogic 平台管理的背景知识开始。
背景知识
让我们快速地介绍一下 HP OpenView,它由一个管理产品套件组成。对于本文的例子,我们将为 BEA WebLogic 服务器使用 HP OpenView Operations(OVO)和 Smart Plug-in(SPI)。IT 操作人员可以使用 OVO 和各种 SPI 来管理整个 IT 基础设施。这包括管理 J2EE 服务器、数据库、操作系统和其他 IT 资源的群集。在某些情况中,OVO 允许在所有这些系统和组件之间相互关联管理数据的能力。在该场景中,我们将结合 SPI,利用 OVO 来提供一个管理解决方案,从而允许一个操作员主动监视和管理在 WebLogic 平台上运行的 DizzyWorld 应用程序。
在 OVO 架构中有三个基本组件:代理、管理服务器和显示站(如图 1 所示)。代理负责与每个被管理资源进行交互。管理服务器包括多个管理器,根据代理所捕获的事件主动地发送和显示消息。然后,显示站提供被管理环境的单一视图。
图 1
OVO 通过使用不同的管理技术来监视、控制和报告 IT 环境的健康状况,这些技术包括 SNMP、ARM、WBEM、CIM以及 JMX。OVO 和 WebLogic SPI 利用 WebLogic 平台上的 JMX 所显示的被管理资源。操作员可以管理和监视任何 WebLogic 实例以及运行在这些服务器上的任何启用 JMX 的应用程序。当执行诊断时,操作员可以启动和停止 WebLogic 或者开始跟踪和监视一个特定 WebLogic 服务器实例。而且,它们可以轻松地发现一个最新部署的 WebLogic 实例,该实例运行在网络中的某些机器上,并且将它添加到它们的管理视图中。这可以为网络或系统管理员节省宝贵的时间。
而且,SPI 可以访问超过 50 个不同的预先定义的度量,这些度量可以用于管理目的。开发人员可以使用这些度量来获得各种信息,例如一个 servlet 的平均执行时间,每分钟内 EJB Bean 在空闲池中不可用的平均次数,或者 JMS 队列已经被填满的百分比。这些度量是通过 WebLogic 平台所提供的 JMX MBean 定义的。
操作员使用这些度量创建报告和图表或者监视 WebLogic 平台的某些方面。这些监视能力是基于 OVO 策略概念的。这些策略中的设置定义在 WebLogic 服务器内部进行监视的各种条件和阈值。一旦开始使用,WebLogic SPI 策略允许信息被发回到OpenView 操作管理服务器,以帮助操作员主动地解决应用程序问题并避免对其商业的严重破坏。
如图 2 所示,WebLogic SPI 执行许多步骤,从而为每个度量收集 JMX 数据:
图 2
1.根据在 OVO 中定义的调度规则,启动 OVO 监视器代理。
2.JMX 收集器:
- 访问一个用户定义的度量(UDM)文件,它包含到 JMX 对象和属性的引用,
- 与 WebLogic 平台中运行的 MBean 服务器进行通信,并且检索数据,
- 执行任何计算并且将值提交给 OVO 监视代理,在那里将它们与已定义的阈值进行比较。
3.根据比较结果,可能向 OVO 控制台发送一个警告消息,或者一封电子邮件或者是可以发送给负责监视应用程序人员的其他类型的通知。
在以下部分中,我们将深入地查看定义 UDM、收集器和阈值,从而为我们的 DizzyWorld 应用程序管理一个由 JMX 管理的资源。让我们首先从更仔细地观察度量定义文件开始,它是从 WebLogic 平台访问 JMX 数据的关键。
在 OpenView 中配置一个用户定义的度量
在以前的文章中,我们开发了一个定制的 MBean 用以跟踪一个购物车过程的状态,而我们希望使用 OVO 监视它。假设该 MBean 已经被注册到 JMX 服务器,我们将需要在 OVO 中定义该度量。然后该度量可以在 OVO 中用于生成警告、创建图表等。
第一个步骤是创建一个 UDM 文件。UDM 是一个 XML 配置文件,它定义哪些定制 JMX MBean 将被 OVO 收集。在单一的 UDM 文件中可以定义多个度量,并且每个度量可以是到一个 MBean 属性的引用,或者是一个组合其他度量的已计算的度量。我们的 DizzyWorld 应用程序已经定义了一个非常简单的 JMX MBean(见图 3)。
图 3
这个 MBean 定义两个属性,CartsCreatedCount 和 CartsCompletedCount,它表示已经创建和完成的购物车的全部数量。我们首先希望在 UDM 文件中定义所有这些属性的映射。清单 1 列举了指定的入口,它们可以到 UDM 文件中进行添加,以获得 CartsCreatedCount。
该度量被命名为 ShoppingCart_Completed。MBean 映射中的 FromVersion 元素指示该度量支持的是哪个 WebLogic 版本。JMX 对象和属性名是通过 <ObjectName> 和 <Attribute> 元素指定的。注意对象名支持 JMX 模式匹配。我们指定模式串"*:",Name=MyShoppingCartManager",从而为我们的购物车管理器定位 MBean。
您可以利用这些单个的 JMX 属性值,并且组合它们以创建更有用的、粗粒度的度量。为了这样做,您必须构造一个引用单 MBean 值的已计算度量。在我们的实例中,我们创建了两个度量,ShoppingCart_Completed 和 ShoppingCart_Created。这些对应于 CartsCreatedCount 和 CartsCompletedCount JMX 属性值。清单 2 显示如何在 UDM 文件中定义一个已计算度量,该度量对应于用户所放弃的所有购物车的百分比。
在我们的例子中,我们已经将这个度量的 ID 赋值为“WLSSPI_0710”,这是一个命名约定, WebLogic 服务器 SPI 使用它来收集度量。下面部分中,在配置警告和阈值期间将通过“710”引用我们的度量。
一旦我们已经考虑好希望在 UDM 中显示的特定度量,下一个步骤就是实际创建该文件。尽管可以使用任何文本和 XML 编辑器来编写它,但是我们推荐使用 OpenView JMX Metric Builder,这是由 HP 提供的工具,用于帮助构造 UDM。这个基于 Eclipse 工具提供连接和浏览 JMX 服务器以及使用一个基于表单的编辑器构建度量的功能。使用该工具的 MBean Explorer,您可以浏览希望可以在 UDM 文件中使用的可用 JMX MBean。图 4 显示我们的 JMX 服务器的一个快照,其中突出显示了 MyShoppingCartManager MBean 和相关的属性。
图 4
最后,使用 Metrics Forms View 您可以构造 MBean 度量和已计算度量。图 5 提供一个例子,显示如何使用 JMX 度量工具为我们创建购物车度量的已计算度量。
图 5
配置 OpenView 操作
创建好 UDM 文件之后,下一个步骤是设置指定的阈值,以便为 OpenView 发送警告,然后设置我们希望收集该度量的频率。
首先,我们将通过阈值设置来配置警告的生成情况。对于我们的例子,我们希望如果购物车关闭的百分比为 50% 或者更低,则生成一个警告。我们必须创建一个监视器策略以设置该度量的阈值。如图 6 所示,我们配置该阈值为一个最小值阈值,因为我们正在试图确定什么时候比率小于或等于 50%。接着,我们确定当越过阈值时希望执行什么动作。我们可以配置当一个阈值被越过时执行若干动作,包括给 OVO 发送一个警告,运行一个命令或脚本,或者生成一个报告。如果您正在试图发展成一个适应性企业,这个灵活性是有用的,其中管理数据可以用于调节基础设施以满足商业需要。
对于这个例子来说,我们配置一个发送到 OVO 控制台的消息。正如您可以在图 6 中的 Outgoing Message 对话框中所看到的,我们可以将 Severity 设置为若干等级,包括 Major、Minor 或者 Critical。这可以帮助操作员确定消息的重要性。而且,我们增加指令以帮助操作员诊断和采取适当的动作(见图 7)。这些指令包括可能的错误原因和相应的解决方案。当试图诊断问题时,这种层次的细节是重要的。
图 6
图 7
图 8 显示关于阈值和动作信息的一个摘要。OVO 评价度量并且当达到 50% 的阈值限制时,在 OVO 中生成适当的消息。
图 8
一旦已经设置阈值,最后的步骤是确定我们希望 OVO 收集该度量的频度。我们配置收集器为每分钟运行一次。另外,我们定制收集器程序,从而为我们的 ShoppingCart度量收集数据。
让我们现在返回到 DizzyWorld 应用程序并且查看我们如何管理和监视应用程序。
管理和监视应用程序
我们的场景是包括使用 DizzyWorld 应用程序进行在线购物的客户。每个客户在他们的购物经历中都将创建一个购物车。然而,并不是所有这些客户都在 Web 站点上完成他们的购物。业务线经理希望知道什么时候“已完成购物车”对于“已创建购物车”的比例是 50% 或者更低。我们已经创建了一个阈值设置为 50%,并且我们让 OVO 数据收集器每分钟运行一次并针对该阈值检查度量。
在 OVO 内部,服务映射是可用的,并且向您提供一个关于被管理环境的视图。图 9 为 WebLogic 显示一个服务映射。注意在“Before”图中,目前没有任何需要注意事件的图形化指示。在此,我们将假设一个用户已经完成一次购物经历,因此在 JMX Mbean 中已完成的和已创建的购物车的计数都是 1。我们将开始一个购物经历,但并不完成购物过程,我们将在完成购买之前退出 Web 站点。这样会使在 JMX Mbean 中已完成的购物车计数为 1 而已创建的购物车计数为 2。这将自动地激发一个 OVO 事件指示被完成的购物车太少,并且在 OVO 中的服务映射将指示一个问题(正如在图 9 中的“After”图所示)。
图 9
由于我们的应用程序已经使用 JMX,每次当一个用户继续检验或下订单时,特定的购物事件会更新MBean 属性值。我们已经配置 OVO 针对一个度量进行收集,计算已完成的购物比率并且针对一个阈值设置来检查它。如果超过阈值,会自动地向OVO 控制台发送警告。
我们可以切换到消息视图并且观察 OVO 的一个消息,该消息指示发送警告到等级已经被超过(见图 10)。该信息对于业务线经理来说是重要的,这可以帮助他确定如何完成他的业务。他可以将该信息与 WebLogic 性能数据进行关联,以帮助他确定为什么这么多的购物者离开该站点而不完成购物。而且,他可以选择“Instructions”标签来获得如何纠正该问题的进一步信息。
图 10
现在我们已经将 JMX 度量与 OVO 集成起来了,操作员可能希望在一个图表中显示这些结果。使用 OVO 的 Graph Configuration 工具,操作员可以配置和观察一个关于商业度量的图表。OVO 向操作员提供从信息中显示多种类型图表的选项,这些信息已经通过度量被收集。在这个例子中,我们选择一个柱形图并且使用我们的购物车度量(见图 11)。
图 11
我们针对商业度量配置和图形化信息,从而为我们自己提供关于已完成购物车数量的一个图形化视图,允许我们针对一个给定时期显示该信息。图形为一个相当简单的度量显示数据,但是操作员可以将购物车业务度量与 JVM 内存堆、日时或者 Web 站点上的用户数进行关联,并且采取主动步骤为使用该站点的客户提高响应时间。
结束语
IT 组织正在不断地寻找机会以降低成本和提高运行效率。很清楚,部署和维护问题是一个很大的因素。在过去,开发人员通常将管理看作是 IT 操作的职责。为可管理性进行设计和开发,确保 IT 具有他们所需要的信息以快速地分析和响应操作和商业需求,这是具有明显优点的。
在本文中,我们从 IT 操作人员的观点更仔细地观察了应用程序的可管理性。特别地,我们观察了 J2EE 使用 JMX 技术的可管理性。本文显示 HP OpenView 操作和 WebLogic SPI 是如何允许操作人员更有效地管理 BEA WebLogic 平台的。利用 SPI,IT 操作可以快速地观察、分析和报告操作性度量,例如 EJB、Servlet 和 JMS 度量。
在有些情况中,您可能需要查看除了 J2EE 容器或平台组件之外的其他东西。为了真正构建一个自适应企业,而该企业中的 IT 可以更好的反映商业的需要,那么操作和商业数据可以用于监视和控制是至关重要的。收集商业度量经常要求开发定制的可管理对象和制品。
我们已经显示 JMX 技术是如何用于收集这些商业度量的。然后,在 OVO 内部使用用户定义的度量能力,我们显示了如何从 BEA WebLogic 平台收集这些 JMX 对象。我们还进一步显示了如何配置 OVO 策略来监视这些商业度量的某些阈值条件。
很清楚,诊断应用程序的性能和 SLA 一致性更加要求一个环境的端到端的视图。管理必须考虑到客户的观点、已部署的所有中间件平台以及所有后端系统和数据库。这个分析经常要求完整集成到 IT 基础设施,其中 IT 操作和人员可以关联管理数据并执行根本原因分析。
为了满足这些需求,HP 提供一个支持 BEA WebLogic 平台的 Web 应用程序管理产片套件(见图 12)。从终端用户的观点来看,HP OpenView Internet Services(OVIS)报告综合的或者真实的用户事务可用性和响应时间,这些事务的位置尽可能的接近用户。HP 还提供 OpenView Transaction Analyzer(OVTA)用于从客户到应用服务器到后端数据库跟踪事务。OVTA 还提供一个被动的应用程序监视功能,包括应用服务器响应时间和容量度量。结合 OVIS,这为用户提供一个完整的 J2EE 应用服务器级别的管理解决方案。
图 12
展望
展望未来,我们看到使用 Web 服务、面向服务的架构以及基于网格的网络的增长。这些技术的使用进一步增加了对于健壮的管理软件的需求。但是,管理并不只是简单地对在系统中和正在开发的应用程序中的问题做出反应。组织需要更具适应性的管理解决方案,其中 IT 可更好的结合商业。HP 所提供的一个解决方案是 Web 服务的生命周期管理(LCM4WS)。LCM4WS 协助企业更好地管理生命周期问题,例如部署、版本化和 Web 服务安全。
目前有一些技术资源可以用于帮助您在应用程序管理和适应性管理方面开始入门。如果您是一位开发人员,最好的开始位置是 HP 的开发资源中心(devresource.hp.com)。在这里,您将发现各种技术论文、文章、软件下载以及关注 JMX 和应用程序可管理性的论坛。如果您希望了解更多关于 HP OpenView 和管理 web 应用程序的可用产品信息,请查看 openview.hp.com/solutions/appm。
参考资料
· Peltz, Chris and Rogers, Claire. "Instrumenting a Java Page Flow using JMX Technology". BEA WebLogic Developer's Journal, Volume 4, issue 5。
源代码
清单 1
*:Name=MyShoppingCartManager
CartsCreatedCount
清单 2
(ShoppingCart_Completed/ShoppingCart_Created)*100
| 作者简介 |
|
Claire Rogers是HP 开发者资源机构的一名高级软件顾问,他向客户提供有关 J2EE 应用程序管理方面的软件咨询。 |
|