2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 条件

概述

只有在事件与定义的条件匹配的情况下才执行操作。 配置动作时设置条件。

可以为基于触发的动作设置以下条件:

条件类型 支持的 作 说明
Application =
like
not like
指定要排除的应用程序或应用程序.
= -事件属于与指定应用程序链接的项目的触发器.
like - 事件属于与包含字符串的应用程序链接的项目的触发器.
not like -事件属于链接到不包含字符串的应用程序的项目的触发器.
Host group =
<>
指定要排除的主机组或主机组.
= - 事件属于此主机组.
<> - 事件不属于此主机组.
指定父主机组隐含地选择所有嵌套的主机组.要仅指定父组,必须使用** %% <> %% 运算符另外设置所有嵌套组.| |Template|=
<>|指定要排除的模板或模板.
=** - 属于从此模板继承的触发器的事件.
<> - 不属于从此模板继承的触发器的事件.
Host =
<>
指定要排除的主机或主机
= - 属于这个主机的事件.
<> - 不属于这个主机的事件.
Tag =
<>
like
not like
指定事件标记或要排除的事件标记.
= - 含有该标记的事件
<> - 不含该标记的事件
like -标签中包含此字符串的事件
not like - 标签中不包含此字符串的事件
Tag value =
<>
like
not like
指定事件标签和值组合或要排除的标签和值组合
= - 包含该值和标签的事件
<> -不包含该值和标签的事件
like - 值和标签中包含该字符串的事件
not like - 值和标签中不包含该字符串的事件
Trigger =
<>
指定触发器或要排除的触发器.
= - 由该触发器产生的事件
<> - 除了这一个,由任何其他触发器生成的事件.
Trigger name like
not like
在触发器名称中指定一个字符串或要排除的字符串.
like - 事件由触发器生成,在名称中包含此字符串.区分大小写.
not like - 触发器名称中不包含该字符串. 区分大小写.
Note: 输入的值将与所有宏扩展的触发器名称进行比较.
Trigger severity =
<>
>=
<=
指定触发严重性.
= - 等于触发严重性
<> - 不等于触发严重性
>= - 大于或等于触发严重性
<= - 小于或等于触发严重性.
Time period in
not in
指定时间段或要排除的时间段.
in - 事件时间在该时间段内.
not in - 事件时间不在该时间段内.
格式描述参见 Time period specification 页面.
Maintenance status in
not in
指定主机进行维护或不进行维护.
in - 主机处于维护模式.
not in - 主机不在维护模式.
Note: 如果触发表达式中涉及到多个主机,则至少有一个主机不在维护模式下,条件匹配.

可以为基于发现的事件设置以下条件:

条件类型 支持的 作 说明
Host IP =
<>
指定要发现的主机的IP地址范围或要排除的范围.
= -主机IP在该范围内.
<> - 主机IP不在该范围内.
它可能有以下格式:
单IP: 192.168.1.33
IP地址范围: 192.168.1-10.1-254
IP mask: 192.168.4.0/24
List: 192.168.1.1-254, 192.168.2.1-100, 192.168.2.200, 192.168.4.0/24 自Zabbix 3.0.0起就提供列表格式的空格.
Service type =
<>
指定已发现服务的服务类型或者要排除的服务类型.
= - 匹配发现的服务.
<> -与发现的服务不匹配.
可用服务类型:SSH, LDAP, SMTP, FTP, HTTP, HTTPS (available since Zabbix 2.2 version), POP, NNTP, IMAP, TCP, Zabbix agent, SNMPv1 agent, SNMPv2 agent, SNMPv3 agent, ICMP ping, telnet (available since Zabbix 2.2 version).
Service port =
<>
指定发现的服务或的TCP端口范围或者要排除的TCP端口范围.
= - 服务端口在该范围内.
<> - 服务端口不在该范围内.
Discovery rule =
<>
指定发现规则或要排除的发现规则.
= - 使用这个发现规则.
<> - 使用除此之外的任何其他发现规则.
Discovery check =
<>
指定discovery check或要排除的discovery check
= - 使用这个 discovery check.
<> -使用除此之外的其他任何discovery check.
Discovery object = 指定发现的对象.
= - 等于发现的对象(设备或服务).
Discovery status = Up -匹配'Host Up' 和 'Service Up' 事件
Down - 匹配'Host Down' 和 'Service Down' 事件
Discovered - 匹配 'Host Discovered' 和 'Service Discovered' 事件
Lost - 匹配 'Host Lost' 和 'Service Lost' 事件.
Uptime/Downtime >=
<=
Uptime for 'Host Up' and 'Service Up' events. Downtime for 'Host Down' and 'Service Down' events.
>= -大于或者等于. 参数以秒为单位给出。
<= -小于或等于. 参数以秒为单位给出.
Received value =
<>
>=
<=
like
not like
指定从代理接收的值(Zabbix,SNMP).区分大小写字符串比较. 如果为规则配置了多个Zabbix代理或SNMP检查,则检查所有的Zabbix代理或SNMP检查(每个检查生成与所有条件匹配的新事件).
= - 等于该值.
<> - 不等于该值.
>= - 大于或者等于该值.
<= - 小于或者等于该值.
like -包含子串。参数作为字符串给出.
not like - 不包含子串. 参数作为字符串给出.
Proxy =
<>
指定代理或要排除的代理.
= - 使用这个代理.
<> -使用除此之外的任何其他代理.

在发现规则里的服务检测,并不是同时发生的。因此,如果动作里multiple 值配置了Service type, Service port or Received value ,他们被视为一次一个发现事件,而不是多个事件。这样,有多个值的同类检测的动作,可能错误地执行。

基于活动代理自动注册的动作可以设置以下条件:

条件类型 支持的 作 说明
Host metadata like
not like
指定主机元数据或要排除的主机元数据.
like - 主机元数据包含字符串.
not like - 主机元数据不包含字符串.
可以在代理配置文件中指定主机元数据.
Host name like
not like
指定主机名或要排除的主机名.
like - 包含字符串的主机名.
not like - 不包含字符串的主机名.
Proxy =
<>
指定代理或要排除的代理.
= - 使用这个代理.
<> - 使用除此之外的任何其他代理.

可以根据内部事件为动作设置以下条件:

Application =
like
not like
指定应用程序或要排除的应用程序.
= - 属于与指定应用程序链接的项的事件.
like - 属于与包含字符串的应用程序链接的项的事件.
not like - 属于不包含字符串的应用程序链接的项的事件.
Event type = Item in "not supported" state - 匹配监控项从“正常”到“不支持”状态的事件
Low-level discovery rule in "not supported" state - 匹配低级发现规则从“正常”到“不支持”状态的事件
Trigger in "unknown" state - 匹配触发从“正常”到“未知”状态的事件
Host group =
<>
指定主机组或要排除的主机组.
= - 属于此主机组的事件.
<> - 不属于此主机组的事件.
Template =
<>
指定模板或要排除的模板.
= -属于从此模板继承的监控项/触发器/低级发现规则的事件.
<> - 不属于从此模板继承的监控项/触发器/低级发现规则的事件.
Host =
<>
指定主机或要排除的主机.
= - 属于这个主机的事件.
<> - 不属于这个主机的事件.

运算类型

计算条件的以下选项可用:

  • And - 必须满足所有条件

请注意,当它们被选为“Trigger =”“条件时,在几个触发器之间不允许使用”And“计算。操作只能根据一个触发事件执行。

  • Or - 如果满足一个条件就足够了
  • And/Or - 两者的组合:AND与不同的条件类型和OR具有相同的条件类型,例如:

Host group = Oracle servers
Host group = MySQL servers
Trigger name like 'Database is down'
Trigger name like 'Database is unavailable'

计算为

(Host group = Oracle servers or Host group = MySQL servers) and (Trigger name like 'Database is down' or Trigger name like 'Database is unavailable')

  • 自定义表达式 - 用户自己定义的动作条件表达式. 必须包含所有的条件 (以大写字母 A, B, C, ...) 以及可能包含空格,制表符,括号,和大小写敏感字符。

当前例包含 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
etc.

由于删除对象,被禁用的actions

如果某个操作条件/操作中使用的某个对象(主机,模板,触发器等)被删除,则会删除条件/操作,禁用该操作以避免操作的错误执行。 该操作可以由用户重新启用。

当删除以下项目是会发生这种情况:

  • 主机组(“主机组”条件,特定主机组上的“远程命令”操作));
  • 主机(“主机”条件,特定主机上的“远程命令”操作);
  • 模板(“模板”条件,“链接到模板”和“与模板的链接”操作);
  • 触发器(“触发”条件);
  • 发现规则(使用“发现规则”和“发现检查”条件时);
  • 代理(“代理”条件)。

Note:如果远程命令有许多目标主机,并且我们删除其中的一个,则只有该主机将从目标列表中删除,操作本身将保留。 但是,如果它是唯一的主机,操作也将被删除。 “链接到模板”和“取消与模板的链接”操作也是一样。

删除“发送消息”操作中使用的用户或用户组时,操作不会被禁用。