WebSphere Business Monitor(以下称为Monitor)可以对许多事件源进行业务监控。从WebSphere Message Broker(以下称为MB)6.1.0.2开始,Monitor可以监控运行在MB中的消息流。本文将介绍Monitor监控MB的工作原理和具体步骤。
Monitor监控MB消息流的工作原理
Monitor是通过接收由事件源发送的事件,从接收到的事件中获取所需的信息,并进一步地对获取的信息进行综合计算和分析,从而实现对事件源的业务监控。在MB 6.1中,当有消息流过消息流中的节点时,如果该节点中的监控事件被启用,则MB 6.1运行时将生成该监控事件,并将该事件发布到消息流所在的Broker上的特定的发布/订阅主题上。Monitor运行时上部署了一个Message Driven Bean(MDB)应用程序,该MDB是该发布/订阅主题的订阅者。当接收到监控事件时,该MDB将该事件封装成Monitor所能处理的事件格式,即Common Business Event(CBE)格式,然后将给CBE事件发送给Monitor进行处理。
使用Monitor监控MB消息流的具体步骤
相比MB 6.1.0.2,使用Monitor监控MB 6.1.0.3以及后续版本的操作要简单且使用人群更多。以下的描述是针对MB 6.1.0.3。
下文中用到的消息流工程以及WMBEvent.xsd和MDB 应用程序WMBEventEmitter.ear,可以通过在MB Toolkit导入例子“WebSphere Business Monitor sample”而获得,获得方法参见资源栏。
1. 在MB Toolkit中定义并启用节点的监控事件
要使Monitor能够监控MB中的消息流,在WebSphere Message Broker Toolkit(以下称MB Toolkit)中开发消息流时,需要增加一个步骤:定义并启用节点的监控事件。
在MB Toolkit 6.1.0.3中,打开消息流文件,左键点击空白处,可以看到在MB Toolkit的下方的属性页面新增了Monitoring页面,这里显示的是整个消息流中所有节点所定义的监控事件以及启用情况。默认情况下,所有被定义的监控事件都是处于启用状态,你也可以禁用暂时不需要的某个监控事件。
点击消息流的某个节点,在该节点的属性页面的Monitoring项中显示的是该节点所定义的监控事件以及启用情况。要为某个节点定义监控事件,点击Monitoring页面中的Add按钮。
两种类型的MB监控事件
不同类型的节点所能发送的监控事件是不同的。总体说来,MB监控事件分为两种类型:事务事件(Transaction start,Transaction end 和 Transaction rollback)和端点事件。其中,只有各种Input节点能够发送事务事件,例如MQInput或JMSInput或HTTP Input节点,而端点事件可以由任意类型的节点发出。
例如,MQInput节点能发送的事件类型如下:
而MQOutput节点能发送的事件类型如下
MB监控事件的格式
MB监控事件是由WMBEvent.xsd所定义。
以下是MB监控事件的样例。
此外,还可以将输入消息的某些字段或整体作为监控事件的负载包含在监控事件中一起发送。
带payload的MB监控事件样例如下:
在完成对监控事件的定义和启用控制之后,即可以继续开发消息流或将其部署到MB运行时。
2. 在MB 运行时中启用监控功能
将开发完成的消息流部署到MB运行时的某个代理的某个执行组之后,需要启用MB运行时的监控功能,才能使MB在消息流过消息流时发送出该消息流所启用的监控事件。默认情况下,该项功能是被禁用的。打开MB的命令控制台,运行命令行mqsichangeflowmonitoring %BROKER% -g –j –c active来启动所有运行在指定代理上的的任意执行组上的任意消息流的监控事件,
或者运行命令行mqsichangeflowmonitoring %BROKER% -e %EXECUTIONGROUP% –f %MESSAGEFLOW% –c active来启动该BROKER上的指定执行组上部署的指定消息流的监控事件。
3. 创建JMS发布-订阅所需队列以及服务器连接通道Server-connection Channel
MB是通过JMS发布-订阅的模式将所发送的监控事件推送到Monitor Server的,因此必须通过运行位于%MQ_HOME%\Java\bin的脚本MQJMS_PSQ.mqsc,为队列管理器创建支持发布-订阅功能所需要的队列。
另外,为使Monitor能够链接到队列管理器以订阅和收取发布的监控事件,还需要为队列管理器创建服务器连接通道Server-connection Channel。这里,我们使用的通道名字为MB163.MON。
4. 在Monitor Server上配置JMS资源和消息监听端口并部署MDB应用程序
Monitor Server是通过在MQ的队列管理处订阅特定主题的消息,从而能够获取MB所发送的监控事件;当收到MB所发送的监控事件后,还需要通过MDB将该事件封装成为Monitor所能处理的CBE事件格式,并将封装后的CBE发送给Monitor。为此,必须在Monitor Server上配置相应的JMS资源和监听端口以及部署MDB。
创建JMS 主题连接工厂和JMS主题
登录Monitor Server管理控制台,点击Resources->JMS,在这里可以选择创建JMS 主题连接工厂和JMS主题。
先点击选择主题连接工厂(Topic Connection Factories),选定所需的Scope,点击New,选择JMS resource provider类型。这里我们选择的是WebSphere MQ messaging provider。对于主题(Topcis),选择相同的provider类型。
对于主题连接工厂,需要指定的参数具体如下,其他的参数可以使用默认值。其中,Channel是之前创建的服务器连接通道MB163.MON。另外,在创建消息监听端口时,我们需要使用主题连接工厂的JNDI name。
对于JMS主题,需要特别注意的是基准主题名(Base topic name),这里需要填入的是MB监控事件所用的主题。MB监控事件的主题是具有特定格式的,其格式如下:
$SYS/Broker/<brokerName>/Monitoring/<executionGroupName>/<flowName>
其中,<executionGroupName> 和<flowName>分别部署了消息流的代理,执行组的名字以及消息流的名字。也可以通过通配符来实现监听任意执行组上的任意消息流,例如
$SYS/Broker/<brokerName>/Monitoring/<executionGroupName>/#
可以用于监听指定的代理的执行组上所部署的所有消息流的监控事件。
类似的,在创建消息监听端口时,我们需要使用主题的JNDI名。
部署MDB应用程序WMBEventEmitterEAR.ear
MDB应用程序的来源参见资源部分。可以从MB Toolkit的项目工程所在的文件夹中找到包含该应用程序的安装文件的压缩包,解压缩之后得到安装文件WMBEventEmitterEAR.ear,即可通过Monitor的管理控制台进行安装。
在管理控制台的左侧,点击选取Applications,再选择Enterprise Applications
点击Install,选择WMBEventEmitterEAR.ear所在位置,并选择显示所有选项以显示该WMBEventEmitterEAR默认的消息监听端口的名字。点击Next以开始安装。
在安装过程中并不需要修改或添加任何配置信息,只需要在第4步时注意所用的监听端口名字以便在下一步创建消息监听端口。这里看到所用的名字是WMBMDBEventListener。
创建消息监听端口Message Listen Port
在Monitor的管理控制台上,点击Servers,再点击Application servers。
点击server名字,在Communications->Messaging中点击Message Lister Services,再点击打开Listener Ports。
点击New创建消息监听端口,其中,消息监听端口的Name即MDB应用程序安装过程中所用的名字WMBMDBEventListener,还有之前创建的主题链接工厂和主题的JNDI name。
重启Monitor Server并检查配置正确
为使上述配置工作生效,必须重启Monitor Server。重启完成后,可以通过检查以下几个方面,确定配置是正确的。
在Monitor Server 端,确保MDB应用程序和消息监听端口都处于启动状态。
在MQ端,确保所使用队列管理器的服务器连接通道处于运行状态。
在MB的代理管理界面,确保该代理包含有来自Monitor Server的订阅。
5. 使用Monitor Model Editor 开发监控模型Monitor Model
监控模型(Monitor Model)定义了Monitor运行时定义如何对接收到的事件进行处理。每次消息流过该消息流将调用一次消息流,一次消息流调用会创建一个监控实例。
Monitor Model Editor(此后称MME)是监控模型的开发工具。在MB 6.1.0.3的下一个版本中(版本号未定),将增加一个模型自动生成工具来自动生成监控模型,极大地简化了开发MB所用的监控模型的工作量。可以将WebSphere Business Monitor sample中的监控模型导入到MME中。我们可以看到,需要将MB监控事件的定义文件导入到监控模型的项目工程中;视乎需要,还可以将该消息流的消息定义文件也导入。
5. 部署监控模型
要使上述监控模型能够工作,需要将上述监控模型生成J2EE应用程序并部署到Monitor Server上。在MME中,右键点击指定的监控文件,点击Generate J2EE application。等待其完成,切换到Java EE视图后将生成的应用程序导出成为可部署的.ear文件。
登录到Monitor Server的管理控制台,点击Applications->Monitor Models,点击Install,然后就可以以类似安装WMBEventEmitterEAR.ear的方式安装监控模型应用程序。
确保安装成功后监控模型应用程序可以处于启动状态。
6. 在Business Space上进行实时业务监控
可以在MB toolkit中使用Test要能实时查看对消息流的运行情况的监控结果,可以登陆到Monitor 的展示平台Business Space。
在Instance View展示的是每次消息流调用发送的监控事件所对应的实例。监控的对象包括关于消息流调用的信息以及消息的内容。
在KPI View展示的是对所有实例或者满足特定条件的实例的统计信息,如这个例子中的GOLD类型和REGULAR类型的客户的统计。KPI的展示可以有多种形式。
还可以从KPI View上追溯到某个统计值所涉及的实例。
资源
在MB toolkit 中,点击Help->Samples Gallery,搜索关键字”monitor”,即可获取WebSphere Business Monitor sample。
导入该例子后,可以在MB Toolkit看到该项目工程包括WMBEvent.xsd,MDB应用程序的安装文件和若干消息流的输入消息样本,以及监控模型例子。
22_mqsichangeflowmonitoring.jpg
24_Server connection Channel.JPG
25_Server connection Channel 2.JPG
52_Server connection channel running.jpg
63_KPI view show instances.jpg
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21443717/viewspace-600699/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21443717/viewspace-600699/