1 条件
概述
可以定义仅当事件 匹配一组已定义的条件时才执行某个动作。条件在配置 action 时设置。
条件匹配区分大小写。
触发器动作
以下条件可用于基于触发器的操作:
| 条件类型 | 支持的运算符 | 描述 |
|---|---|---|
| Host group | equals does not equal |
指定要包含的主机组或要排除的主机组。 等于 - 事件属于此主机组。 不等于 - 事件不属于此主机组。 指定父主机组将隐式选择所有嵌套的主机组。若仅指定父组,则所有嵌套组必须额外使用不等于操作符进行设置。 |
| Template | equals does not equal |
指定要排除的模板或模板。 等于 - 事件属于从此模板继承的触发器。 不等于 - 事件不属于从此模板继承的触发器。 |
| Host | equals does not equal |
指定 主机 或 主机 以排除。 等于 - 事件属于此 主机。 不等于 - 事件不属于此 主机。 |
| Tag name | equals does not equal contains does not contain |
指定要排除的事件标签或事件标签。 等于 - 事件包含此标签。 不等于 - 事件不包含此标签。 包含 - 事件有一个包含此 string 的标签。 不包含 - 事件没有包含此 string 的标签。 |
| Tag value | equals does not equal contains does not contain |
指定要排除的事件标签和值组合。 等于 - 事件包含此标签和值。 不等于 - 事件不包含此标签和值。 包含 - 事件的标签和值中包含这些字符串。 不包含 - 事件的标签和值中不包含这些字符串。 |
| Trigger | equals does not equal |
指定要排除的触发器或触发器。 等于 - 事件由此触发器生成。 不等于 - 事件由除该触发器外的任何其他触发器生成。 |
| Event name | contains does not contain |
在触发器生成的事件名称中指定一个要包含的 string 或一个要排除的 string。默认情况下,事件名称与触发器名称匹配,除非在 trigger configuration 中指定了自定义事件名称。 包含 - 事件名称包含此 string。 不包含 - 此 string 从事件名称中排除。 注意:输入的值将与事件名称进行比较,并会展开所有宏。 |
| Trigger severity | equals does not equal is greater than or equals is less than or equals |
指定触发器严重性。 等于 - 等于触发器严重性。 不等于 - 不等于触发器严重性。 大于等于 - 大于或等于触发器严重性。 小于等于 - 小于或等于触发器严重性。 |
| Time period | in not in |
指定一个时间段或要排除的时间段。 in - 事件时间在时间段内。 not in - 事件时间不在时间段内。 格式描述请参见 time period specification 页面。 支持 User macros。 |
| Problem is suppressed | no yes |
指定问题是否因主机维护而被抑制(不显示)。 no - 问题未被抑制。 yes - 问题被抑制。 |
服务动作
以下条件可用于服务操作:
| 条件类型 | 支持的运算符 | 描述 |
|---|---|---|
| Service | equals does not equal |
指定一个服务或要排除的服务。 等于 - 事件属于此服务。 不等于 - 事件不属于此服务。 指定父服务会隐式选择所有子服务。如果只想指定父服务,则所有嵌套的服务必须额外使用 不等于 运算符进行设置。 |
| Service name | contains does not contain |
指定服务名称中的一个 string 或要排除的 string。 包含 - 事件由名称中包含此 string 的服务生成。 不包含 - 在服务名称中找不到此 string。 |
| Service tag name | equals does not equal contains does not contain |
指定一个事件标签或要排除的事件标签。服务事件标签可以在服务配置部分 Tags 中定义。 等于 - 事件具有此标签。 不等于 - 事件没有此标签。 包含 - 事件具有包含此 string 的标签。 不包含 - 事件没有包含此 string 的标签。 |
| Service tag value | equals does not equal contains does not contain |
指定一个事件标签和值的组合或要排除的标签和值的组合。服务事件标签可以在服务配置部分 Tags 中定义。 等于 - 事件具有此标签和值。 不等于 - 事件没有此标签和值。 包含 - 事件具有包含这些字符串的标签和值。 不包含 - 事件没有包含这些字符串的标签和值。 |
确保在 Alerts → Media types 菜单中为服务操作定义 概述。
否则,通知将不会发送。
发现动作
以下条件可用于基于发现的事件:
| 条件类型 | 支持的操作符 | 描述 |
|---|---|---|
| Host IP | equals does not equal |
指定一个IP地址范围或要排除的范围用于发现的 主机。 等于 - 主机 IP 在该范围内。 不等于 - 主机 IP 不在该范围内。 可能具有以下格式: 单个IP:192.168.1.33 IP地址范围:192.168.1-10.1-254 IP掩码:192.168.4.0/24 列表:192.168.1.1-254, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24 列表格式中支持空格。 |
| Service type | equals does not equal |
指定一个发现服务的服务类型或要排除的服务类型。 等于 - 匹配发现的服务。 不等于 - 不匹配发现的服务。 可用服务类型:SSH、LDAP、SMTP、FTP、HTTP、HTTPS、POP、NNTP、IMAP、TCP、Zabbix agent、SNMPv1 agent、SNMPv2 agent、SNMPv3 agent、ICMP ping、telnet。 |
| Service port | equals does not equal |
指定一个发现服务的TCP端口范围或要排除的范围。 等于 - 服务端口在该范围内。 不等于 - 服务端口不在该范围内。 |
| Discovery rule | equals does not equal |
指定一个发现规则或要排除的发现规则。 等于 - 使用此发现规则。 不等于 - 使用除该规则外的任何其他规则。 |
| Discovery check | equals does not equal |
指定一个发现检查或要排除的发现检查。 等于 - 使用此发现检查。 不等于 - 使用除该检查外的任何其他检查。 |
| Discovery object | equals | 指定发现的 object。 等于 - 等于发现的 object(设备或服务)。 |
| Discovery status | equals | Up - 匹配 '主机 Up' 和 'Service Up' 事件。 Down - 匹配 '主机 Down' 和 'Service Down' 事件。 Discovered - 匹配 '主机 Discovered' 和 'Service Discovered' 事件。 Lost - 匹配 '主机 Lost' 和 'Service Lost' 事件。 |
| Uptime/Downtime | is greater than or equals is less than or equals |
'主机 Up' 和 'Service Up' 事件的运行时间。'主机 Down' 和 'Service Down' 事件的停机时间。 大于等于 - 大于或等于。参数以秒为单位。 小于等于 - 小于或等于。参数以秒为单位。 |
| Received value | equals does not equal is greater than or equals is less than or equals contains does not contain |
指定从发现规则中的 agent(Zabbix、SNMP)检查接收到的值。string 比较。如果规则配置了多个 Zabbix agent 或 SNMP 检查,则会检查每个检查接收到的值(每个检查生成一个新事件,该事件与所有条件匹配)。 等于 - 等于该值。 不等于 - 不等于该值。 大于等于 - 大于或等于该值。 小于等于 - 小于或等于该值。 包含 - 包含子字符串。参数以 string 形式给出。 不包含 - 不包含子字符串。参数以 string 形式给出。 |
| Proxy | equals does not equal |
指定一个 proxy 或要排除的 proxy。 等于 - 使用此 proxy。 不等于 - 使用除该规则外的任何其他 proxy。 |
发现规则中的服务检查,导致发现事件,并不会同时发生。因此,如果在动作中为 Service type、Service port 或 Received value 条件配置了多个值,它们将逐个与发现事件进行比较,但不会同时与多个事件进行比较。结果是,对于相同检查类型的多个值,动作可能无法正确执行。
自动注册动作
以下条件可用于基于主动 agent 的操作 自动注册
| 条件类型 | 支持的运算符 | 描述 |
|---|---|---|
| Host metadata | contains does not contain matches does not match |
指定要包含的主机元数据或要排除的主机元数据。 包含 - 主机元数据包含string。 不包含 - 主机元数据不包含string。 可以在agent configuration file中指定主机元数据。 匹配 - 主机元数据匹配正则表达式。 不匹配 - 主机元数据不匹配正则表达式。 |
| Host name | contains does not contain matches does not match |
指定要包含的一个主机名称或要排除的一个主机名称。 包含 - 主机名包含string。 不包含 - 主机名不包含string。 匹配 - 主机名与正则表达式匹配。 不匹配 - 主机名与正则表达式不匹配。 |
| Proxy | equals does not equal |
指定一个proxy或排除一个 proxy。 等于 - 使用此 proxy。 不等于 - 使用除这个以外的任何其他 proxy。 |
内部事件动作
可以根据内部事件为动作设置以下条件:
| 条件类型 | 支持的操作符 | 描述 |
|---|---|---|
| Event type | equals | 监控项 处于 "not supported" 状态 - 匹配事件中某个 监控项 从“正常”状态变为“不支持”状态。 低级别自动发现规则处于 "not supported" 状态 - 匹配事件中低级别自动发现规则从“正常”状态变为“不支持”状态。 触发器处于 "unknown" 状态 - 匹配事件中触发器从“正常”状态变为 '未知' 状态。 |
| Host group | equals does not equal |
指定要包含的 主机 组或要排除的 主机 组。 等于 - 事件属于此 主机组。 不等于 - 事件不属于此 主机组。 |
| Tag name | equals does not equal contains does not contain |
指定事件标签或要排除的事件标签。 等于 - 事件包含此标签。 不等于 - 事件不包含此标签。 包含 - 事件包含包含此 string 的标签。 不包含 - 事件不包含包含此 string 的标签。 |
| Tag value | equals does not equal contains does not contain |
指定事件标签和值的组合或要排除的标签和值的组合。 等于 - 事件包含此标签和值。 不等于 - 事件不包含此标签和值。 包含 - 事件包含包含这些字符串的标签和值。 不包含 - 事件不包含包含这些字符串的标签和值。 |
| Template | equals does not equal |
指定模板或要排除的模板。 等于 - 事件属于从此模板继承的 监控项/触发器/低级别自动发现规则。 不等于 - 事件不属于从此模板继承的 监控项/触发器/低级别自动发现规则。 |
| Host | equals does not equal |
指定要包含的 主机 或要排除的 主机。 等于 - 事件属于此 主机。 不等于 - 事件不属于此 主机。 |
计算类型
可用的条件计算选项如下:
- And - 必须满足所有条件
请注意,当多个触发器被选作 Trigger= 条件时,不允许在它们之间使用 “And” 计算。操作只能基于单个触发器的事件执行。
- Or - 满足任一条件即可
- And/Or - 两者的组合:对不同条件类型使用 AND,对相同条件类型使用 OR,例如:
主机组 等于 Oracle servers
主机组 等于 MySQL servers
事件名称 包含 'Database is down'
事件名称 包含 'Database is unavailable'
其计算结果为
(主机组 等于 Oracle servers or 主机组 等于 MySQL servers) and (事件名称 包含 'Database is down' or 事件名称 包含 'Database is unavailable')
- Custom expression - 用户自定义的计算公式,用于评估操作条件。它必须包含所有条件(以大写字母 A、B、C、... 表示),并且可以包含空格、制表符、括号 ( )、and(区分大小写)、or(区分大小写)、not(区分大小写)。
前面的 And/Or 示例可表示为 (A or B) and (C or D),而在自定义表达式中,你也可以使用多种其他计算方式:
(A and B) and (C or D)
(A and B) or (C and D)
((A or B) and C) or D
(not (A or B) and C) or not D
等等。
删除动作中使用的对象
当尝试delete在动作条件/操作中使用的objects时,用户将收到相应的错误消息。
如果动作条件或操作包含以下情况,则不会禁用动作:
- 包含已删除的objects;
- 包含不再被低级别自动发现发现并已被移除的objects(在“删除丢失资源”周期之后)。
如果条件/操作中包含缺失的objects,它们不会被移除。相反,已删除的objects将显示为“已删除的主机组”、“已删除的主机”、“已删除的触发器”等。在动作列表的“信息”列中会显示一个警告图标,并提示消息:“此动作的条件或操作引用了已删除的object(s)”。
请注意,在 Zabbix 7.0.10 之前,如果在动作条件/操作中使用的某个object(主机、模板、触发器等)被删除,则该条件/操作将被移除,并且动作会被禁用。