/cmr/alert
alert
警报规则定义条件并在 CMR 控制器上运行其动作。设备规则使用
labels选择设备。状态警报在所有配置的状态条件匹配期间保持活动,并在变为活动时运行一次动作。只有当条件停止匹配然后再次匹配后才会再次触发。事件警报为每次匹配的发生运行动作,并且从不保持活动或计入活动警报计数器。一条规则可以包含多个状态条件,但最多只能有一个事件条件。大多数警报按设备应用;upgrade-job-done是整个升级任务的系统事件。条件、动作和警报范围参见 CMR - 警报规则。
cmr/alert
Package: cmr Type: Directory
警报规则定义条件并在 CMR 控制器上运行其动作。设备规则使用 labels 选择设备。状态警报在所有配置的状态条件匹配期间保持活动,并在变为活动时运行一次动作。只有当条件停止匹配然后再次匹配后才会再次触发。事件警报为每次匹配的发生运行动作,并且从不保持活动或计入活动警报计数器。一条规则可以包含多个状态条件,但最多只能有一个事件条件。大多数警报按设备应用;upgrade-job-done 是整个升级任务的系统事件。条件、动作和警报范围参见 CMR - 警报规则。
| 标志 | 名称 | 描述 |
|---|---|---|
X | disabled | 警报规则已禁用。 |
| 参数 | 类型 | 描述 |
|---|---|---|
name | string | 警报规则名称。 |
labels | object | 通过标签选择警报规则适用的设备。支持 + 和 - 符号分别作为 AND 和 AND NOT 运算符;如果未提供符号,则使用 OR 运算符。 当 labels 未设置时,规则适用于所有已连接设备(labels=all)。 |
connected | bool | 匹配设备已连接(yes)或已断开(no)的状态条件。 默认值:no。 |
cpu-above | num | 当 CPU 负载高于给定百分比值(0..100)时发出警报;等于阈值的值也会触发规则。 默认值:unset。 |
cpu-below | num | 当 CPU 负载低于给定百分比值(0..100)时发出警报;仅在严格低于阈值时触发。 默认值:unset。 |
hdd-above | num | 当磁盘(HDD)负载高于给定百分比值(0..100)时发出警报;等于阈值的值也会触发规则。 默认值:unset。 |
hdd-below | num | 当磁盘(HDD)负载低于给定百分比值(0..100)时发出警报;仅在严格低于阈值时触发。 默认值:unset。 |
mem-above | num | 当 RAM 负载高于给定百分比值(0..100)时发出警报;等于阈值的值也会触发规则。 默认值:unset。 |
mem-below | num | 当 RAM 负载低于给定百分比值(0..100)时发出警报;仅在严格低于阈值时触发。 默认值:unset。 |
health-above | num | 当由 health-value 命名的健康传感器高于给定值时发出警报;等于阈值的值也会触发规则。不上报该传感器的设备会被忽略。 默认值:unset。 |
health-below | num | 当由 health-value 命名的健康传感器低于给定值时发出警报;仅在严格低于阈值时触发。不上报该传感器的设备会被忽略。 默认值:unset。 |
health-value | string | 要比较的健康传感器名称,与 /system/health/print 中的名称匹配,例如 cpu-temperature。在动作文本中使用 [cpu-temperature] 风格的占位符。 |
interface-change | alt { change: enum (any) , change: ubit (running, not-running, added, removed) } | 在接口状态变化时发出警报: - any(默认)- 任何状态变化。 - running - 接口链路启用。 - not-running - 接口链路断开。 - added - 首次看到接口。 - removed - 不再看到接口。 running 和 not-running 跟随接口的链路状态,而不是其管理状态:在没有连接的情况下启用或禁用接口不会触发,而实际的链路丢失或恢复会触发。 |
interface-type | alt { type: enum (any) , type: ubit (ethernet, wifi, bridge) } | 将 interface-change 警报限制为一种接口类型: - any(默认)- 任何类型的接口。 - ethernet - 以太网端口。 - wifi - 无线接口。 - bridge - 网桥接口。 |
upgrade-available | bool | 当设备有更新的 RouterOS 版本可用时发出警报。 默认值:no。 |
disconnected-more-than | time | 当设备断开连接的时间超过给定时长时发出警报。 默认值:unset。 |
upgrade-job-done | alt { cond: enum (yes) , cond: ubit (success, fail) } | 当升级任务完成时发出警报;规则在整个任务中触发一次,即任务的最后一个设备完成时: - yes(默认)- 任何结果。 - success - 任务成功完成。 - fail - 任务失败。 未安装升级就结束的任务被视为失败任务,因此 yes 和 fail 变体都会触发。 |
upgrade-done | alt { cond: enum (yes) , cond: ubit (success, fail) } | 当设备升级完成时发出警报;规则会为每个完成升级的设备触发一次: - yes(默认)- 任何结果。 - success - 升级成功完成。 - fail - 升级失败。 当设备没有更新版本可用时,其升级仍以失败结束([upgrade-error] 为 no upgrade available),因此 yes 和 fail 变体都会触发。 |
unpaired-device-connected | bool | 当未与控制器的配对的设备连接时发出警报。 默认值:no。 |
rebooted | bool | 当设备意外重启时触发的事件条件。 默认值:no。 |
log-topics | multi { array-id, array-id, topic: super { ! , topic: enum } } | 要跟踪的日志主题;在主题前加 ! 可排除它。与 log-regex 一起定义日志消息事件条件。CMR 会自动指示设备转发匹配的日志消息。 |
log-regex | string | 将日志消息与给定的正则表达式匹配。每条匹配配置主题和正则表达式的消息会触发动作,而不会创建持久的活动警报。 |
action.log | string | 警报触发时向日志写入消息。消息可以包含 [device] 或 [cpu-usage] 等占位符,替换为触发设备的值;不适用的占位符呈现为 unknown。 |
action.log-topics | multi { array-id, topic: enum } | 要将消息写入的日志主题。 默认值:cmr,info。 |
action.log-prefix | string | 日志消息的前缀。设置后,前缀会直接添加到消息前,不带分隔符;未设置时,消息按原样写入。 |
action.script | enum | 警报触发时运行指定的系统脚本。脚本必须允许自身以降低的权限运行;否则动作会失败并显示 executing script ... from cmr failed ... (not enough permissions)。将脚本的 dont-require-permissions 设置为 yes。 |
action.script-vars | multi { array-id, script-var: string } | 要使 action.script 可用的变量名列表:每个变量填充为触发设备的值。例如 device、identity、address、board、version 在脚本中成为 $device、$identity 等。带连字符的名称(例如 cpu-usage)不能作为普通脚本变量读取。 |
action.http-url | string | HTTP webhook URL to call when the alert fires. On a failed call the alert writes alert "<name>" HTTP action failed: <reason> to the cmr topic with warning severity and counts the failure in action-failures; the other actions still run. |
action.http-method | enum (get | post | put | delete | head | patch) | 用于 webhook 的 HTTP 方法: - get - post - put - delete - head - patch |
action.http-body | string | 发送到 webhook 的 HTTP 请求正文。支持与日志消息相同的占位符,按设备替换(例如 [device] 和 [version])。不会自动添加 Content-Type 头;当接收方期望时,请使用 action.http-headers 添加,例如为 JSON 正文添加 Content-Type: application/json。 |
action.http-headers | multi { header: string } | Additional HTTP headers sent with the webhook, each as Header: value. The request also carries the controller's RouterOS <version> user-agent. |
reset-on-disconnect | enum (yes | no) { yes:0, no:-1 } | 当设备断开连接时清除(重置)状态警报,以便重新连接的设备如果仍然匹配则再次触发规则:yes 或 no。默认值:no(状态在断开连接期间保留)。事件警报没有可重置的持久状态。 |
severity | enum (critical | high | medium | low) | 警报的严重性: - critical - high - medium(默认) - low |
category | multi { array-id, category: enum } | 分配给警报的类别。类别是分组标签:服务器根据规则的条件分配一个(例如 performance、availability、version、network 或 logging),并且可以更改为任何值。 |
| 只读参数 | 类型 | 描述 |
|---|---|---|
devices | num | 警报规则匹配的设备数量(由 labels 选择的设备)。当规则覆盖所有设备时,此计数包括控制器本身。 |
devices-on | num | 具有活动状态警报的设备数量。事件发生不会增加此计数。 |
fired | num | 警报已触发的总次数。 |
action-failures | num | 警报动作失败的次数,例如无法访问 webhook。 |