跳到主要内容

接收消息总线事件

PubSub+ 事件代理可以配置为生成提供管理和状态信息的事件,并将它们作为直接消息发布到事件代理消息总线上的知名主题。

以下类型的事件消息可以发布到消息总线:

  • 系统 — 具有事件代理或系统范围的事件(即,它们是涉及整个事件代理的事件 — 不限于特定的消息 VPN 或特定客户端)。系统范围事件的示例包括风扇警报、硬件故障事件等。请参阅发布系统事件。
  • 消息 VPN — 与特定消息 VPN 相关的事件。消息 VPN 事件的示例是在给定消息 VPN 的设定消息速率阈值被超过时生成的消息速率事件。(请参阅发布消息 VPN 事件。)
  • 客户端 — 与特定消息 VPN 的客户端连接相关的事件。这些可能是客户端连接和断开等事件。客户端事件消息仅在事件发生的消息 VPN 上发送。(请参阅发布客户端事件。)
  • 订阅 — 与添加到或从消息 VPN 中删除的客户端主题订阅相关的事件。订阅和取消订阅事件消息仅在事件发生的消息 VPN 上发送。(请参阅发布订阅事件。)

使用 PubSub+ 消息 API 的管理应用程序可以通过订阅事件发布的特定主题来接收这些事件消息(这些主题在标准事件消息主题和文本摘要表中列出)。

有关可能事件的详细列表和每个事件的描述,请参阅 Syslog 事件参考。

配置事件代理事件发布

要能够接收通过事件代理消息总线发布的事件消息,必须启用通过事件代理消息总线发布事件。还可以进行其他事件配置更改以发布事件消息。

  • 发布系统事件
  • 发布消息 VPN 级别事件

发布系统事件

默认情况下,通过事件代理消息总线发布系统事件消息未启用。

要启用事件代理发布系统事件消息,必须将一个当前处于启用状态的消息 VPN 配置为管理消息 VPN。(只能将一个消息 VPN 配置为管理消息 VPN。)一旦配置了管理消息 VPN,系统事件消息将始终发布到该管理消息 VPN。(如果没有配置管理消息 VPN,则事件代理不会发布系统事件消息。)

一旦配置了管理消息 VPN,必须启用系统级别事件消息的发布。

  • 要将消息 VPN 设置为管理 VPN,请输入以下 CONFIG 命令:

    solace# configure
    solace(configure)# management-message-vpn <vpn-name>

    其中:

    • <vpn-name> 是要指定为管理消息 VPN 的消息 VPN 的名称。

    此命令的 no 版本(no management-message-vpn)将从消息 VPN 中移除管理消息 VPN 的指定。

  • 要启用系统事件消息的发布,请使用以下 Logging Event CONFIG 命令:

    solace(configure)# logging event
    solace(configure/logging/event)# publish-system

    此命令的 no 版本(no publish system)将关闭系统事件消息的发布。

  • 要查看系统范围配置的当前状态,请输入以下 User EXEC 命令。

    示例:

    solace(configure/logging/event)# show logging event
    System-tag:
    Publish System Event Messages: Disabled

发布消息VPN级别事件

默认情况下,通过事件代理消息总线发布消息 VPN、客户端和订阅事件消息未启用,必须根据您希望在每个消息 VPN 上启用的类型逐个启用。

如果未启用通过事件代理消息总线发布消息 VPN、客户端和/或订阅事件消息,事件仍将写入 syslog。

这些事件类型的事件消息可以发布到事件发生的消息 VPN 中的消息总线。

  • 发布消息 VPN 事件
  • 为发布的事件设置主题格式
  • 发布客户端事件
  • 发布订阅事件

发布消息VPN事件

要启用消息 VPN 的消息 VPN 事件发布,请输入以下 CONFIG 命令:

solace(configure)# message-vpn <vpn-name>
solace(configure/message-vpn)# event
solace(configure/message-vpn/event)# publish-message-vpn

此命令的 no 版本(no publish-message-vpn)将关闭给定消息 VPN 的消息 VPN 事件消息的发布。

为发布的事件设置主题格式

默认情况下,事件代理的所有事件日志都发布到以 #LOG/ 为前缀的主题。

然而,在消息队列遥测传输(MQTT)主题语法中,“#” 字符被保留为“零个或多个级别”的通配符。因此,为了使应用程序能够使用 MQTT 会话订阅接收发布的事件日志,您必须配置事件代理发布事件日志到与 MQTT 订阅兼容的主题。

要为消息 VPN 设置发布的事件的主题格式,请输入以下 CONFIG 命令:

solace(configure/message-vpn/event)# publish-topic-format [smf] [mqtt]

其中:

  • smf 指定应使用 SMF 主题语法发布事件,格式为 #LOG/<log-level>/<event-specific-content>。这是发布的事件日志使用的默认主题格式。

  • mqtt 指定应使用 MQTT 主题语法发布事件,格式为 $SYS/LOG/<log-level>/<event-specific-content>

    • 必须至少指定一个选项。如果同时指定了两种格式,事件日志将使用每种指定的主题格式发布。
    • 为了使消费者能够从队列中接收事件,队列必须以 SMF 格式订阅事件,并且事件必须使用 SMF 主题语法发布。
    • 此命令的 no 版本(no publish-topic-format)将参数重置为其默认值 smf

发布客户端事件

要启用消息 VPN 的客户端事件发布,请输入以下 CONFIG 命令:

solace(configure)# message-vpn <vpn-name>
solace(configure/message-vpn)# event
solace(configure/message-vpn/event)# publish-client

此命令的 no 版本(no publish-client)将关闭给定消息 VPN 的客户端范围事件的发布。

发布订阅事件

要启用消息 VPN 的订阅添加/删除事件消息发布,请输入以下 CONFIG 命令:

solace(configure)# message-vpn <vpn-name>
solace(configure/message-vpn)# event
solace(configure/message-vpn/event)# publish-subscription [no-unsubscribe-events-on-disconnect] [event-topic-format {v1 | v2}]

其中:

  • no-unsubscribe-events-on-disconnect 配置发布订阅事件时忽略客户端断开连接时每个客户端订阅的取消订阅事件。

  • event-topic-format v1 将订阅事件的主题结构设置为形式 #LOG/INFO/SUB_ADD|SUB_DEL/<subscribedTopic>

  • event-topic-format v2 将订阅事件的主题结构设置为形式 #LOG/INFO/SUB/<routerName>/ADD|DEL/<vpnName>/<clientName>/<subscribedTopic>

    • 此命令的 no 版本(no publish-subscription)将关闭给定消息 VPN 的订阅添加/删除事件消息的发布。
    • 在消息 VPN 中启用订阅级别事件到消息总线的发布可能会影响事件代理上的订阅性能。
    • 订阅事件主题不应超过最大主题字符串长度。超过最大长度的主题字符串将被截断。有关主题结构的更多信息,请参阅主题支持和语法。

查看VPN事件发布配置

可以通过 show message-vpn User EXEC 命令查看消息 VPN 的当前事件发布配置和状态。