简介
IBM® WebSphere® MQ 缺乏一个良好的监控工具。本文将向您展示如何使用来自 mega.com 的一个简单的基于 Web 的 WebSphere MQ 监控工具。本文面向那些想利用监控工具特性的 WebSphere MQ 管理员和用户,这些监控工具特性包括 WebSphere MQ 系统运行状况的可视化和 WebSphere MQ 对象(包括队列、主题、通道、听众和队列管理器)的自定义报警条件。
监控工具特性
- 监控多台主机上的多个队列管理器
- 使用相关的统计和自定义设置监控 MQ 对象,例如,您可以监控 ORDERS.QUEUE 的 currentQDpeth 并在折线图上显示其状态。
- 定义每个监控器的报警条件规则,以跟踪 MQ 对象的健康状况。
- 在 Web UI 的一个表中显示所有警报,并使用特定的标准启用查询警报。
- 根据需要停用和重新激活监控器。
- 在数据库中保存指定时间范围的历史监控统计。
- 提供具有多种模式的多个仪表板,汇总一组监控器。
监控器工具支持两种模式:
- 简单模式:允许任意监控器。
- 发送者-接收者模式:只允许使用两个队列监控器和两个通道监控器。
在仪表板上的实时图表中显示被监控 MQ 对象的统计信息和整个系统的状态统计信息:
- 监控 MQTT 客户端连接
- 测试 MQTT 客户端的连通性
- Java® servlet 容器的简单而又灵活的部署
- 可配置的数据库,用于存储统计信息
架构
- 后端:Java™ 标准 Web 应用程序
- 前端:基于 Dojo 的 Web UI。
- 数据库:IBM DB2®、嵌入式 Derby(默认)、MySQL® 和 Oracle®。
- 开发:监控工具是使用 Dojo Toolkit 开发的。
部署
该监控工具易于安装,因为它被实现为一个标准的 Java Web 应用程序。您可以在任意的 Java EE 应用服务器或任何 Java servlet 引擎上轻松部署它。在完成部署后,将会启动并运行监控应用程序。
先决条件
在安装 WebSphere MQ 监测工具之前,请确保您已经安装了以下软件。
- 安装 WebSphere MQ V7.1 或其更高版本。
- 安装一个 Java EE 应用程序服务器(比如 WebSphere Application Server for Developers),或一个 servlet 引擎,支持 Servlet 2.5 或其更高版本(如 Apache Tomcat)。
有关安装 WebSphere MQ 或 Java EE 应用程序服务器的信息,请参阅 安装 WebSphere MQ、安装 WebSphere Application Server,或适用于另一个 Java EE 应用程序服务器或 servlet 引擎的类似信息。
安装
将监控应用程序作为一个 WAR 文件部署到 Java EE 应用程序服务器或 servlet 引擎。如需定制,请解压缩 WAR 文件,根据需要修改配置文件并重新部署。
配置
如需自定义设置,请解压缩 WAR 文件,在 WEB-INF 目录中找到 config.properties 文件,并根据此配置文件中的注释更新应用程序的特定设置。仔细编辑该文件,因为无效的设置可能会阻止监控应用程序启动。
监控器默认情况下会使用嵌入式 Apache Derby 数据库。如需配置数据库或使用不同的数据库,请解压缩 WAR 文件,在 WEB-INF 目录中找到 jdbc.properties 文件,并编辑配置文件,切换到您的首选数据库。您还需要将相应的数据库驱动程序 JAR 文件放入 WEB-INF/lib 目录。监控器采用 Apache OpenJPA 作为持久性提供程序,因此 Apache OpenJPA 支持的任何数据库都应该是可用的。在启动监控器时,会自动生成数据库架构。对于大量的数据负载,应考虑切换到更强大的数据库,如 MySQL,因为如果有许多监控器在使用所收集的大量数据,那么 Apache Derby 可能无法很好地工作。
登录和密码
监控器需要进行登录和身份验证。输入默认用户 ID/密码(mqadmin/mqadmin),然后单击 Login。在首次登录后,您会被重定向到首页,您应该立刻在这里将密码更改为更安全的密码。
如需注销,请单击主页右上角的 Username,单击下拉列表中的 Sign out ,然后单击 OK 确认。如果不需要进行注销,并且较长时间没有使用工具,系统会自动将您注销,并要求您重新登录。
如需更改密码,请单击右上角的 Username,从下拉列表中选择 Edit profile,输入您的当前密码和新密码,然后单击 Save 确认更改。
创建连接
单击 Connection 选项卡,监控一个队列管理器。
Connection 选项卡

单击 New QM Connection 创建一个连接,它代表对队列管理器的连接。
创建连接对话框

为了连接到远程队列管理器,需要下面的连接元数据:
- Name -- 连接的惟一标识符。
- Server Host -- 尝试连接的 Queue Manager 的主机。
- Server Port -- 尝试连接的 Queue Manager 的侦听端口。
- Server Connection Channel -- Queue Manager 的服务器连接通道。
- MQ User ID -- 可访问服务器连接通道的已授权的 MCA User ID。
- Description -- 连接的基本描述。
QueueManager 选项卡

一旦连接到队列管理器,Monitors 选项卡就会变得可用。如果队列管理器的 MQTT 服务是 Available,这意味着它已配置和启动,MQTT 选项卡可用。
创建监控器
单击选定的连接,打开用连接名称来命名的新选项卡,然后打开 Monitors 选项卡:
Monitors 选项卡

在 Monitors 选项卡中有六个按钮:
Monitors 选项卡中的工具栏

- Add -- 打开一个对话框,创建一个监控器。
- Refresh -- 刷新当前连接的所有监控器。
- Edit -- 选择一个监控器,打开属性对话框,编辑监控器设置。
- Delete -- 选中并删除一个监控器。
- Activate -- 启动监控器,并开始从队列管理器收集数据。
- Deactivate -- 信用监控器,并停止从队列管理器收集数据。
单击 Add 打开 Create Monitor 对话框:
创建监控器对话框

监控器元数据包括以下信息,用于监控 MQ 对象:
- Monitor Name -- 监控器的惟一标识符。
- Monitor Category -- 监控器的类别:Queue、Topic、Channel 或 Listener。
- Monitor Type -- 监控器的详细 MQ 对象类型。
- Monitor Measurement -- 被监控的 MQ 对象的属性。
- View Type -- 监控器将会显示的视图:Line 或 Area。
- Monitor Object -- 被监控的 MQ 对象名称。
- Update Every -- 监控器视图更新频率。
- Sliding Window -- 监控器视图显示的时间间隔:显示最新的 N 分钟、小时或天。
- Data Expiration Time -- 历史数据保存多长时间。N 分钟、小时或天之后,将从数据库中删除数据。
- Alert Rule -- 这些规则用于评估被监控的 MQ 对象的健康状况,并生成可在警报选项卡中查看的警报。使用 LDAP 筛选器语法,如下所示:
boolean-operator ::= '&' | '|' operator ::= '>' | '<' | '>=' | '<=' | '!=' property ::= the value defined in the monitor measurement dropdown list value ::= most of cases are numeric values, and also there are status values that are different from object to object expr ::= (property operator value) alert-rule ::= warn(boolean-operator(expr)(expr)(expr)...), error(boolean-operator(expr)(expr)(expr)...)
示例
队列警报规则 1
规则 -- Warn(|(currentQDepth>1000)(openInputCount>100)),error(&(currentQDepth>30000)(openInputCount>200))
描述 -- 如果 currentQDepth>1000 或 openInputCount>100,则发出警告性的警报;如果 currentQDepth>30000 并且 openInputCount>200,则发出错误警报
队列警报规则
规则 -- Warn(currentQDepth>1000),error(currentQDepth>4000)
描述 -- 如果 currentQDepth>1000,则发出警告性的警报;如果 currentQDepth>4000,则发出错误警报
主题警报规则
规则 -- warn(publishedMessagesCount>1000)
描述 -- 如果 publishedMessagesCount>1000,则发出警告性的警报
通道警报规则
规则 -- Warn(channelStatus=Stopped)。可用的 channelStatus 值是 Stopped、Running、Stopping、Inactive、Initializing、Binding、Starting、Paused、Retrying 和 Requesting。
描述 -- 如果 channelStatus 是 Stopped,则发出警告性的警报。
侦听警报规则
规则 -- Warn(listenerStatus=Stopped)。可用的 listenerStatus 值是 Starting、Running、Stopping 和 Stopped。
描述 -- 如果 listenerStatus 是 Stopped,则发出警告性的警报。
队列管理器警报规则
规则 -- Error(queueManagerStatus=Unavailable)。可用的 queueManagerStatus 值是 Starting、Running、Quiescing 和 Unavailable。
描述 -- 如果 queueManagerStatus 是 Unavailable,则发出警告性的警报。
这些规则的注释
警报规则的无效属性输入会阻止监控器评估被监控 MQ 对象的健康状况。在属性上不必执行验证,因此也不会生成任何警告信息。
创建监控器的另一个方法是,在 Connection 选项卡的左侧导航中右键单击所选中的连接,并在下拉菜单中单击 Create Monitor。
连接的右键菜单

- Create Monitor -- 打开 Create Monitor 对话框。
- Edit Connection -- 打开 Edit Connection 对话框,编辑连接属性。
- Delete Connection -- 删除连接。如果删除连接,那么在该连接中创建的所有相关监控器也将被删除。
管理监控器
如果成功地创建了监控器,那么所有监控器都将在 Monitors 选项卡的网格中显示。
监控器管理

选中一个监控器,然后单击 Activate 启动监控器,或单击 Deactivate 停止监控器。
监控 MQTT 客户端
如果已配置和启动 MQTT 服务,则会启用 MQTT 选项卡:
监控 MQTT 客户端

工具栏操作:
- Filter -- 启用或禁用 MQTT 筛选器搜索的复选框。
- Filter object -- 下拉列表。从 客户端 id、通道名称、连接名称 或 通道状态 选择一个筛选器对象。
- Filter string -- 输入文本框,用于输入筛选字符串,支持通配符,如 “*”。
- Search -- 搜索 MQTT 客户端。
- Refresh -- 刷新搜索结果。
- Previous page -- 前 100 个搜索结果。
- Next page -- 后 100 个搜索结果。
- Monitor -- 单击打开 Monitor MQTT 选项卡。
- 如果一个筛选器对象或字符串发生更改,或者某个筛选器被启用或禁用,请单击 Search 刷新下表。单击 Refresh 只刷新最新的搜索结果。
- 每个请求最多可以有 100 个结果,在此选项卡的底部,会对这些结果进行分页。
监控 MQTT pub/sub
单击 Monitor 打开 Message 选项卡,监控 MQTT:
Message 选项卡

单击 Configuration 添加主题:
添加和删除主题

这个步骤和在简单仪表板中添加/删除监控器是一样的。从 Topic 下拉列表中选择一个主题。主题监控器将被自动激活。主题测量指标是已发布的消息数,所以发送消息给选定的主题时,监控器将随之更新。
选择一个要监控的主题

发送消息给主题或 MQTT 客户端

- Mode -- 消息发送模式,默认模式是 PubSub。
- Destination -- 如果模式为 Pubsub,则会列出所有可用主题。如果模式为 P2P,则会列出所有可用的 MQTT 客户端。
选中一个目标,在文本框中输入文本,然后单击 Send。如果消息发送成功,历史记录将会显示在框中。
创建仪表板
仪表板是一组监控器的可视化显示。仪表板可以对特定用例应用某种显示模式。目前支持简单模式和发送者-接收者模式。仪表板可以通过利用模式以更合适的方式显示监控器,更好地满足业务场景:
创建仪表板:

仪表板元数据包含以下信息:
- Name -- 仪表板的惟一标识符。
- Type -- 仪表板显示模式
- Simple -- 允许任意监控器。
- SenderReceiver -- 只允许两个队列和两个通道。
- Description -- 仪表板的基本描述。
Simple 仪表板
在这种仪表板中,可以添加任意监控器:
Simple 仪表板

单击 Add/Remove Monitors 管理此仪表板中的监控器。
在 Simple 仪表板中添加/删除监控器

- Available Monitors -- 所有已连接的可用监控器。
- Selected Monitors -- 此仪表板中的现有监控器。
- >> -- 将可用监控器添加到仪表板。
- << -- 删除现有监控器。
如果显示器处于非活动状态,请单击位于每个监控器的中央或右上角的 Activate。
激活仪表板中的监控器

监控器图表:
监控器标题

- Title text -- 监控器对象。
- Tooltip -- 鼠标在标题文本上方悬停时,Tooltip 将会显示连接名称和监控器名称。
- Penultimate field -- 最新监控器数据的状态。
- Last field -- 停止和停用监控器。
仪表板支持两种图表:Line Chart(折线图)和 Area Chart(面积图)。面积图是首选的监控测量,如 channelStatus 和 listenerStatus。
面积图

折线图

详细信息

底部的表格显示了监控器的详细信息,每五分钟刷新一次。单击右侧的滚动按钮可查看更多的信息。
SenderReceiver 仪表板
SenderReceiver Dashboard 监控主题消息场景,来自传输队列的消息通过发送者-接收者通道发送,并且将信息传输到目标队列,这通常是一个本地队列。当监视传输队列时,可能还需要知道发送者/接收者通道,以及将会接收消息的目标队列的状态。SenderReceiver 仪表板向您显示幕后的事情:
SenderReceiver 仪表板

单击 Add/Remove Monitors 管理 SenderReceiver 仪表板中的监控器:
在 SenderReceiver 仪表板中添加/删除监控器

从下拉列表中选择监控器,并如上所述,在仪表板的特定位置添加或删除它们。否则,SenderReceiver 仪表板就和 Simple 仪表板一样。
警报
Alert 选项卡收集活动监控器基于监控器创建过程中所定义的警报条件而生成的所有警报信息:
Alert Tooltip

Tooltip 显示警报消息的总和,每 50 秒更新一次。
Alert 选项卡

在每次访问 Alert 消息表后都会刷新它:
- Connection -- 在其中创建监控器的连接。
- Monitor -- 生成警报消息的监控器。
- Level -- 警报级别:Warn(警告)或 Error(错误)。
- Rule -- 监控警报规则项。一条规则可以包含多个项目。
- Result -- 表示条件得到满足的警报原因。
- Time -- 生成警报消息的时间。
结束语
本文向您展示了如何使用一个简单的、可下载的、基于 Web 的 WebSphere MQ 监控工具,提供可视化和 WebSphere MQ 对象(包括通道、听众、主题、队列和队列管理器)自定义报警条件。