创建事件通知规则
使用 rule_create 命令可创建事件通知规则。
rule_create rule=RuleName [ min_severity=<INFORMATIONAL|WARNING|MINOR|MAJOR|CRITICAL|NONE> ]
[ codes=Codes | except_codes=EventCodes ] [ escalation_only=<yes|no> ]
dests=dest1,dest2,... [ snooze_time=SnoozeTime ]
[ escalation_time=EscalationTime escalation_rule=EscalationRule ] [ domain=DomainList ]
参数
| 名称 | 类型 | 描述 | 必需 | 缺省值 |
|---|---|---|---|---|
| rule | 对象名 | 新规则的名称。 | Y | 不适用 |
| min_severity | 枚举 | 用于过滤规则的最低事件严重性。 | N | 所有严重性。 |
| 代码 | 不适用 | 仅过滤具有这些代码的事件。 | N | 所有事件。 |
| except_codes | 不适用 | 仅过滤具有其他代码的事件。 | N | 所有事件。 |
| escalation_only | 布尔 (Boolean) | 指定此规则仅可用于升级。 | N | 否 |
| dests | 对象名 | 事件通知的目标和目标组的逗号分隔列表。 | Y | 不适用 |
| snooze_time | 整数 | 休眠时间(分钟)。 | N | 无休眠。 |
| escalation_rule | 对象名 | 升级规则。 | N | 不适用 |
| escalation_time | 整数 | 升级时间(分钟)。 升级时间不应该小于休眠时间。 请参阅上述 escalation_rule 以获取更多信息。 | N | 无升级。 |
| domain | 不适用 | 此规则将附加到指定域。 要定义多个域,请使用逗号将其分隔。 要指定现有的所有域,请使用“*”。 | N | none |
此命令可定义新的事件通知规则。 事件通知规则可确定哪些事件应该生成哪些通知。 事件在发生时,会通过所有当前定义的规则根据生成的通知检查事件。
每个规则都具有过滤配置和通知配置。
过滤配置用于控制哪些事件与此规则匹配。 过滤可以是基于事件的代码(通过指定最低严重性)。 使用此配置时,严重性高于或等于规则的 min_severity 参数的所有事件与此规则匹配。 或者,规则仅与特定事件代码匹配。 针对严重性依赖于运行时参数的事件,可以组合使用两个过滤器。
规则配置的第二个部分是在事件与过滤条件匹配时接收通知的目标和目标组的列表。 如果在此规则中以及规则的其中一个目标组中包含目标,那么仍然仅会收到一个通知。 如果目标包含在两个目标组中,或者如果事件与使用相同目标的多个规则的过滤条件匹配,那么这也同样适用。
规则可定义为警报,这表示会单独发送通知,直到使用 event_clear 命令清除了匹配事件(请参阅清除警报事件)。
清除事件不表示问题已解决。 这仅表示已经注意到了此问题,不需要继续发送通知。
可以通过两种方式定义通知的重复发送:
- snooze 参数会导致重复向相同目标发送通知。 重复传输之间的间隔时间(分钟)由 snooze 参数确定。
- 如果警报在 escalation_time 分钟内未被清除,那么 escalation_time 和 escalation_rule 参数可向 escalation_rule 的目标列表发送通知。
仅可将规则升级为警报规则(即,升级为具有休眠或升级定义的规则),以防止出现停止发送通知的情况。
无法将规则升级为自身,也无法在循环规则升级中定义规则。
escalation_only 参数定义不具有过滤器的规则,这仅可用作其他规则的升级。
休眠时间不能大于升级时间。
具有未清除的警报事件时,不允许定义新规则。
以下示例将有关严重事件的警报发送到 John 的手机号码和所有 IT 员工的电子邮件。 将每 20 分钟重新发送警报,直到事件被清除。
示例:
xcli -u -c Nextra1 rule_create rule=critical_alerts min_severity=critical destinations=joh
n-cell,itstaff snooze_time=20
输出:
Command executed successfully.
访问控制
| 用户类别 | 许可权 |
|---|---|
| 存储管理员 | 允许 |
| 存储集成管理员 | 不允许 |
| 应用程序管理员 | 不允许 |
| 安全性管理员 | 不允许 |
| 只读用户 | 不允许 |
| 技术人员 | 不允许 |
返回码
- EVENT_RULE_MAX_REACHED
已达到允许的最大事件规则数。
- EVENT_RULE_CANNOT_ESCALATE_TO_NON_ALERTING_RULES
事件规则不能升级为非警报规则。
故障诊断:只能将警报规则升级为另一个升级规则。
- DEST_APPEARS_TWICE
目标或目标组出现两次。
- EVENT_RULE_NAME_ALREADY_EXISTS
事件规则名称已存在。
- EVENT_RULE_NAME_DOES_NOT_EXIST
事件规则名称不存在。
- NAME_IS_NEITHER_DEST_NOR_GROUP
指定的名称既不是目标组名称,也不是目标名称。
- ESCALATION_TIME_MUST_BE_LARGER_THAN_SNOOZE_TIME
升级时间必须大于休眠时间。
- RULE_MAX_DESTS_REACHED
已达到规则中允许的目标和目标组的最大数量。
- EVENT_RULE_MUST_HAVE_FILTER
警报事件规则必须具有由事件代码或严重性表示的过滤器。
- EVENT_RULE_CANNOT_REFER_TO_INTERNAL_EVENT_CODES
用户事件规则不能引用内部事件代码。
- ESCALATION_EVENT_RULE_CANNOT_HAVE_FILTER
仅限于升级的事件规则不能具有代码或 min_severity 规范。
- ESCALATION_EVENT_RULE_MUST_BE_ALERTING
仅限于升级的事件规则必须为警报规则。
- TOO_MANY_EVENT_CODES
最多可定义 Maximum 个返回码。
- EVENT_CODE_APPEARS_TWICE
返回码“Code”在列表中出现两次。
故障诊断:请确保每个返回码仅在列表中出现一次。
- UNRECOGNIZED_EVENT_CODE
“String”不是可识别的返回码。
故障诊断:请查阅手册以获取有效返回码的列表。
- EVENT_RULE_CANNOT_HAVE_A_CATEGORY
用户事件规则不能具有类别定义。
- DOMAIN_DOESNT_EXIST
域不存在。
- DESTINATION_IS_NOT_IN_RULE_DOMAINS
目标必须包含在规则域中。
- DESTGROUP_IS_NOT_IN_RULE_DOMAINS
目标组必须包含在规则域中。
- ESCALATION_RULE_NOT_IN_RULE_DOMAINS
升级规则必须属于规则域。
- EVENT_RULE_MUST_NOT_HAVE_SNMP_DEST
根据当前系统配置状态 (snmp_type = NONE),事件规则不能具有 SNMP 目标。