本文讨论了 IBM WebSphere Cast Iron Cloud integration(以下简称 Cast Iron)提供的监控和警报功能,以及利用这些功能的推荐最佳实践。
Web Management Console (WMC) 提供已发布和已部署项目的概览,以及这些项目内业务流程的向下钻取功能。它还提供有关给定设备健康状况的信息,显示内存使用、磁盘和 CPU 利用率。Cast Iron Live 环境不显示物理和虚拟环境中显示的所有指标,因为它是一个多租户环境。
Cast Iron 操作系统提供了一个可配置的警报子系统,该系统是管理员为特定客户环境建立的。警报模块通过电子邮件、SNMP 或两者从不同的 Cast Iron 子系统将警报发送给一个组织内可配置的人员组。
此外,业务流程可以通过日志记录活动来生成警报,也可以通过生成电子邮件或 Web 服务调用到客户环境中的警报服务来生成警报。这些警报服务可能是网络内的其他 Cast Iron 业务流程或第三方 API。
Cast Iron 是一个 “完全自动化” 的集成解决方案,需要最少的客户监控。客户可以定期登录到设备(物理、虚拟或云)上,确保资源按计划进行或作业按照预期执行,不过这不是必须的。客户应当使用警报来将它们指引向一个需要注意的问题。
在开发期间,通常使用高级别的日志记录来检查一个业务流程中数据的流动和转换。当某个项目进入生产状态后,重要的是要降低日志记录级别来维护设备的高性能。日志记录会导致设备内出现更高的 I/O 量,这会给每个作业的性能带来负面影响。
减少日志记录级别意味着您无法了解业务流程的各个步骤。这意味着,在将一个业务流程迁移到生产环境之前需要有足够的质量保证 (QA),而且根据 Cast Iron 最佳实践一个业务流程包含错误处理逻辑。
表 1 描述一个业务流程的日志记录级别。
表 1. 业务流程日志记录级别
| 日志记录级别 | 描述 |
|
None
| 对于配置为 None 的业务流程,不会将作业活动记录到 WMC。看起来似乎没有作业在为这些业务流程执行。 |
| 初始值 | 只有业务流程变量的初始值得到记录。如果您想研究一个作业的触发值(比如 HTTP 头或 Web Service 主体),这里记录的初始值仅用于调试,而且预计业务流程会由于错误处理不当而失败。取决于初始值数据的大小以及任何其他初始化的变量,这仍然会对业务流程性能有影响。 |
| 初始和错误值 | 业务流程变量和业务流程错误的初始值都得到记录。如果您想研究一个作业的触发值,比如 HTTP 头或 Web Service 体,这仅用于调试,而且预计业务流程会由于不足的错误处理而失败。根据初始值数据的大小以及任何其他初始化的变量,这仍然会对业务流程性能有影响。 |
| 错误值 | 只有失败的业务流程作业会记录其变量。这是生产环境的推荐日志记录级别。然而,需要重点注意的是,使用 try-catch 代码块的业务流程永远不会达到一个错误状态。 |
| 内联 | 为与调用业务流程的作业细节一致的子业务流程记录业务流程作业细节。如果在业务流程之间传递的数据有问题,那么这有助于调试父子业务流程设计。 |
| 全部 | 这是最高级别的日志记录,记录一个业务流程作业的所有变量和步骤。仅将该日志记录级别用于开发和测试,或者一个生产业务流程的紧急调试。根据活动数、变量数和每个作业的数据量,该日志记录级别会影响业务流程作业的性能,致使其高达 300%。 |
有 6 个作业状态。表 2 描述了每个状态。
表 2. 作业状态
| 状态 | 描述 |
| 运行中 | 作业目前正在执行。 |
| 已完成 | 作业在没有出错的情况下结束(不管作业运行过程中是否执行 Catch 代码块,都是如此。) |
| 出错 | 作业遇到了一个 catch 代码块没有处理的致命错误。如果不将日志记录级别设置为 None,作业细节显示出错时的作业状态。 |
| 终止 | 作业由于业务流程内的一个 Terminate 活动而结束。 |
| 暂停 | 管理员在执行作业时停止了项目。如果管理员重新启动项目,作业会继续运行,如果项目未部署,作业将会进入 “取消” 状态。 |
| 取消 | 管理员明确取消了运行中的作业。 |
作业键是通过 WMC 显示有关业务流程作业的细节的一种方式。通常,业务键提供惟一地标识从一个端点传递到另一个端点的数据的信息,比如批次号或主键。但是,由于这在业务流程内是可配置的,键可能仅仅是一条状态消息,比如 “Processed 100 rows”。
图 1 使用 Home > Dashboard 菜单项显示 WMC 中可见的作业结果面板,显示了已完成的作业和业务流程分配的作业键值。
图 1. WMC 中显示的作业键
开发人员在 Studio 内设置每个业务流程的作业键,使用 Create Job Keys 活动分配值。其中一个键可以标记为 “Primary”。主键在 WMC 内变得可搜索。开发人员控制作业键的命名,它们成为 Create Job Keys 活动的输入参数。图 2 显示了作业键设置界面,您可以在 Studio 中单击业务流程开头的绿色箭头图标来显示该界面。
图 2. 设置作业键
默认情况下,WMC 仅记录作业 ID,即分配给每个作业的惟一 ID。当一个业务流程记录一个主要作业键时,WMC 会在作业 ID 处显示该值。作业键不替换作业 ID 值。WMC 内的作业细节视图会显示作业 ID。
图 3 显示了 Create Job keys 活动的映射输入,其中将值分配给了三个已定义的键。
图 3. 映射值到作业键
每个业务流程支持多个键,但是只有一个是可搜索的主键。记录到非主键的值显示在 WMC 的作业细节界面中,如图 4 所示。您可以单击 Home > Dashboard,单击作业,然后单击 Job Keys 链接来显示该界面。
图 4. 在 WMC 的作业细节面板中显示的作业键
注意:设置为 None 的配置有日志记录级别的业务流程在 WMC 内不会显示信息和作业键。
Cast Iron 的一个难题是涉及到错误处理和作业状态,作业键可以解决这个难题。Cast Iron 最佳实践要求业务流程使用 try-catch 代码块来控制错误状况期间的业务流程。由于这会捕获发生的错误,作业会在 “已完成” 作业状态下结束。这使得我们难以识别 WMC 中遇到问题的作业。
通过使用主要作业键内的一个状态值和警报,可以使用搜索功能找到 WMC 内的那些出错的作业。例如,您可以使用映射活动中的 concatenate 函数创建一个包含状态和所处理记录数的字符串,比如 “Success – 100 of 100 records processed” 或 “Error – 50 of 100 records processed”。通过使用键中的状态值,您可以搜索 WMC 中的 “Error”,这会显示没有成功处理一个完整批次的所有作业。
使用与使用作业键时相同的原则,连同一个错误处理策略,作业键应当是作业监控的主要部分。例如,假设这样一个场景,集成像 Salesforce.com 这样的一个应用程序与 ERP 系统来同步销售订单。如果您使用作业键来记载记录 ID,那么可以使用搜索功能来回答这样的问题,比如 “销售订单 1234 是否移至了 ERP 系统?”。您可以通过搜索键 “1234” 找到记录。
可以从左到右搜索作业键,而不是通过通配符搜索它。例如,您可以通过搜索 “1”、“12”、“123” 或 “1234” 来找到作业键,而不是使用 “234” 或 “2345”。在为给定场景定义作业键的布局时,这是一个很重要的因素。
图 5 显示了键值位于作业键尾部时搜索作业键的难度有多大。用户必须输入整个字符串来查找匹配的作业。单击 Home > Dashboard 菜单项时,可以在 WMC 的结果面板中看到搜索框。
图 5. 搜索作业键
例如,一个业务流程使用了作业键 “Processed 100 of 100 records – Success”。仅搜索 “Success” 一词是无法得到结果的。能够搜索 “Success” 的惟一情况是,作业键格式是 “Success – Processed 100 of 100 records”。
图 6 显示了在定义好键值之后查找作业有多么容易。
图 6. 搜索定义良好的作业键
您无法在搜索中使用 “%”、“?” 或 “*” 等通配符。在将字符输入到搜索框之后搜索会自动隐含一个通配符:
search value*。
警报有两个级别:系统级 和 业务流程级。设备基于在 WMC 中设置的标准生成系统级警报。业务流程级警报源自于一个业务流程中的活动。还可以使用业务流程级活动来触发系统级警报。
设备维护一个系统日志,该日志显示来自操作系统各个子系统的错误和警报。表 3 描述了子系统的列表。
表 3. 生成通知的子系统
| 子系统 | 描述 | 备注 |
| 硬件 | 包含与风扇、CPU、磁盘等物理设备相关的错误。 | 不适用于 Cast Iron Live |
| 资源 | 报告可用磁盘空间和内存问题 | 不适用于 Cast Iron Live |
| 网络 | 显示与访问端点相关的错误或其他网络相关问题。 | 不适用于 Cast Iron Live |
| 安全性 | 报告入侵检测中的无效登录。 | |
| 业务流程 | 显示来自业务流程作业的错误,包括来自日志消息活动的消息,因映射问题而使活动失败的错误,SOAP 异常,数据库错误,等等。 | |
| 部署 | 显示一个业务流程因端点中的无效密码和重复的 HTTP 或 Web Service URL 而无法合理部署造成的错误。 |
警报子系统链接到系统日志中,以允许管理员定义策略(规则)来触发有关系统级事件的通知。在物理和虚拟设备上,管理员可以选择使用电子邮件或 SNMP 或两者发送通知。Iron Live 只允许通过电子邮件发送通知。
图 7 显示 WMC 中可从 Logs > Notifications 访问的通知面板,并显示现有策略的列表。
图 7. WMC 中显示现有策略的通知界面
管理员必须为发送通知的一个 SMTP 中继服务器提供凭据。
管理员必须提供 SNMP 主机和陷阱社区,以便(虚拟或物理)设备可以将陷阱交付给监控工具。
策略是基于严重性和子系统的简单规则。严重级别如表 4 所示。
表 4. 通知的严重性类型
| 严重性 | 描述 |
| INFO | 通知性消息 |
| WARNING | 警告消息 |
| ERROR | 可能需要用户注意的严重错误 |
| CRITICAL | 需要用户或管理员注意的关键性错误 |
通知规则的示例如下:
-
如果在业务流程子系统上错误级别高于 “WARNING”,则通过电子邮件将通知发送给
businessusers@mycompany.com。 -
如果在网络子系统上错误级别高于 “ERROR”,则通过电子邮件将通知发送给
sysadmins@mycompany.com,并发出陷阱。
图 8 显示了策略定义界面,其中用户建立了一个新的通知策略。在 WMC 中选择 Logs > Notifications > New Policy 来访问该界面。
图 8. 建立策略
再次重申,Cast Iron Live 不 支持 SNMP 通知。
不要给许多人发送电子邮件,而是在邮件服务器上创建一个通讯组列表。如果某个人离开一个小组或组织,通过 WMC 管理个人列表不足以或不易产生问题。最好给邮件服务器上定义的一个组发送邮件。
在上述示例中,来自业务流程的通知会发送给一个用户组,而网络错误则会发送给另一个用户组。这体现了对通知分配的一个清楚界定。
默认情况下,一个失败的业务流程作业会在系统日志中生成一个 ERROR 级别的消息。您可以使用通知策略捕获这些错误,从而生成电子邮件或 SNMP 陷阱。但是,您对生成的消息的内容没有控制权。
Cast Iron 最佳实践要求业务流程使用 try-catch 代码块和 if-then 条件来捕获错误。然后由开发人员决定如何将问题通知给最终用户。
最常见的通知机制是使用电子邮件活动,因为它是一个简单的接口。不过它支持各种交付格式。Cast Iron 支持复杂的 MIME 消息,因此可以在 WMC 中创建附件和 HTML 格式化的电子邮件以及对作业的链接。
一些组织内部有复杂的通知系统,可能使用其他中间件或其他监控工具。如果这些系统有一个公共 API,比如一个 Web 服务接口,Cast Iron 可以通过 Web 服务活动使用 WSDL 和现有的日志记录基础架构。
日志消息活动允许在选定的严重级别将业务流程写到系统日志的业务流程子系统。结合一组通知策略,日志消息活动是一个用于生成简单通知的有用机制。其优势在于,开发人员可以控制包含在通知中的消息,这不同于标准的系统级通知。
图 9 显示了映射到日志消息活动的映射,即设置严重级别和输出消息。
图 9. 映射到日志消息活动
已记录的消息在 WMC 中日志菜单的 System Log 面板中显示为一个业务流程事件。图 10 显示了 WMC 中一个日志消息活动输出的示例,其中用户将严重级别定义为 “Warning”。
图 10. WMC 中的日志消息输出
您可以通过 WMC 使用日志消息活动来提供自定义通知或日志记录,将其绑定到通知系统来自动发送电子邮件或发出 SNMP 陷阱。
本文展示了 WebSphere Cast Iron 如何提供一个用于跟踪、识别和搜索作业的全面解决方案,另外展示了这些功能如何补充 Cast Iron 的监控和警报功能。
学习
-
使用 WebSphere Cast Iron Cloud Integration 整合云应用程序
-
WebSphere Cast Iron Cloud Integration 产品页面
-
WebSphere Cast Iron 信息中心
-
WebSphere Cast Iron Cloud Integration 支持页面
-
IBM WebSphere Cast Iron Cloud Integration 入门
-
IBM developerWorks 中国 WebSphere 专区:为使用 WebSphere 产品的开发人员准备的技术信息和资料。这里提供产品下载、how-to 信息、支持资源以及免费技术库,包含 2000 多份技术文章、教程、最佳实践、IBM Redbook 和在线产品手册。
获得产品和技术
- 最受欢迎的 WebSphere 试用软件下载:下载关键 WebSphere 产品的免费试用版。
- IBM developerWorks 软件下载资源中心:IBM deveperWorks 最新的软件下载。
- IBM developerWorks 工具包:下载关键 WebSphere 最新的产品工具包。
讨论
-
Cast Iron 社区论坛
- 加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
- 加入 IBM 软件下载与技术交流群组,参与在线交流。

Alan Moore 是位于加利福尼亚的 North San Jose Lab 中的一名高级技术人员。他是一名具有 9 年 Cast Iron 相关经验的资深人员,在销售支持和解决方案工程设计等业务领域做出了贡献。他带头为 Cast Iron 技术的早期采用者实现了该技术,为所有 Cast Iron 用户建立了最佳实践指南,并领导实现了 Cast Iron 的用户社区 Web 站点。在 Cast Iron 工程团队中,Alan 为 salesforce.com®、NetSuite® 和 RightNow® 开发了第一批连接器,是 Cast Iron 有关 SaaS 端点的主要权威。Alan 在 Cast Iron 带领解决方案工程设计团队为战略客户和合作伙伴架构和开发了复杂的集成解决方案。他开发了 100 多个名为 TIP 的预打包集成模板,用户可以从 Cast Iron 云环境下载该模板。