跳到主要内容

订阅消息总线事件

要接收在事件代理消息总线上发布的事件消息,应用程序必须连接到事件发生的消息 VPN 并订阅相关事件主题。

本节涵盖以下事件主题订阅:

  • 系统事件主题
  • 消息 VPN 事件主题
  • 客户端事件主题
  • 订阅事件主题
  • 取消订阅事件主题

标准事件消息摘要

下表总结了每种标准事件消息的标准事件消息主题和文本。

事件类型主题消息文本
系统#LOG/<level>/SYSTEM/<routerName>/<eventName>
$SYS/LOG/<level>/SYSTEM/<routerName>/<eventName>SYSTEM: eventName: - - descriptiveText
消息-VPN#LOG/<level>/VPN/<routerName>/<eventName>/<vpnName>
$SYS/LOG/<level>/VPN/<routerName>/<eventName>/<vpnName>VPN: eventName: vpnName - descriptiveText
客户端#LOG/<level>/CLIENT/<routerName>/<eventName>/<vpnName>/<clientName>
$SYS/LOG/<level>/CLIENT/<routerName>/<eventName>/<vpnName>/<clientName>CLIENT: eventName: vpnName clientName descriptiveText
订阅
版本 1 (V1)#LOG/INFO/SUB_ADD/<subscribedTopic>
$SYS/LOG/INFO/SUB_ADD/<subscribedTopic>routerName vpnName clientName SUBSCRIPTION_ADD subscribedTopic clientUsername clientAddr subMgrClientName subMgrUsername subMgrAddr
取消订阅
版本 1 (V1)#LOG/INFO/SUB_DEL/<subscribedTopic>
$SYS/LOG/INFO/SUB_DEL/<subscribedTopic>routerName vpnName clientName SUBSCRIPTION_DELETE subscribedTopic clientUsername clientAddr subMgrClientName subMgrUsername subMgrAddr
订阅
版本 2 (V2)#LOG/INFO/SUB/<routerName>/ADD/<vpnName>/<clientName>/<subscribedTopic>
$SYS/LOG/INFO/SUB/<routerName>/ADD/<vpnName>/<clientName>/<subscribedTopic>routerName vpnName clientName SUBSCRIPTION_ADD subscribedTopic clientUsername clientAddr subMgrClientName subMgrUsername subMgrAddr
取消订阅
版本 2 (V2)#LOG/INFO/SUB/<routerName>/DEL/<vpnName>/<clientName>/<subscribedTopic>
$SYS/LOG/INFO/SUB/<routerName>/DEL/<vpnName>/<clientName>/<subscribedTopic>routerName vpnName clientName SUBSCRIPTION_DELETE subscribedTopic clientUsername clientAddr subMgrClientName subMgrUsername subMgrAddr

标准事件消息主题和文本摘要

  • 应用程序可以通过订阅以下主题接收消息 VPN 上发布的所有事件:

    • 当事件使用 SMF 主题语法发布时:#LOG/>
    • 当事件使用 MQTT 主题语法发布时:$SYS/LOG/#

    请注意,对事件消息主题的订阅是直接主题匹配。例如,订阅 #LOG/WARNING/> 的应用程序仅接收警告级别的事件消息,而不是更高级别或更低级别的事件消息。

  • 应用程序可以通过订阅以下主题接收消息 VPN 上的所有订阅和取消订阅事件,但不接收任何其他事件消息:

    • 当事件使用 SMF 主题语法发布时:#LOG/INFO/SUB*/>
    • 当事件使用 MQTT 主题语法发布时:$SYS/LOG/INFO/SUB_ADD/#$SYS/LOG/INFO/SUB_DELETE/#
  • 除订阅和取消订阅事件外,所有事件代理事件日志和所有发布的事件都包含 ISO 8601 格式的时间戳。

系统事件主题

要接收使用 SMF 主题语法发布的事件代理消息总线上的系统范围事件,请订阅:

#LOG/<level>/SYSTEM/<routerName>/<eventName>

要接收使用 MQTT 主题语法发布的事件代理消息总线上的系统范围事件,请订阅:

$SYS/LOG/<level>/SYSTEM/<routerName>/<eventName>

其中:

  • <level> 是消息事件严重性级别:crit、err、warning、notice 或 info。详细信息请参阅使用 Syslog 监控事件。
  • <routerName> 是事件发生的事件代理的名称。
  • <eventName> 是在 Syslog 事件参考中列出和描述的事件消息的名称。

示例:

#LOG/INFO/SYSTEM/rtr215/SYSTEM_CHASSIS_FAN_HIGH

事件日志文本和发布的消息文本都格式化如下:

timestamp level routerName SYSTEM: eventName: - - descriptiveText

示例:

2008-05-24T09:40:41-0400 <local3.info> rtr215 SYSTEM: SYSTEM_CHASSIS_FAN_HIGH: - - Fan 1 speed high threshold exceeded

要接收使用 SMF 主题语法发布的事件代理消息总线上的所有系统范围事件,请订阅:

#LOG/*/SYSTEM/>

要接收使用 SMF 主题语法发布的特定事件代理上的所有系统范围事件,请订阅:

#LOG/*/SYSTEM/<routerName>/>

要接收使用 MQTT 主题语法发布的事件代理消息总线上的所有系统范围事件,请订阅:

$SYS/LOG/+/SYSTEM/#

要接收使用 MQTT 主题语法发布的特定事件代理上的所有系统范围事件,请订阅:

$SYS/LOG/+/SYSTEM/<routerName>/

消息VPN事件主题

消息 VPN 事件将根据选定的事件发布主题格式(SMF 或 MQTT)发布。更多信息请参阅为发布的事件设置主题格式。

要接收使用 SMF 主题语法从事件代理消息总线发布的消息 VPN 范围事件,请订阅:

#LOG/<level>/VPN/<routerName>/<eventName>/<vpnName>

要接收使用 MQTT 主题语法从事件代理消息总线发布的消息 VPN 范围事件,请订阅:

$SYS/LOG/<level>/VPN/<routerName>/<eventName>/<vpnName>

其中:

  • <level> 是消息事件严重性级别:crit、err、warning、notice 或 info。详细信息请参阅使用 Syslog 监控事件。
  • <routerName> 是事件发生的事件代理的名称。
  • <eventName> 是在 Syslog 事件参考中列出和描述的事件消息的名称。
  • <vpnName> 是事件发生的消息 VPN 的名称。

示例:

#LOG/INFO/VPN/rtr215/VPN_VPN_EG_MSG_RATE_HIGH/blue

事件日志文本和发布的消息文本都格式化如下:

timestamp level routerName VPN: eventName: vpnName - descriptiveText

示例:

2008-05-24T09:40:41-0400 <local3.info> rtr215 VPN: MSG_RATE: blue - Maximum message rate threshold exceeded

要接收使用 SMF 主题语法从事件代理消息总线发布的客户端连接的消息 VPN 的所有消息 VPN 范围事件,请订阅:

#LOG/*/VPN/>

要接收使用 SMF 主题语法从特定事件代理发布的客户端连接的消息 VPN 的所有消息 VPN 范围事件,请订阅:

#LOG/*/VPN/<routerName>/>

要接收使用 MQTT 主题语法从事件代理消息总线发布的客户端连接的消息 VPN 的所有消息 VPN 范围事件,请订阅:

$SYS/LOG/+/VPN/#

要接收使用 MQTT 主题语法从特定事件代理发布的客户端连接的消息 VPN 的所有消息 VPN 范围事件,请订阅:

$SYS/LOG/+/VPN/<routerName>/

客户端事件主题

要接收使用 SMF 主题语法从事件代理消息总线发布的客户端范围事件,请按客户端订阅:

#LOG/<level>/CLIENT/<routerName>/<eventName>/<vpnName>/<clientName>

要接收使用 MQTT 主题语法从事件代理消息总线发布的客户端范围事件,请按客户端订阅:

$SYS/LOG/<level>/CLIENT/<routerName>/<eventName>/<vpnName>/<clientName>

其中:

  • <level> 是消息事件严重性级别:crit、err、warning、notice 或 info。详细信息请参阅使用 Syslog 监控事件。
  • <routerName> 是事件发生的事件代理的名称。
  • <eventName> 是在 Syslog 事件参考中列出和描述的事件消息的名称。
  • <vpnName> 是事件发生的相关消息 VPN 的名称。
  • <clientName> 是事件发生的相关客户端的名称。

示例:

#LOG/INFO/CLIENT/rtr215/CLIENT_CLIENT_EGRESS_MSG_DISCARD/blue/host83/12401/#0001

事件日志文本和发布的消息文本都格式化如下:

timestamp routerName CLIENT: eventName: vpnName clientName  descriptiveText

示例:

2008-05-24T09:40:41-0400 <local3.info> rtr215 CLIENT: DISCARD_INDICATION: blue host83/12401/#0001 Egress message(s) discarded

要接收使用 SMF 主题语法从事件代理消息总线发布的客户端连接的消息 VPN 的所有客户端范围事件,请订阅:

#LOG/*/CLIENT/>

要接收使用 SMF 主题语法从特定事件代理发布的客户端连接的消息 VPN 的所有客户端范围事件,请订阅:

#LOG/*/CLIENT/<routerName>/>

要接收使用 MQTT 主题语法从事件代理消息总线发布的客户端连接的消息 VPN 的所有客户端范围事件,请订阅:

$SYS/+/CLIENT/#

要接收使用 MQTT 主题语法从特定事件代理发布的客户端连接的消息 VPN 的所有客户端范围事件,请订阅:

$SYS/+/CLIENT/<routerName>/

订阅事件主题

订阅事件使用 SMF 主题语法发布到消息 VPN 上添加订阅的主题:

V1: #LOG/INFO/SUB_ADD/<subscribedTopic>
V2: #LOG/INFO/SUB/<routerName>/ADD/<vpnName>/<clientName>/<subscribedTopic>

订阅事件使用 MQTT 主题语法发布到消息 VPN 上添加订阅的主题:

V1: $SYS/LOG/INFO/SUB_ADD/<subscribedTopic>
V2: $SYS/LOG/INFO/SUB/<routerName>/ADD/<vpnName>/<clientName>/<subscribedTopic>

其中:

  • <subscribedTopic> 是相关订阅主题字符串。请注意,如果订阅主题字符串大于 235 字节,它将在发布的主题中被截断。
  • <routerName> 是事件发生的事件代理的名称。
  • <vpnName> 是事件发生的相关消息 VPN 的名称。
  • <clientName> 是事件发生的相关客户端的名称。如果使用 V2,并且生成的事件主题(包括 <clientName> 字符串)的长度大于 235 字节(并且截断 <subscribedTopic> 字符串仍将超过 235 字节限制),则将省略 <subscribedTopic> 字符串,并截断 <clientName> 字符串。

为了最小化发布订阅事件的性能影响,消息文本中不包含时间戳。

使用 V1 的订阅主题示例:

#LOG/INFO/SUB_ADD/animals/dogs

发布的消息文本格式化如下:

routerName vpnName clientName SUBSCRIPTION_ADD subscribedTopic clientUsername clientAddr subMgrClientName subMgrUsername subMgrAddr

订阅消息文本示例:

rtr215 blue host83/12401/#0001 SUBSCRIPTION_ADD animals/dogs default 192.0.0.XX:10001 host92/1201/#0019 admin 192.0.0.XX:10019

在此示例中,客户端名称 host83/12401/#0001 从订阅管理器 host92/1201/#0019 添加了新订阅 animal/dogs

使用 V2 的订阅主题示例:

#LOG/INFO/SUB/rtr2015/ADD/blue/host83/12401/#0001/animals/dogs

发布的消息文本格式化如下:

routerName vpnName clientName SUBSCRIPTION_ADD subscribedTopic clientUsername clientAddr subMgrClientName subMgrUsername subMgrAddr

订阅消息文本示例:

rtr215 blue host83/12401/#0001 SUBSCRIPTION_ADD animals/dogs default 192.0.0.XX:10001 host92/1201/#0019 admin 192.0.0.XX:10019

在此示例中,客户端名称 host83/12401/#0001 从订阅管理器 host92/1201/#0019 添加了新订阅 animal/dogs

subMgrClientNamesubMgrUsernamesubMgrAddr 是可选字段,仅当通过订阅管理器进行订阅时适用。如果未使用订阅管理器,消息体包含三个尾随空格,分隔三个空字段。

取消订阅事件主题

取消订阅事件使用 SMF 主题语法发布到消息 VPN 上移除订阅的主题:

V1: #LOG/INFO/SUB_DEL/<subscribedTopic>
V2: #LOG/INFO/SUB/<routerName>/DEL/<vpnName>/<clientName>/<subscribedTopic>

取消订阅事件使用 MQTT 主题语法发布到消息 VPN 上移除订阅的主题:

V1: $SYS/LOG/INFO/SUB_DEL/<subscribedTopic>
V2: $SYS/LOG/INFO/SUB/<routerName>/DEL/<vpnName>/<clientName>/<subscribedTopic>

其中:

  • <subscribedTopic> 是相关订阅主题字符串。请注意,如果订阅主题字符串大于 235 字节,它将在发布的主题中被截断。
  • <routerName> 是事件发生的事件代理的名称。
  • <vpnName> 是事件发生的相关消息 VPN 的名称。
  • <clientName> 是事件发生的相关客户端的名称。如果使用 V2,并且生成的事件主题(包括 <clientName> 字符串)的长度大于 235 字节(并且截断 <subscribedTopic> 字符串仍将超过 235 字节限制),则将省略 <subscribedTopic> 字符串,并截断 <clientName> 字符串。

为了最小化发布订阅事件的性能影响,消息文本中不包含时间戳。

使用 V1 的取消订阅主题示例:

#LOG/INFO/SUB_DEL/animals/dogs

发布的消息文本格式化如下:

routerName vpnName clientName SUBSCRIPTION_DELETE subscribedTopic clientUsername clientAddr subMgrClientName subMgrUsername subMgrAddr

取消订阅消息文本示例:

rtr215 blue host83/12401/#0001 SUBSCRIPTION_DELETE animals/dogs default 192.0.0.XX:10001 host92/1201/#0019 admin 192.0.0.92:10019

在此示例中,客户端名称 host83/12401/#0001 从订阅管理器 host92/1201/#0019 移除了订阅 animals/dogs

使用 V2 的取消订阅主题示例:

#LOG/INFO/SUB/rtr215/DEL/blue/host83/12401/#0001/animals/dogs

发布的消息文本格式化如下:

routerName vpnName clientName SUBSCRIPTION_DELETE subscribedTopic clientUsername clientAddr subMgrClientName subMgrUsername subMgrAddr

取消订阅消息文本示例:

rtr215 blue host83/12401/#0001 SUBSCRIPTION_DELETE animals/dogs default 192.0.0.XX:10001 host92/1201/#0019 admin 192.0.0.92:10019

在此示例中,客户端名称 host83/12401/#0001 从订阅管理器 host92/1201/#0019 移除了订阅 animals/dogs

subMgrClientNamesubMgrUsernamesubMgrAddr 是可选字段,仅当通过订阅管理器进行订阅时适用。如果未使用订阅管理器,消息体包含三个尾随空格,分隔三个空字段。