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

动作对象

以下对象与动作 API 直接相关。

动作

动作对象具有以下属性。

属性 类型 描述
actionid ID 动作的ID。

属性行为:
- 只读
- 更新操作必需
esc_period string 默认操作步骤持续时间。必须至少为60秒。接受秒数、带后缀的时间单位或用户宏。

属性行为:
- 如果eventsource设置为"由触发器创建的事件"、"内部事件"或"基于服务状态更新创建的事件",则支持
eventsource integer 动作将处理的事件类型。

请参阅事件source属性以获取支持的事件类型列表。

属性行为:
- 创建操作必需
name string 动作名称。

属性行为:
- 创建操作必需
status integer 动作是否启用或禁用。

可能值:
0 - (默认) 启用;
1 - 禁用。
pause_symptoms integer 如果事件被标记为故障现象,是否暂停升级。

可能值:
0 - 不暂停升级;
1 - (默认) 暂停升级。

属性行为:
- 如果eventsource设置为"由触发器创建的事件",则支持
pause_suppressed integer 如果事件发生在维护期间,是否暂停升级。

可能值:
0 - 不暂停升级;
1 - (默认) 暂停升级。

属性行为:
- 如果eventsource设置为"由触发器创建的事件",则支持
notify_if_canceled integer 如果升级被取消,是否发送通知。

可能值:
0 - 不发送通知;
1 - (默认) 发送通知。

属性行为:
- 如果eventsource设置为"由触发器创建的事件",则支持

动作操作

动作操作对象定义了一个将在执行动作时执行的操作,具有以下属性。

属性 类型 描述
operationtype integer 操作类型。

可能值:
0 - 发送消息;
1 - 全局脚本;
2 - 添加主机;
3 - 移除主机;
4 - 添加到主机组;
5 - 从主机组移除;
6 - 链接到模板;
7 - 取消链接模板;
8 - 启用主机;
9 - 禁用主机;
10 - 设置主机资产模式;
13 - 添加主机标签;
14 - 移除主机标签。

如果动作对象eventsource设置为"由触发器创建的事件"或"基于服务状态更新创建的事件",则可能值有:
0 - "发送消息";
1 - "全局脚本"。

如果动作对象eventsource设置为"内部事件",则可能值有:
0 - "发送消息"。

属性行为:
- 必需
esc_period string 升级步骤的持续时间(秒)。必须大于60秒。接受秒数、带后缀的时间单位或用户宏。如果设置为0或0s,将使用默认的动作作为升级周期。

默认值:0s。

属性行为:
- 如果动作对象eventsource设置为"由触发器创建的事件"、"内部事件"或"基于服务状态更新创建的事件",则支持
esc_step_from integer 开始升级的步骤。

默认值:1。

属性行为:
- 如果动作对象eventsource设置为"由触发器创建的事件"、"内部事件"或"基于服务状态更新创建的事件",则支持
esc_step_to integer 结束升级的步骤。

默认值:1。

属性行为:
- 如果动作对象eventsource设置为"由触发器创建的事件"、"内部事件"或"基于服务状态更新创建的事件",则支持
evaltype integer 操作条件的评估方法。

可能值:
0 - (默认) AND / OR;
1 - AND;
2 - OR。
opcommand object 要执行的全局脚本。

全局脚本必须定义scriptid属性。

属性行为:
- 如果operationtype设置为"全局脚本",则必需
opcommand_grp array 运行全局脚本的主机组。

主机组必须定义groupid属性。

属性行为:
- 如果operationtype设置为"全局脚本"且未设置opcommand_hst,则必需
opcommand_hst array 运行全局脚本的主机。

主机必须定义hostid属性。

属性行为:
- 如果operationtype设置为"全局脚本"且未设置opcommand_grp,则必需
opconditions array 用于触发器动作的操作条件。

操作条件对象的详细描述如下
opgroup array 要添加主机的主机组。

主机组必须定义groupid属性。

属性行为:
- 如果operationtype设置为"添加到主机组"或"从主机组移除",则必需
opmessage object 包含由操作发送的消息数据的对象。

操作消息对象在此处详细描述

属性行为:
- 如果operationtype设置为"发送消息",则必需
opmessage_grp array 发送消息的用户组。

用户组必须定义usrgrpid属性。

属性行为:
- 如果operationtype设置为"发送消息"且未设置opmessage_usr,则必需
opmessage_usr array 发送消息的用户。

用户必须定义userid属性。

属性行为:
- 如果operationtype设置为"发送消息"且未设置opmessage_grp,则必需
optemplate array 链接到主机的模板。

模板必须定义templateid属性。

属性行为:
- 如果operationtype设置为"链接模板"或"取消链接模板",则必需
opinventory object 设置主机的库存模式。

库存必须定义inventory_mode属性。

属性行为:
- 如果operationtype设置为"设置主机库存模式",则必需
optag array 要添加或删除的主机标签。

标签必须定义tag属性。value属性是可选的。

属性行为:
- 如果operationtype设置为"添加主机标签"或"删除主机标签",则支持

动作操作消息

操作消息对象包含有关将由动作发送的消息的数据。它具有以下属性。

属性 类型 描述
default_msg integer 是否使用默认的动作消息文本和主题。

可能的值:
0 - 使用来自动作的数据;
1 - (默认) 使用来自媒体类型的数据。
mediatypeid ID 用于发送消息的媒体类型的ID。

属性行为:
- 如果动作操作对象动作恢复操作对象、或动作更新操作对象operationtype设置为"发送消息",或者如果动作更新操作对象operationtype设置为"通知所有相关人员",则支持
message string 动作消息文本。

属性行为:
- 如果default_msg设置为"使用来自动作的数据",则支持
subject string 动作消息主题。

属性行为:
- 如果default_msg设置为"使用来自动作的数据",则支持

动作操作条件

动作操作条件对象定义了一个必须满足的条件,以便执行当前操作。它具有以下属性。

属性 类型 描述
conditiontype integer 条件类型。

可能的值:
14 - 事件已确认。

属性行为:
- 必填
value string 要与之比较的值。

属性行为:
- 必填
operator integer 条件操作符。

可能的值:
0 - (默认) =

每种操作条件类型都支持以下操作符和值。

条件 条件名称 支持的操作符 预期值
14 事件已确认 = 事件是否已确认。

可能的值:
0 - 未确认;
1 - 已确认。

动作恢复操作

动作恢复操作对象定义了在问题得到解决时将执行的操作。 恢复操作适用于触发器、内部和服务动作。 它具有以下属性。

属性 类型 描述
operationtype integer 操作类型。

如果动作对象eventsource设置为"由触发器创建的事件"或"服务状态更新时创建的事件":
0 - 发送消息;
1 - 全局脚本;
11 - 通知所有相关人员。

如果动作对象eventsource设置为"内部事件":
0 - 发送消息;
11 - 通知所有相关人员。

属性行为:
- 必填
opcommand object 要执行的全局脚本。

全局脚本必须定义scriptid属性。

属性行为:
- 如果operationtype设置为"全局脚本",则必填
opcommand_grp array 运行全局脚本的主机组。

主机组必须定义groupid属性。

属性行为:
- 如果动作对象eventsource设置为"由触发器创建的事件",并且operationtype设置为"全局脚本",且未设置opcommand_hst,则必填
opcommand_hst array 运行全局脚本的主机。

主机必须定义hostid属性。

属性行为:
- 如果动作对象eventsource设置为"由触发器创建的事件",并且operationtype设置为"全局脚本",且未设置opcommand_grp,则必填
opmessage object 包含恢复操作发送的消息数据的对象。

操作消息对象在上面详细描述

属性行为:
- 如果operationtype设置为"send message",则必填
opmessage_grp array 要发送消息的用户组。

用户组必须定义usrgrpid属性。

属性行为:
- 如果operationtype设置为"send message"且未设置opmessage_usr,则必填
opmessage_usr array 要发送消息的用户。

用户必须定义userid属性。

属性行为:
- 如果operationtype设置为"send message"且未设置opmessage_grp,则必填

动作更新操作

动作更新操作对象定义了在问题更新(评论、确认、严重性变更或手动关闭)时将执行的操作。 更新操作适用于触发器和服务动作。 它具有以下属性。

属性 类型 描述
operationtype integer 操作类型。

可能的值:
0 - 发送消息;
1 - 全局脚本;
12 - 通知所有相关人员。

属性行为:
- 必填
opcommand object 要执行的全局脚本。

全局脚本必须定义scriptid属性。

属性行为:
- 如果operationtype设置为"全局脚本",则必填
opcommand_grp array 运行全局脚本的主机组。

主机组必须定义groupid属性。

属性行为:
- 如果动作对象eventsource设置为"由触发器创建的事件",并且operationtype设置为"全局脚本",且未设置opcommand_hst,则必填
opcommand_hst array 运行全局脚本的主机。

这些主机必须定义hostid属性。

属性行为:
- 如果动作对象eventsource设置为"由触发器创建的事件",operationtype设置为"全局脚本",并且未设置opcommand_grp,则必填
opmessage object 包含更新操作发送的消息数据的对象。

操作消息对象的详细描述见上方链接
opmessage_grp array 要发送消息的用户组。

用户组必须定义usrgrpid属性。

属性行为:
- 如果operationtype设置为"发送消息"且未设置opmessage_usr,则必填
opmessage_usr array 要发送消息的用户。

用户必须定义userid属性。

属性行为:
- 如果operationtype设置为"发送消息"且未设置opmessage_grp,则必填

动作过滤

动作过滤对象定义了一组必须满足的条件,以便执行配置的动作操作。它具有以下属性。

属性 类型 描述
conditions array 通过设置过滤条件来得到想要的结果。条件将按照它们在公式中的放置顺序进行排序。

属性行为:
- 必填
evaltype integer 过滤条件评估方法。

可能的值:
0 - and/or(并且/或者);
1 - and(并且);
2 - or(或者);
3 - 自定义表达式。

属性行为:
- 必填
eval_formula string 用于评估过滤条件的生成表达式。表达式包含通过其formulaid引用特定过滤条件的ID。eval_formula的值等于具有自定义表达式的过滤的formula的值。

属性行为:
- 只读
formula string 用户定义的表达式用于评估过滤器条件的自定义表达式,并且这个表达式需要包含引用特定过滤器条件的 formulaid。在创建用户定义的表达式以评估过滤器条件的场景中,确保表达式中使用的ID与过滤器条件中定义的ID完全匹配,并且没有条件被遗漏或未使用,是一个重要的验证步骤。

属性行为:
- 如果evaltype设置为"自定义表达式",则必填

动作过滤条件

动作过滤条件对象定义了在执行动作操作之前必须检查的具体条件。

属性 类型 描述
conditiontype integer 条件的类型。

如果动作对象eventsource设置为"由触发器创建的事件",则可能的值有:
0 - 主机组;
1 - 主机;
2 - 触发器;
3 - 事件名称;
4 - 触发器严重级别;
6 - 时间段;
13 - 主机模板;
16 - 问题已被抑制;
25 - 事件标签;
26 - 事件标签值。

如果动作对象eventsource设置为"由发现规则创建的事件",则可能的值有:
7 - 主机IP;
8 - 已发现的服务类型;
9 - 已发现的服务端口;
10 - 发现状态;
11 - 运行持续时间或宕机持续时间;
12 - 接收到的值;
18 - 发现规则;
19 - 发现检查;
20 - 代理;
21 - 发现对象。

如果动作对象eventsource设置为"由active agent自动注册创建的事件",则可能的值有:
20 - proxy;
22 - 主机名;
24 - 主机元数据。

如果动作对象eventsource设置为"内部事件",则可能的值有:
0 - 主机组;
1 - 主机;
13 - 主机模板;
23 - 事件类型;
25 - 事件标签;
26 - 事件标签值。

如果动作对象eventsource设置为"基于服务状态更新创建的事件",则可能的值有:
25 - 事件标签;
26 - 事件标签值;
27 - 服务;
28 - 服务名称。

属性行为:
- 必填
value string 要与之比较的值。

属性行为:
- 必填
value2 string 要与之比较的次要值。

属性行为:
- 如果动作对象eventsource设置为"由触发器创建的事件",conditiontype设置为触发器动作的任何可能值,并且条件类型(见下文)为"26",则为必填
- 如果动作对象eventsource设置为"内部事件",conditiontype设置为内部动作的任何可能值,并且条件类型(见下文)为"26",则为必填
- 如果动作对象eventsource设置为"基于服务状态更新创建的事件",conditiontype设置为服务动作的任何可能值,并且条件类型(见下文)为"26",则为必填
formulaid string 用于从自定义表达式中引用条件的任意唯一ID。只能包含大写字母。在修改过滤条件时,ID必须由用户定义,但在之后请求它们时将重新生成。
operator integer 条件操作符。

可能的值:
0 - (默认) 等于;
1 - 不等于;
2 - 包含;
3 - 不包含;
4 - 在...内;
5 - 大于或等于;
6 - 小于或等于;
7 - 不在...内;
8 - 匹配;
9 - 不匹配;
10 - 是;
11 - 否。

为了更好地了解如何使用具有各种类型表达式的过滤,请参阅action.getaction.create方法页面的示例。

每个条件类型都支持以下运算符和值。

条件 条件名称 支持的运算符 预期值
0 主机组 等于, 不等于 主机组ID。
1 主机 等于, 不等于 主机ID。
2 触发器 等于, 不等于 触发器ID。
3 事件名称 包含, 不包含 事件名称。
4 触发器严重级别 等于, 不等于, 大于等于, 小于等于 触发器严重级别。请参考触发器 severity 属性以获取支持的触发器严重级别列表。
5 触发器值 等于 触发器值。请参考触发器 value 属性以获取支持的触发器值列表。
6 时间段 在...内, 不在...内 事件触发的时间作为时间段
7 主机IP 等于, 不等于 要检查的一个或多个IP范围,用逗号分隔。有关支持的IP范围格式的更多信息,请参阅网络发现配置部分。
8 发现的服务类型 等于, 不等于 发现的服务类型。服务类型与用于检测服务的发现检查类型相匹配。请参考发现检查 type 属性以获取支持的类型列表。
9 发现的服务端口 等于, 不等于 一个或多个端口范围,用逗号分隔。
10 发现的状态 等于 发现对象的状态。

可能值:
0 - 主机或服务正常运行;
1 - 主机或服务宕机;
2 - 主机或服务已被发现;
3 - 主机或服务已丢失。
11 正常运行时间或宕机时长 大于等于, 小于等于 发现对象在当前状态下已经持续的时间(秒)。
12 接收到的值 等于, 不等于, 大于等于, 小于等于, 包含, 不包含 执行Zabbix agent、SNMPv1、SNMPv2或SNMPv3发现检查时返回的值。
13 主机模板 链接的模板ID。
16 问题被抑制 是, 否 不需要值时:使用“Yes”运算符表示问题必须被抑制,“No”表示不被抑制。
18 发现规则 等于, 不等于 发现规则的ID。
19 发现检查 等于, 不等于 发现检查的ID。
20 Proxy 等于, 不等于 Proxy ID。
21 发现对象 等于 触发发现事件的对象的类型。

可能值:
1 - 被发现的主机;
2 - 被发现的服务。
22 主机名 包含, 不包含, 匹配, 不匹配 主机名。
在自动注册条件下,对于匹配不匹配运算符支持使用正则表达式。
23 事件类型 等于 特定的内部事件。

可能值:
0 - 项目处于“不支持”状态;
1 - 项目处于“正常”状态;
2 - LLD规则处于“不支持”状态;
3 - LLD规则处于“正常”状态;
4 - 触发器处于“未知”状态;
5 - 触发器处于“正常”状态。
24 主机元数据 包含, 不包含, 匹配, 不匹配 自动注册主机的元数据。
对于匹配不匹配运算符支持使用正则表达式。
25 标签 等于, 不等于, 包含, 不包含 事件标签。
26 标签值 等于, 不等于, 包含, 不包含 事件标签值。
27 服务 等于, 不等于 服务ID。
28 服务名称 等于, 不等于 服务名称。