使用 IBM Lotus Sametime 监控可用性、性能和基础架构以及其他要素

想过如何真正了解您的 IBM Lotus Sametime 环境状态吗?从用户角度探索如何在功能和性能方面监控 Lotus Sametime。本文介绍(和提供)一个简单的轻量级前瞻性工具,帮助管理员更好地了解 Lotus Sametime 用户体验,以减少服务中断,更快速地解决问题并改善用户体验。除了监控功能之外,该工具可协助进行调试集合,并减轻用户重新创建问题和数据集的负担。通过将网络验证与 Lotus Sametime IM、用户感知、用户登录和用户名查找验证组合起来,该工具提供了前所未有的、完整的用户体验。

James Dewan, 高级支持管理人员, IBM

Jim Dewan 是 IBM Lotus 和 Verizon 的高级支持管理人员 (Premium Support Manager), 目前负责设计一系列工具和 bot,协助客户监控和调试其 Lotus 部署。Jim 拥有十年的 Lotus Domino 服务器开发经验,他之前担任 Lotus Domino 管理团队的项目经理。此外,Jim 也是 Lotus Domino/Linux on Systemz 工作的技术主管,专门研究应用程序开发、工具包和企业数据可访问性。



2010 年 2 月 08 日

编者注:想自己动手试一试?请立即下载 IBM Lotus 软件试用版。非常熟悉这个主题?想要分享您的经验?请马上参与 IBM Lotus 软件 wiki 计划。

简介

想要从用户角度了解环境情况?需要了解用户功能何时不可用?需要了解功能特征和用户的性能体验?本文介绍了这一新设计的框架,帮助您轻松满足这些需求。

本文介绍了 3 个易于配置的插件,并描述了如何使用该简单的轻量级工具创建自己的监控。这些监控器可用于前瞻性生产监控、问题确认和用户性能监控,并且可用作预生产测试环境工具。本文详细介绍了如何快速安装和配置此工具。此外,本文还详细介绍了如何创建其他监控,以及从中获得的价值。文中还包含了示例代码。

作为 IBM® Lotus® Sametime® bot,Watchit 工具利用了 Lotus Sametime 中的现有投资,并且它可轻松扩展以包含满足用户模拟需求的其他插件。Watchit 交付了一个前瞻性框架以对 Lotus Sametime 功能进行投资,使您能更好地管理和监控现有软件与网络资源。当超过了用户定义的性能阈值,网络资源不可用,或者是关键用户功能失败时,Watchit 使用 Lotus Sametime 即时消息发送警报。

组合使用现有插件时,会提供对 Lotus Sametime 用户体验的详细描述。该描述有助于您了解使用这些简单工具(而非服务台、用户和技术支持资源)所节约的时间和成本。

了解此框架如何协助完成以下操作:

  • 缩短解决问题的时间
  • 主动发现问题
  • 以一种改进的方式测试新配置和代码更改

充分利用 Lotus Sametime 的现有投资。探究该工具如何为您的组织提供价值。


最大化 Lotus Sametime

从在线会议和即时消息到统一通信,Lotus Sametime 可以使一个组织联系更紧密并实现更多交互。Lotus Sametime 可以改变我们与应用程序和用户之间的交互方式。当生产环境中出现错误或其他故障时,使用 Lotus Sametime API 工具包可以使现有的关键任务应用程序主动与系统管理员或开发团队进行通信。

使用 Lotus Sametime 的另一种方式是创建简单的应用程序,该应用程序执行关键任务,比如通过 Lotus Sametime 中的 SIP 或网关连接进行通信、网络可用性检查、名称查找,或者是产品工具包 API 提供的任意功能。当性能或功能未达到您定义的标准时,您可以使用 Lotus Sametime 工具包进行提醒。尽管使用产品 API 创建应用程序并不是一个新概念,但在用户的投诉充斥服务台之前,使用即时消息提醒管理团队发生的问题,则大大提高了价值。 提前了解问题很重要,因为这样可以最小化服务中断时间,并减轻服务台和技术支持资源的负担。当在生产环境中预先创建了这些监控时,便阐明了 Lotus Sametime 即时消息的价值。这些应用程序类型将成为最终用户:它们全天候收集 bug,在出现问题时报告它们,并且不介意重复创建同一个问题。

为什么是这个工具?

Watchit 工具提供了高效构建前瞻性监控插件所需的所有服务,以更好地管理自己的环境。它还提供了 3 个即插即用的插件,以便您立刻开始工作。通过使用 Lotus Sametime 即时消息在出现故障或性能延迟时通知系统管理员,您可以看到现有插件的价值,这样通过创建自己的插件来扩展工具的易用性和价值就很明显了。

从用户角度来说,Watchit 工具为监控提供了一种简单框架,这些监控提供功能和性能监控。对于管理员来说,了解用户体验可能很困难,而用户可能发现收集关于性能或功能故障的数据很耗时。该工具旨在从用户角度告诉管理员问题。系统管理员已经了解了环境的后端;该工具可以让他们了解客户端体验。与等待用户向服务台报告问题相比,此方法更快速、更高效且更简单。即时消息的作用相当于用户打开一个故障单并在问题解决之前所做的所有工作。

使用工具包快速开发用户环境的视线和触角

对于支持不同环境的人员来说,了解特定时间的用户体验很重要。从应用程序本身收集的信息仅是用户获得的全部体验的一部分。该工具构建在即时消息之上,它的目的是监控性能和功能故障,并将它们报告给相应的支持团队。通常,从报告问题的用户收集到的信息可能很少且是有限的。从这些应用程序(和任意开发的工具)收集的信息是精确的,具有具体的时间轴、性能和响应时间数据,以及故障信息。通常,关于故障的数据决定解决问题的速度。使用 Watchit 工具意味着,无需影响用户即可完成所有操作。管理员可以在出现问题时立即收到警报,并在打开故障单之前采取相应的措施,而不是在用户发现了问题并打开故障单时才采取行动。

组合监控插件以最大化收益

尽管收集特定任务或功能的信息很有价值,但组合插件数据可以提供用户不可能提供的角度。例如,尽管了解外部社区之间是否有 SIP 或网关通信很有用,但是了解网络本身的性能特征也很有价值。下面介绍了网络检查程序插件 (healthcheck) 和 Lotus Sametime IM/感知插件 (awarecheck)。与用户的解释相比,组合来自这两个插件的数据可以揭露问题的更多信息。网络性能或网络不稳定性可能导致 Lotus Sametime 问题或性能问题。通过组合数据,使用该前瞻性工具可以清楚了解环境的概况,并且您可以将即时消息用作即时载体来交付此信息并解决当前问题。

将这种全面的数据与应用程序本身的日志组合起来,可以提供环境的客户端和服务器视角。该数据在诊断问题方面很有用,并且可将它们发送到了解既定情形的应用程序所有者和支持团队。所有这些数据都有助于缩短服务中断时间,降低对用户的影响并更快速地解决问题。


Watchit Lotus Sametime bot 

Watchit 工具是更好地测试、调试和监控软件部署的一种框架。它提供易用的类以纳入即时消息技术和日志活动。该工具与 3 个即插即用的插件一起提供,它是管理和支持软件部署的一个重要部分。尽管可以创建其他插件(如本文后面所述),但是 3 个现有插件可提供即时功能,以支持您更前瞻性地了解用户体验。

Watchit 工具目前与 3 个现有自定义监控插件一起提供。任意插件都可以单独使用或组合使用。

  • healthcheck 是执行网络主机/端口连接测试和监控的组件。
  • awarecheck 处理模拟的即时消息/感知/解决验证和监控。
  • siponewaycheck 处理模拟的即时消息/感知/解决验证和监控,并使用现有的 ping bot 与外部社区连接以进行通信。

要指定运行的插件,Watchit bot 读取 watchit.properties 文件:

Plugin_Classes=healthchecker,awarecheck,siponewaycheck

此示例可同时运行 3 个插件。

healthcheck 插件

作为网络检查程序,该插件针对在属性文件中指定的任意主机或端口执行网络套接字打开操作。它用于从网络的任意位置监控网络或性能故障。返回的信息可用于对网络(套接字连接响应时间)性能和网络故障原因代码进行分析。

要完成提供 input 文件的任务,并使按类别分组资源变得更容易,属性文件的格式不需要为列出的每个主机重复指定相同的端口。端口设置(位于 input 文件的 [Ports] 部分)提供了一个位置,以为具体服务器类别(比如[Domino]、[Sametime]、[MUX]、[SIP]、[Quickplace]) 指定端口。此方法允许 healthcheck 浏览每种类型,并使用端口列表检查每个需要的端口。清单 1 展示了一个 input 文件示例。

对于端口不属于同一类别的 input 或服务器来说,通用 [Hosts] 类别可用于指定单个主机和端口。[Hosts] 部分中的主机名和 IP 地址都有效。

要度量网络的性能,添加 Socket_Timeout=x,其中 x 是允许的成功套接字打开操作的毫秒数。如果超过了该阈值,则会向通知列表发送警报。

要显示 bot 交易的详细输出,使用 healthcheck.properties 文件中的 Debug=true。

清单 1. healthcheck.properties input 文件示例
[Ports]
Sametime_Ports=1352,80,8081,8082,1533,999
Domino_Ports=1352,80
Quickplace_Ports=1352,80,389
Mux_Ports=1533,8082
Sip_Ports=5060,5061
[Sametime]
serverst04.company.com
serverst05.company.com
serverst06.company.com
[SIP]
serversp01.company.com
[Quickplace]
serverqp01.company.com
serverqp02.company.com
[MUX]
servermx1.company.com
servermx2.company.com
[Hosts]            
host1.company.com;80,8081
host2.company.com;99,443,1024
[Options]
Check_Interval=60
Socket_Timeout=5000

必要的 Lotus Sametime 服务器和登录信息存储在 IMEasy.properties 文件中。该文件为 Watchit bot 提供 Lotus Sametime 用户信息以发送警报。它支持将该工具与随时间改变的 Lotus Sametime 数据相分离。关于 IMEasy.properties 文件示例,参见清单 2。要禁用发送警报功能(且仅记录输出),请删除 IMEasy.properties 文件。

清单 2. IMEasy.properties 文件示例
#Sametime_Notification_Users=User abbreviated 
name(s) separated by comma
Sametime_Notification_Users=Jim Dewan/ORG1/ORG2/Company
	
#Sametime_Notification_Server=
Individual Sametime server or load balancer			
Sametime_Notification_Server=stserver7.company.com
#Sametime_login_user=Login user that actually sends the IM
Sametime_login_user=Sametime Monitor 4/ORG1/ORG2/Company
#Sametime_login_pw=password of the login user					
Sametime_login_pw=password
#Sametime_Notification_Group=single group name to notify
Sametime_Notification_Group=admin

要运行该插件,将 healthcheck 添加到 watchit.properties 文件的 Plugin_Classes 值中。不同值之间采用逗号分隔,以便可同时运行多个插件。

Plugin_Classes=healthchecker

awarecheck 插件

awarecheck 插件旨在测试 Lotus Sametime 的功能,比如登录、名称查找、感知和即时消息。该插件模拟两个用户,这两个用户位于同一个社区或是位于外部社区,它担任交换例程角色并在持续监控中保持性能和信息真实度。该插件的许多实例可同时运行以获得服务器到服务器连接或客户端到服务器连接的概况,这有利于测试服务器和客户端问题。

awarecheck bot 提供了一种启动两个线程的简单方式,每个线程模拟登录到其社区的用户。两个用户成功登录之后,Thread #1 处理 User2,并且标记的来回 IM 游戏开始。插件还提供了序列号以确保信息不会丢失。除了来回的即时消息,User2 还在不断测试 User1 的感知,以确保此感知在环境中起作用,无论其位于本地社区还是外部社区。

默认情况下,bot 每 90 分钟重复一次用户登录和重启(Check_Interval 属性设置)。 如果有即时消息无法发送,或者如果 bot 检测到用户状态发生变化(即脱机),就会创建一个线程,以通过即时消息通知系统管理员 Lotus Sametime 环境正在中断。与网络跟踪和其他 Lotus Sametime 日志信息相比,这些日志可用来收集错误信息的具体时间戳。

staware.properties 文件(如清单 3 所示)标识以下事项:

  • User1 登录信息用作发送者以驱动即时消息
  • User2 登录信息用作接收者,从发送者接收即时消息
  • 性能阈值检测 Lotus Sametime 的功能延迟
清单 3. staware.properties 文件示例
Check_Interval=30
Logout_Timeout=5
IM_Interval=10
IM_Timeout=10000
Resolve_Wait_Time=20000
Login_Wait_Time=20000


#Sametime user 1
Sametime_User1=sim user1/ORG1/ORG2/Company
Sametime_Server1=stserver01.company.com
Sametime_Pw1=password
Sametime_Namelookup1=sim user1/ORG1/ORG2/Company

#Sametime user 2
Sametime_User2=sim user2/ORG1/ORG2/Company
Sametime_Pw2=password
Sametime_Server2=stserver02.company.com
#Use internet address for Sametime_Namelookupto indicate 
external user to be tested through GW or SIP
Sametime_Namelookup2=sim user1/ORG1/ORG2/Company

要显示 bot 交易的详细输出,使用 staware.properties 文件中的 Debug=true。如果 Debug 没有设置为 true,则只有故障信息会被记录到 Watchit 日志文件。警报与 IMEasy.properties 文件中的数据一起发送。此方法适用于每个插件。

Sametime _User 部分处理正在交换即时消息和检查彼此感知的两个用户。需要重点注意的是 Sametime_Namelookup2 字段。这是另一个用户用于检查感知的字段。如果用户正在通过 SIP 或网关连接测试外部社区,则必须使用 Internet 地址。如果用户位于同一个社区,则使用本地名称。bot 检查 User2 的该字段,以确定 User1 是否需要将用户看作外部用户,并且不用调用 resolve() 方法查找联系人。

当环境中的性能阈值未能满足时,插件会发送警报。

除了正在记录的功能故障和已发送的警报外,也可以同样的方式监控并修改性能延迟。

性能阈值如表 1 所示。

表 1. awarecheck 插件的性能阈值
函数阈值
Check_Interval=x用户处理即时消息的分钟数
Logout_Timeout=x用户重新登录之前需等待的分钟数
IM_Interval=x发送下一条即时消息需等待的秒数
IM_Timeout=x 毫秒数,即时消息交付的最大阈值
Resolve_Wait_Time=x 毫秒数,用户查找的最大阈值
Login_Wait_Time=x 毫秒数,登录的最大阈值

必要的 Lotus Sametime 服务器和登录信息存储在 IMEasy.properties 文件中。该文件也是 Watchit 工具为发送警报的用户存储服务器、用户和密码信息的位置。此外,还可以在 IMEasy.properties 文件中找到接收警报的用户列表。该文件支持将该工具与随时间改变的 Lotus Sametime 数据相分离。关于 IMEasy.properties 文件的示例,请参见图 1。要禁用发送警报功能,请删除 IMEasy.properties 文件。

要运行此插件,将 awarecheck 添加到 watchit.properties 文件的 Plugin_Classes 值中。不同值之间采用逗号分隔,以便同时运行多个插件。

Plugin_Classes=healthchecker,awarecheck

siponewaycheck 插件

siponewaycheck 插件 bot 的设计提供了一种从功能和性能方面在外部社区之间度量连接性的简单方式。它的功能与之前介绍的 awarecheck 插件的功能相同,但是它可以与非 Lotus Sametime 社区或外部社区进行通信,这些社区不能通过网络访问 bot 本身。该插件模拟登录到本地社区的线程。要处理的外部用户需要作为 echo bot 登录到外部应用程序。术语 echo bot 描述一个简单的 bot,该 bot 使用原始信息响应即时消息。两个用户都成功登录之后,Thread #1 处理 User2,并且标记的来回 IM 游戏开始。插件还提供了序列号以确保不会丢失信息。

默认情况下,bot 每 90 分钟重复一次用户登录和重启。如果有即时消息无法发送,或者如果用户检测到用户状态的变化(例如,脱机),就会创建一个线程,以使用即时消息通知系统管理员 Lotus Sametime 环境正在中断。与网络跟踪和其他 Lotus Sametime 日志信息相比,这些日志可用来收集错误信息的具体时间戳。

sipcheck.properties 文件(如清单 4 所示)标识以下事项:

  • User1 登录信息作为发送者来驱动消息
  • User2 信息处理在远程社区作为 ping bot 实现的远程用户
  • 性能阈值检测 Lotus Sametime 的延迟
清单 4. sipcheck.properties 文件示例
Check_Interval=30
Logout_Timeout=5
IM_Interval=10
Login_Timeout=60
Debug=true
Check_Interval=60

#Sametime user 1
Sametime_User1=stsipbot
Sametime_Server1=stserver.company.com
Sametime_Pw1=password
Sametime_Namelookup1=stsipbot@company.com 

Sametime_Namelookup2=stsipecho@company_external.com

要显示 bot 交易的详细输出,使用 staware.properties 文件中的 Debug=true。

Sametime _User 部分处理正在交换消息和检查彼此感知的两个用户。要重点注意的是 Sametime_Namelookup2 字段。因为用户正在通过 SIP 或网关连接测试外部社区,所以必须使用 Internet 地址。

性能阈值如表 2 所示。

表 2. siponewaycheck 插件的性能阈值
函数阈值
Check_Interval=x 用户进行通信的分钟数
Logout_Timeout=x用户重新登录之前需等待的分钟数
IM_Interval=x 发送下一条信息之前需等待的秒数
IM_Timeout=x 毫秒数,消息交付的最大阈值(来回)
Login_Wait_Time=x 毫秒数,登录的最大阈值

User 2 条目必须作为 ping bot 实现,该 bot 将其状态设置为插件的远程客户端。对于此 bot 可以在任意远程社区中开发。

Watchit 包中包含一个 Lotus Sametime ping bot,该 ping bot 可用作远程 Lotus Sametime echo bot。Lotus Sametime echo bot 作为创建另一个平台版本或与该插件一起使用的示例提供。

必要的 Lotus Sametime 服务器和登录信息存储在 IMEasy.properties 文件中。该方法支持将工具与随时间改变的 Lotus Sametime 数据相分离。要禁用发送警报功能,请删除 IMEasy.properties 文件。

要运行该插件,将 siponewaycheck 添加到 watchit.properties 文件的 Plugin_Classes 值中。不同值之间用逗号分隔,以便同时运行多个插件。

Plugin_Classes=healthchecker,awarecheck,siponewaycheck

通过即时消息发送的通知

每个插件都使用 Watchit 工具提供的 watchit.sendchats() API,从而使即时消息交付更快速、更简单,无需对密码重置、目标组和用户或服务器名称更改进行更多修改。附录 A “发送警报的 Watchit API” 介绍了如何使用此 API。图 1 展示了一个 IMEasy.properties 文件示例,以强调如何更改值而无需更改插件或 Watchit 工具的源。在所有 IMEasy.properties 文件中,每个插件使用相同的用户、密码和服务器信息向提供的列表发送警报。

图 1 中的示例展示了 healthcheck 插件的通知,该插件可监控任何网络资源的网络可用性。通知包含关于具体故障的有用信息,可将其发送到目录中指定的任意用户或用户组。Lotus Sametime 历史日志还可用于检查之前的服务中断。

图 1. healthcheck 插件的 Lotus Sametime 通知
healthcheck 插件的 Lotus Sametime 通知

healthcheck 输出的通知列表包含以下内容:

  • 服务中断时间
  • 服务器或主机名称
  • 端口号
  • 异常类型(套接字打开呼叫抛出的 3 种异常之一)
  • Exception 对象文本字段中返回的原因

图 2 中展示的示例是 awarecheck 插件的结果,该插件探索生产环境中的交付问题。具体故障信息、故障时间和涉及的用户被发送到每个管理员,这些管理员可以采取措施或是调查有疑问的资源的服务器状态。

图 2. awarecheck 插件的 Lotus Sametime 通知
awarecheck 插件的 Lotus Sametime 通知

如果您正在使用 Lotus Sametime 基于 Eclipse 的客户端,自动聊天记录还可用于保存服务中断的连续记录。可以从通知窗口建立群聊,使了解问题详情或知道如何解决问题的其他管理员加入其中。

该工具的先决条件

Watchit 的需求之一是尽可能轻巧且便携。这也意味着:

  1. 能够在从小型桌面计算机到大型服务器的任何平台上运行此应用程序

    • 打开或关闭远程主机或服务器的套接字是一个网络操作,不需要对运行此应用程序的图像进行大量处理工作。
    • 要执行 Lotus Sametime 模拟,仅需要来自 Lotus Sametime Java™ SDK 的一个 JAR 文件,该软件包随附提供该文件。
  2. 客户端只需安装少量软件

    • Watchit 的惟一软件要求是在路径中安装 JRE 1.4.2 或更高版本。
  3. 能够在任意操作系统上运行

    • Watchit 是以 Java 语言编写的应用程序,几乎可在任何平台上运行。Java JRE 1.4.2 提供对许多操作系统的原生支持,这些操作系统包括 Microsoft® Windows®、UNIX®、Linux® 和基于主机的系统,不需要在监视主机上安装特定操作系统的软件组件。

Watchit 属于多功能工具,它可以安装在网络的任何位置,还可以从同一个位置监控无数使用网络的应用程序和资源。此外,可考虑将其安装在报告问题的用户的工作站上,以为具体故障提供更好的数据集。

bot 结构和服务

Watchit bot 提供了一种简单方法可将监控创建为插件以扩展该工具的功能,使其匹配并支持任意用户环境。如前所述,bot 与 3 个插件一起提供,但是了解如何使用自定义插件来扩展功能也同等重要。

Watchit bot 读取由用户创建的 watchit.properties 文件,以识别使用该工具时启动了哪些插件。每个插件都是一个类文件集,它实现线程以执行那些使用提供的即时消息框架的具体任务,在发现问题时发送警报,并利用日志服务提供一个完整的插件输出日志。

watchit.properties 的示例如下所示:

# Invoke the healthchecker and awarecheck plugin classes
Plugin_Classes=healthchecker,awarecheck

当使用 bot 时,该属性会被读取且每个自定义类作为主 Watchit bot 的一个线程运行。自定义类插件可以使用任意 Java API 工具包或基 API 类,所以这些插件的内容是不可预测的。

Watchit bot 为插件开发人员提供要使用的服务,以将监控类快速集成到提供的框架中, 这使开发人员能够访问警报的简单 IMEasy 类和日志 API,以将所有 bot 输出合并到完整的活动日志中。附录 A 介绍了 IMEasy 框架。附录 B 介绍了日志服务。IMEasy 软件包由 watchit.sendchats() API 调用,它发送警报需要几行代码和由软件本身提供的所有必要的 bot 接口。

创建该插件很简单,并且提供的 API 使创建自己的应用程序警报变得更容易。我们可按照以下步骤和要求创建插件。

创建自定义类需要执行或提供以下内容以使其作为该 bot 的插件:

  • 公共的默认构造函数;例如,

    public awarecheck()

    此类名称是 watchit.properties 文件 Plugin_Classes 设置中的项。

  • 使用 javac -classpath IMEasy.jar;watchit.jar;.;STComm.jar 的编译
  • 线程的扩展,它作为 bot 的一个线程运行;例如,

    public class awarecheck extends Thread

    注意:bot 只在启用时调用线程(记住,每个插件都是一个线程);在线程终止之后,只有在重新调用 bot 时才会重启线程。

  • 为您的监控警报使用框架

    watchit.sendchats() 方法作为一个 API 调用予以提供,目的是为每个插件发送所有警报。它还简化了创建信息的任务。

  • 使用 Watchit 类提供的日志文件(参见附录 B)

    Watchit 提供了一个静态方法 printall(String) 以向 Watchit_YYMMDD_HH_MM_SS.log 添加日志项。所有日志记录都为日志增加了日期和时间戳;但是,插件的责任是在日志中确认本身,因为合并文件中写入了多个插件。这种方法可以更轻松地从想要的日志中提取特定的插件信息。本文中使用的规则是使用 watchit.properties 文件提供的 bot 名称作为信息的前缀。

应该使用监视器(插件)扩展 Watchit 工具,以囊括利用必要产品工具包的的组织关键任务。简单的代码要求和 IMEasy IM 软件包的使用使创建所需的任何信息都变得快速且简单。

运行工具

有时,此工具最好在需要的基础上运行或作为背景工作运行,而不是作为一个守护进程或 Microsoft Windows 服务任务。您可以下载包含 UNIX 和 DOS shell 脚本的文件,来调用本文“下载”部分的 Watchit 工具。 也可以将这些类封装在 Microsoft Windows 服务或 UNIX 守护进程任务中,以控制每个实例的执行。

要在 Microsoft Windows 的前台运行 Watchit bot,请使用此代码:

watchit.bat

要在 UNIX 或 Linux 操作系统的前台运行 Watchit bot,请使用此代码:

watchit.sh

使用后处理程序查看信息趋势

该工具随后处理程序脚本一起提供,该脚本需要 UNIX shell 和 awk 功能。任意 UNIX 或 Microsoft Windows 操作系统(使用 UNIX shell 模拟器)都可用于运行后处理程序工具。要查看特定示例的总结信息,将日志随同脚本作为输入。要查看趋势,连接日志文件并在合并的输出上运行后处理程序脚本。

要运行后处理程序,请使用此代码:

(From any unix shell) process_bot_output.sh <logname>

输出显示为标准输出和 <logname>.out 文件。

process_bot_output 后处理程序脚本的输出示例如图 3 所示。

图 3. process_bot_output 后处理程序脚本的输出
process_bot_output 后处理程序脚本的输出

后处理程序脚本的输出提供响应时间、总错误数和超过计数的性能阈值的平均数。对每个运行或联合运行的总结数据可以收集起来并制成图表。从 Lotus Sametime 和网络的角度来说,这种能力为测试提供了故障计数和性能统计。


何处以及何时使用 Watchit

Watchit 工具和框架既可以作为持续前瞻性监控工具,又可以作为服务帮助使用,它能够收集数据并再现问题。使用简单的 IM API (附录 A 中介绍了此 API,并且本文“下载”部分中的 watchit.zip 文件包含此 API)可使此工具从单个工作站监控整个部署,并立刻向组织中的任意用户或用户组发送警报。其日志(它生成准确的时间轴和用户收到的错误信息)使其变为一个收集数据或确定问题根本原因的有效工具。无论它是用作灵活的监控工具以解决具体关键任务功能,还是作为更高效处理功能或性能问题的调试帮助,目的都是将此模拟和监控工具轻松地安装到环境中的故障点或潜在薄弱点。

鉴于其有限的系统要求,Watchit 几乎可以在任何工作站运行。对于管理员灵活地部署功能来说,这一事实至关重要。任何支持 Java 1.4.2 和更高版本的平台都可以支持应用程序的多个实例,这使此工具的有效部署没有任何限制。在特定用户系统中可能需要直接运行实例,这取决于问题的性质。其轻量级的设计使该任务易于执行。

当考虑在何处安装 Watchit 实例时,可以将该工具看作是一个用户,当出现问题时,管理员团队首先会倾听该用户的意见。最好将其安装在用户连接性是关键任务的环境中。通过使用提供或创建的任何插件,该工具模拟用户活动,并在出现性能或功能问题时向管理员团队发送警报。当报告了问题并需要对其进行调试时,可以轻松地创建其他实例,以测试具体功能、连接性或功能性。

确定何时使用该工具是下一步需要考虑的事情。最好可以全天候地在整个环境中运行某种级别的监控。这不需要支付额外的费用,并且此覆盖范围为利用 Lotus Sametime 中的现有投资提供了额外收益。当出现问题时,最好将该工具安装在故障点以协助收集数据。日志通常比任何一个问题的用户报告都更可靠且更详细。无论是性能下降问题,还是与任何服务器或资源的用户连接断开问题,每个任务的具体问题都会记录下来,而且性能结果也会收集起来。

常规监控实例应该报告问题,其他实例可快速放置到适当的位置以进一步分离问题和测试排列。当实例位于恰当的位置并运行了多次之后,就可以使用日志查明错误或使用后处理程序脚本确定性能或故障趋势。


结束语

更主动地支持您的生产环境和更好地使用 Lotus Sametime 中的现有投资,这种能力由 Watchit 工具的实际使用决定。与使用产品工具包建模用户活动相比,使用应用程序框架创建新插件可提供更多价值。消息技术的本质应用可使应用程序变为有价值的资源,因为它们可以更好地模拟关键任务功能并立刻向相应的团队发送警报。

通过使用现有工具、框架和插件,该解决方案能够更好地了解用户体验,并使收集数据和再现问题变得更容易。该结果可缩短服务中断时间和解决问题的时间。总体来说,提前了解问题及其用户报告是为用户社区提供满意的服务水平的关键。

为什么在用户花费时间使用服务台打开故障单之前,一直需要等待?在您的方法中,您可以变得更主动以了解您的应用程序环境,同时增强在发生错误时捕获它们的能力。

.


附录 A:发送警报的 Watchit API

Watchit 工具提供了一个静态例程,任意插件都可以调用该静态例程轻松发送 IM 警报。

要求:JRE 1.4.2 和更高版本

每个插件共享相同的信息,这些信息是发送警报的用户、登录的服务器、密码和接收者列表。此共享通过 IMEasy.properties 文件实现,当工具调用以下例程时会读取该文件。

要向在 IMEasy.properties 文件中定义的管理员列表发送警报,可从 Watchit 工具正在运行的任意插件调用 sendchats 方法:

void sendchats(String error_to_im[], int error_index, boolean debug)

此代码定义为 watchit 类的静态方法。

当从任意插件调用了 watchit.sendchats() 方法后,会发送即时消息。

static synchronized void sendchats(String error_to_im[], int error_index, boolean debug)
	error_to_im	 -  String array containing IM content
	index	 -  # of entries in String array that need to be sent
default is to print all entries (even if empty entries are at the end of the array
in_debug -  turns on verbose logging to stdout
debug issues if IMs are not delivered

要运行该工具,需要在类路径值中找到 STComm.jar、IMEasy.jar 和 IMEasy.properties。watchit.bat 和 watchit.sh 脚本自动将这些文件添加到应用程序的执行中。

例如,清单 5 展示了如何调用此 API。在本例中,每个插件都提供了一个 sendchats API,该 API 是 watchit.sendchats() API 的封装器。

清单 5. 调用 API
	void sendchats()
	{
		if (!(Disable_IM))
		{
		watchit.sendchats(Errors, error_index,debug);

		if (service_log_failures) 
			Printnow("Date/time of Check: " + loop_time); 

     		

		if (debug)
			Printnow("chat thread is now completed");
		notification_complete=false;
		if (debug)
			Printnow("Alert delivered to user");
		}
		
	}

附录 B:Watchit bot 提供的 Log API

通过使用 watchit 类的 printall 方法,可以将任意 Watchit 插件写入日志文件。

要记录到 watchit 日志文件,使用:(来自 watchit 类)

static void printall(String printme)

注意:尝试使用 "MONITOR NAME: message text" 规则。此方法添加日期和时间。由您添加信息文本。

例如,

watchit.printall("Network Check: Network Scan Begin");
将输出:

07/01/09 12:59:14 Network Check: Network Scan Begin

日志文件被写为 watchit_YYMMDD_HH_MM_SS.log。


下载

描述名字大小
watchit.zip1.8MB

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Lotus
ArticleID=467033
ArticleTitle=使用 IBM Lotus Sametime 监控可用性、性能和基础架构以及其他要素
publish-date=02082010