配置和监控阈值交叉事件

阈值交叉事件是用户定义的事件,用于检测和预防 ACL 资源、BGP、数字光器件、ECMP、转发资源、接口错误和统计信息、链路抖动、资源利用率、RoCE、传感器和“刚刚发生”事件的网络故障。您可以在阈值交叉事件参考中找到完整的 TCA 列表(包括命令行所需的事件 ID)。

创建阈值交叉规则

  1. 单击 菜单 并导航到 阈值交叉规则

  2. 选择反映规则事件类型的选项卡。

  3. 单击 创建规则。输入规则名称并分配严重性,然后单击 下一步

  1. 选择要监控的属性。列出的属性会根据您在上一步中选择的事件类型而更改。

  2. 单击 下一步

  3. 设置阈值 步骤中,输入阈值。

对于数字光器件,您可以选择使用光器件供应商定义的阈值(默认)或指定您自己的阈值。
  1. 定义规则的范围。

    • 如果您想根据特定参数限制规则,请输入一个或多个可用属性的值。对于“刚刚发生”规则,请从可用列表中选择一个原因。

    • 如果您希望该规则应用于整个网络,请选择 将规则应用于整个网络 开关。

  2. 单击 下一步

  3. (可选)选择您希望将事件发送到的通知通道。

    只有先前创建的通道可供选择。如果没有任何通道可用或被选中,则只能从数据库中检索通知。您可以稍后添加通道,然后将其添加到规则中。

  4. 单击 完成。规则可能需要几分钟才能在 UI 中显示。

您可以创建的最简单的配置是将所有设备和所有接口生成的 TCA 事件发送到单个通知应用程序的配置。使用 netq add tca 命令配置事件。其语法为

netq add tca event_id <text-event-id-anchor>
    [scope <text-scope-anchor>]
    [severity info | severity error]
    [is_active true | is_active false]
    [suppress_until <text-suppress-ts>]
    [threshold_type user_set | threshold_type vendor_set]
    [threshold <text-threshold-value>]
    [channel <text-channel-name-anchor> | channel drop <text-drop-channel-name>]

请注意,事件 ID 区分大小写,并且必须全部为大写。

例如,以下规则指示 NetQ 在任何受监控的交换机上 CPU 利用率超过其容量的 95% 时,向预配置的 tca_slack_ifstats Slack 通道传递事件通知

cumulus@switch:~$ netq add tca event_id TCA_CPU_UTILIZATION_UPPER scope '*' threshold 95 channel tca_slack_ifstats

以下规则指示 NetQ 在 leaf12 交换机上任何接口的每秒传输字节数 (Bps) 超过 20,000 Bps 时,向 tca_pd_ifstats PagerDuty 通道传递事件通知

cumulus@switch:~$ netq add tca event_id TCA_TXBYTES_UPPER scope leaf12,'*' threshold 20000 channel tca_pd_ifstats

以下规则指示 NetQ 在 leaf12 交换机上传感器 temp1 的温度超过 32 摄氏度时,向 syslog-netq syslog 通道传递事件通知

cumulus@switch:~$ netq add tca event_id TCA_SENSOR_TEMPERATURE_UPPER scope leaf12,temp1 threshold 32 channel syslog-netq

以下规则指示 NetQ 在 leaf04 交换机上任何原因、入口端口或丢弃类型的 ACL 丢弃总数超过 20,000 时,向 tca-slack 通道传递事件通知。

cumulus@switch:~$ netq add tca event_id TCA_WJH_ACL_DROP_AGG_UPPER scope leaf04,'*','*','*' threshold 20000 channel tca-slack

对于 Slack 通道,事件消息应与此类似

设置阈值交叉事件的严重性

除了定义 TCA 规则的范围之外,您还可以设置严重性,即 info 或 error。要向规则添加严重性,请使用 severity 选项。

例如,如果您想为您之前创建的 CPU 利用率规则添加 error 严重性

cumulus@switch:~$ netq add tca event_id TCA_CPU_UTILIZATION_UPPER scope '*' severity error threshold 95 channel tca_slack_resources

或者,如果事件很重要,但不是错误。将 severity 设置为 info

cumulus@switch:~$ netq add tca event_id TCA_TXBYTES_UPPER scope leaf12,'*' severity info threshold 20000 channel tca_pd_ifstats

设置数字光器件事件的阈值

数字光器件还具有使用 threshold_typethreshold 选项应用用户定义或供应商定义阈值的附加选项。

此示例显示了当模块电压的上限阈值超过 mlx-2700-04 交换机上接口 swp31 的供应商定义阈值时,如何向通道 ch1 发送错误。

cumulus@switch:~$ netq add tca event_id TCA_DOM_MODULE_VOLTAGE_ALARM_UPPER scope 'mlx-2700-04,swp31' severity error is_active true threshold_type vendor_set channel ch1
Successfully added/updated tca

此示例显示了当模块电压的上限阈值超过 mlx-2700-04 交换机上接口 swp31 的用户定义阈值 3V 时,如何向通道 ch1 发送错误。

cumulus@switch:~$ netq add tca event_id TCA_DOM_MODULE_VOLTAGE_ALARM_UPPER scope 'mlx-2700-04,swp31' severity error is_active true threshold_type user_set threshold 3 channel ch1
Successfully added/updated tca

为单个事件创建多个规则

您可能希望为每个事件创建多个规则。例如,您可能想要

  • 监控同一事件,但针对不同的接口、传感器或设备
  • 将事件通知发送到多个通道
  • 更改您正在进行故障排除的特定设备的阈值

要在 NetQ UI 中执行此操作,请创建其他规则卡片(如上一节所示)。

在 NetQ CLI 中,您还可以添加多个规则。以下示例显示了为最大温度传感器创建三个附加规则

netq add tca event_id TCA_SENSOR_TEMPERATURE_UPPER scope leaf*,temp1 channel syslog-netq threshold 32

netq add tca event_id TCA_SENSOR_TEMPERATURE_UPPER scope '*',temp1 channel tca_sensors,tca_pd_sensors threshold 32

netq add tca event_id TCA_SENSOR_TEMPERATURE_UPPER scope leaf03,temp1 channel syslog-netq threshold 29

现在您已经创建了四个规则(原始规则,加上这三个新规则),所有规则都基于 TCA_SENSOR_TEMPERATURE_UPPER 事件。为了识别各种规则,NetQ 会自动为每个规则生成一个 TCA 名称。在您创建每个规则时,NetQ 会在事件名称中添加一个 _#。然后,为创建的第一个规则的 TCA 名称为 TCA_SENSOR_TEMPERATURE_UPPER_1,为此事件创建的第二个规则为 TCA_SENSOR_TEMPERATURE_UPPER_2,依此类推。

查看阈值交叉规则

  1. 单击 菜单 并导航到 阈值交叉规则

  2. 选择相关选项卡。UI 将每个规则及其参数显示为卡片。每个属性都以正则表达式的形式显示在规则卡片上

  • 等于显示为等号 (=)
  • 开头为显示为插入符号 (^)
  • 空白(全部)显示为星号 (*)

此示例表明该规则适用于 exit-1 交换机上的所有接口。

创建规则后,您可以使用规则卡片上方显示的过滤器按状态、严重性、通道和/或事件进行过滤。

要查看 TCA 规则,请运行 netq show tca

netq show tca [tca_id <text-tca-id-anchor>] [json]

此示例显示所有 TCA 规则

cumulus@switch:~$ netq show tca
Matching config_tca records:
TCA Name                     Event Name           Scope                      Severity Channel/s          Active Threshold          Unit     Threshold Type Suppress Until
---------------------------- -------------------- -------------------------- -------- ------------------ ------ ------------------ -------- -------------- ----------------------------
TCA_CPU_UTILIZATION_UPPER_1  TCA_CPU_UTILIZATION_ {"hostname":"leaf01"}      info     pd-netq-events,slk True   87                 %        user_set       Fri Oct  9 15:39:35 2020
                             UPPER                                                    -netq-events
TCA_CPU_UTILIZATION_UPPER_2  TCA_CPU_UTILIZATION_ {"hostname":"*"}           error    slk-netq-events    True   93                 %        user_set       Fri Oct  9 15:39:56 2020
                             UPPER
TCA_DOM_BIAS_CURRENT_ALARM_U TCA_DOM_BIAS_CURRENT {"hostname":"leaf*","ifnam error    slk-netq-events    True   0                  mA       vendor_set     Fri Oct  9 16:02:37 2020
PPER_1                       _ALARM_UPPER         e":"*"}
TCA_DOM_RX_POWER_ALARM_UPPER TCA_DOM_RX_POWER_ALA {"hostname":"*","ifname":" info     slk-netq-events    True   0                  mW       vendor_set     Fri Oct  9 15:25:26 2020
_1                           RM_UPPER             *"}
TCA_SENSOR_TEMPERATURE_UPPER TCA_SENSOR_TEMPERATU {"hostname":"leaf","s_name error    slk-netq-events    True   32                 degreeC  user_set       Fri Oct  9 15:40:18 2020
_1                           RE_UPPER             ":"temp1"}
TCA_TCAM_IPV4_ROUTE_UPPER_1  TCA_TCAM_IPV4_ROUTE_ {"hostname":"*"}           error    pd-netq-events     True   20000              %        user_set       Fri Oct  9 16:13:39 2020
                             UPPER

此示例显示特定的 TCA 规则

cumulus@switch:~$ netq show tca tca_id TCA_TXMULTICAST_UPPER_1
Matching config_tca records:
TCA Name                     Event Name           Scope                      Severity         Channel/s          Active Threshold          Suppress Until
---------------------------- -------------------- -------------------------- ---------------- ------------------ ------ ------------------ ----------------------------
TCA_TXMULTICAST_UPPER_1      TCA_TXMULTICAST_UPPE {"ifname":"swp3","hostname info             tca-tx-bytes-slack True   0                  Sun Dec  8 16:40:14 2269
                             R                    ":"leaf01"}

管理阈值交叉事件和通知

更改规则的阈值

在收到基于规则的通知后,您可能希望增加或减小阈值以限制或增加您收到的事件数量。

要修改阈值

  1. 找到要修改的规则,并将鼠标悬停在卡片的顶部。

  2. 单击 编辑

  1. 输入新的阈值,然后选择 更新规则

要修改阈值,请运行 netq add tca

netq add tca tca_id <text-tca-id-anchor> threshold <text-threshold-value>

此示例将规则 TCA_CPU_UTILIZATION_UPPER_1 的阈值更改为 96%。这将覆盖现有阈值。

cumulus@switch:~$ netq add tca tca_id TCA_CPU_UTILIZATION_UPPER_1 threshold 96

更改规则的范围

在收到基于规则的通知后,您可能会发现您想要缩小或扩大范围值,以限制或增加您收到的事件数量。

要修改范围

  1. 找到要修改的规则,并将鼠标悬停在卡片的顶部。

  2. 单击 编辑

  3. 选择开关以将规则应用于整个网络或单个主机。

  4. 单击 更新规则

要修改范围,请运行

netq add tca event_id <text-event-id-anchor> scope <text-scope-anchor> threshold <text-threshold-value>

此示例将规则 TCA_CPU_UTILIZATION_UPPER 的范围更改为仅应用于主机名以 leaf 开头的交换机。您还必须提供阈值。此示例案例使用 95% 的值。请注意,这将覆盖现有范围和阈值。

cumulus@switch:~$ netq add tca event_id TCA_CPU_UTILIZATION_UPPER scope hostname^leaf threshold 95
Successfully added/updated tca

cumulus@switch:~$ netq show tca

Matching config_tca records:
TCA Name                     Event Name           Scope                      Severity         Channel/s          Active Threshold          Suppress Until
---------------------------- -------------------- -------------------------- ---------------- ------------------ ------ ------------------ ----------------------------
TCA_CPU_UTILIZATION_UPPER_1  TCA_CPU_UTILIZATION_ {"hostname":"*"}           error            onprem-email       True   93                 Mon Aug 31 20:59:57 2020
                             UPPER
TCA_CPU_UTILIZATION_UPPER_2  TCA_CPU_UTILIZATION_ {"hostname":"hostname^leaf info                                True   95                 Tue Sep  1 18:47:24 2020
                             UPPER                "}

更改、添加或删除通道

  1. 找到要修改的规则,并将鼠标悬停在卡片的顶部。

  2. 单击 编辑

  3. 选择 通道 选项卡。

  4. 选择一个或多个通道。

  5. 单击 更新规则

更改通道关联,请运行

netq add tca tca_id <text-tca-id-anchor> channel <text-channel-name-anchor>

这将覆盖现有通道关联。

此示例显示了将磁盘利用率 1 规则的通道更改为 PagerDuty 通道 pd-netq-events

cumulus@switch:~$ netq add tca tca_id TCA_DISK_UTILIZATION_UPPER_1 channel pd-netq-events
Successfully added/updated tca TCA_DISK_UTILIZATION_UPPER_1

删除通道关联(停止向特定通道发送事件),请运行

netq add tca tca_id <text-tca-id-anchor> channel drop <text-drop-channel-name>

此示例从磁盘利用率 1 规则中删除 tca_slack_resources 通道。

cumulus@switch:~$ netq add tca tca_id TCA_DISK_UTILIZATION_UPPER_1 channel drop tca_slack_resources
Successfully added/updated tca TCA_DISK_UTILIZATION_UPPER_1

更改规则的名称

您无法使用 NetQ CLI 更改阈值交叉规则的名称,因为规则没有名称。它们会自动接收标识符 (tca_id)。在 NetQ UI 中,要更改规则名称,您必须删除规则并使用新名称重新创建它。

更改规则的严重性

阈值交叉规则分为 info 或 error 两类。

在 NetQ UI 中,您必须删除规则并重新创建它,并指定新的严重性。

在 NetQ CLI 中,要更改严重性,请运行

netq add tca tca_id <text-tca-id-anchor> (severity info | severity error)

此示例将最大 CPU 利用率 1 规则的严重性从 error 更改为 info

cumulus@switch:~$ netq add tca tca_id TCA_CPU_UTILIZATION_UPPER_1 severity info
Successfully added/updated tca TCA_CPU_UTILIZATION_UPPER_1

抑制规则

在故障排除或交换机维护期间,您可能希望抑制规则以防止错误的或过多的通知。这实际上会暂停指定时间段的通知。

  1. 找到要禁用的规则,然后单击 禁用

  2. 选择 日期/时间 字段以设置您希望重新启用规则的时间。

  3. 单击 禁用

注意卡片中的更改
  • 状态更改为 已暂停
  • 已抑制 字段显示规则将被重新启用的日期和时间。
  • 禁用 按钮更改为 永久禁用

使用 suppress_until 选项允许您阻止在指定时间量(以秒为单位)内应用规则。当此时间过去后,规则将自动重新启用。

要抑制规则,请运行

netq add tca tca_id <text-tca-id-anchor> suppress_until <text-suppress-ts>

此示例将最大 CPU 利用率事件抑制 24 小时

cumulus@switch:~$ netq add tca tca_id TCA_CPU_UTILIZATION_UPPER_2 suppress_until 86400
Successfully added/updated tca TCA_CPU_UTILIZATION_UPPER_2

禁用规则

抑制会暂时禁用规则,您也可以无限期地禁用规则。

要禁用当前活动的规则

  1. 找到要禁用的规则。

  2. 单击 禁用

  3. 日期/时间 字段留空。

  4. 单击 禁用

注意卡片中的更改
  • 状态更改为 非活动
  • 规则定义灰显
  • 禁用 选项已更改为 启用,以便在您准备好时重新激活规则

要禁用当前已抑制的规则,请单击 永久禁用

要禁用规则,请运行

netq add tca tca_id <text-tca-id-anchor> is_active false

此示例禁用最大磁盘利用率 1 规则

cumulus@switch:~$ netq add tca tca_id TCA_DISK_UTILIZATION_UPPER_1 is_active false
Successfully added/updated tca TCA_DISK_UTILIZATION_UPPER_1

要重新启用规则,请将 is_active 选项设置为 true

删除规则

要删除规则

  1. 找到要删除的规则,并将鼠标悬停在卡片上。

  2. 在卡片的右上角,选择 删除

要完全删除规则,请运行

netq del tca tca_id <text-tca-id-anchor>

此示例删除最大接收字节规则

cumulus@switch:~$ netq del tca tca_id TCA_RXBYTES_UPPER_1
Successfully deleted TCA TCA_RXBYTES_UPPER_1

解决范围冲突

在某些情况下,多个阈值交叉规则定义的范围可能会重叠。在这种情况下,NetQ 使用范围最具体且仍然为真的规则来生成事件。

为了阐明这一点,请考虑以下示例。发生了三个事件

  • 第一个事件发生在交换机 leaf01,接口 swp1
  • 第二个事件发生在交换机 leaf01,接口 swp3
  • 第三个事件发生在交换机 spine01,接口 swp1

NetQ 尝试将阈值交叉事件与具有不同范围的三个阈值交叉规则的主机名和接口名称进行匹配

  • 范围 1 发送交换机 leaf01swp1 接口的事件(非常具体)
  • 范围 2 发送主机名以 leaf 开头的交换机上所有接口的事件(中等具体)
  • 范围 3 发送所有交换机和接口的事件(非常广泛)

结果是

  • 对于第一个事件,NetQ 应用规则 1 中的范围,因为它与范围 1 完全匹配
  • 对于第二个事件,NetQ 应用规则 2 中的范围,因为它与范围 1 不匹配,但与范围 2 匹配
  • 对于第三个事件,NetQ 应用规则 3 中的范围,因为它与范围 1 或范围 2 都不匹配

总结如下

输入事件范围参数TCA 范围 1TCA 范围 2TCA 范围 3应用的范围
leaf01,swp1主机名, 接口'*','*'leaf*,'*'leaf01,swp1范围 3
leaf01,swp3主机名, 接口'*','*'leaf*,'*'leaf01,swp1范围 2
spine01,swp1主机名, 接口'*','*'leaf*,'*'leaf01,swp1范围 1

您可以修改阈值交叉规则以消除冲突。