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

> Action object

下面是 Action(动作) API 相关的对象。

Action(动作)

动作对象具有以下属性。

属性 类 描述
actionid string (只读) 动作的 ID。
esc_period
(必要)
string 默认操作步骤持续时间。必须大于 60 秒。接受秒,带后缀的时间单位和用户宏。
eventsource
(必要)
integer
(常量) 动作将处理的事件源的类型。
参见 event(事件)对象的 "source" 属性 以获取支持的事件源类型列表。
name
(必要)
string 动作的名称。
def_longdata string 异常消息文本。
def_shortdata string 异常消息主题。
r_longdata string 恢复消息文本。
r_shortdata string 恢复消息主题。
ack_longdata string 确认操作消息文本。
ack_shortdata string 确认操作消息主题。
status integer 动作是启动还是禁用。

可用的值:
0 - (默认) 启用;
1 - 禁用。
pause_suppressed integer 是否在维护期间暂停升级。

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

Action operation(动作操作)

动作操作对象定义当动作被执行时进行的操作。它具有以下属性:

属性 类 描述
operationid string (只读) 动作操作的 ID。
operationtype
(必要)
integer
操作类型
可用的值:
0 - 发送消息;
1 - 远程命令;
2 - 添加主机;
3 - 删除主机;
4 - 添加到主机组;
5 - 从主机组删除;
6 - 链接到模板;
7 - 取消与模板的关联;
8 - 启用主机;
9 - 禁用主机;
10 - 设置主机资产记录模式。
actionid string 此操作所属的动作的 ID。
esc_period string 以秒为单位的升级步骤的持续时间。必须大于 60 秒。接受秒,时间单位后缀和用户宏。如果设置为 0 或0s,则将使用默认的动作升级周期。

默认: 0s.
esc_step_from integer 步骤开始升级。

默认: 1.
esc_step_to integer 步骤结束升级。

默认: 1.
evaltype integer 操作条件(opration condition)的评估方法。

可用的值:
0 - (默认) AND / OR;
1 - AND;
2 - OR.
opcommand object 包含操作(operation)所运行的远程命令的数据的对象。

操作命令(action operation command)对象的详情见下面的描述.

对于远程命令的操作类型,该参数是必须的。
opcommand_grp array 包含运行远程命令的主机组对象的数组。

数组中的每个对象具有以下属性:
opcommand_grpid - (string, 只读) 对象的 ID;
operationid - (string) 操作 ID;
groupid - (string) 主机组的 ID。

对于远程命令的操作类型,如果没有设置 opcommand_hst 参数,则该参数是必须的。
opcommand_hst array 包含运行远程命令的主机对象的数组。

数组中每个对象具有以下属性:
opcommand_hstid - (string, 只读) 对象的 ID;
operationid - (string) 操作 ID;
hostid - (string) 主机 ID; 如果设置为 0,则命令将在当前主机上运行。

对于远程命令的操作类型,如果没有设置 opcommand_grp 参数,则该参数是必须的。
opconditions array 包含用于动作源(action source)是触发器(trigger)的操作(operation)的操作条件(operation condition)对象的数组

操作条件(operation condition)对象的详情见 下面的描述.
opgroup array 包含操作的主机组对象的数组。

数组中每个对象都具有以下属性:
operationid - (string) 操作ID;
groupid - (string) 主机组的 ID。

对于 添加到主机组从主机组中删除 的操作类型,该参数是必须的。
opmessage object 包含有关操作发送的消息的数据的对象。

操作消息对象的详情见 下面的描述.

对于 发送消息 的操作类型,该参数是必须的。
opmessage_grp array 包含要发送消息的目标用户组对象的数组。

数组中每个对象都具有以下属性:
operationid - (string) 操作 ID;
usrgrpid - (string) 用户组的ID。

对于 发送消息 的操作类型,如果未设置 opmessage_usr 参数,则该参数是必须的。
opmessage_usr array 包含要发送消息的目标用户对象的数组。

数组中每个对象都具有以下属性:
operationid - (string) 操作 ID;
userid - (string) 用户的ID。

对于 发送消息 的操作类型,如果未设置 opmessage_grp 参数,则该参数是必须的。
optemplate array 包含链接到模板/取消与模板关联的模板对象的数组。

数组中每个对象都具有以下属性:
operationid - (string) 操作 ID;
templateid - (string) 模板 ID.

对于 链接到模板取消与模板的关联 的操作类型,该参数是必须的
opinventory object 主机资产记录模式的对象。

每个对象都具有以下属性:
operationid - (string) 操作 ID;
inventory_mode - (string) Inventory mode.

对于 设置主机资产记录模式 的操作类型,该参数是必须的。

Action operation command (动作操作-命令)

操作命令对象包含有关运行操作命令的数据。

属性 类 说明
operationid string (只读) 操作 ID.
command string 要运行的命令。 当类型为 (0,1,2,3) 时,此项是必须的
type
(必要)
integer
操作命令的类型
可用的值:
0 - custom script;
1 - IPMI;
2 - SSH;
3 - Telnet;
4 - global script.
authtype integer SSH 命令的认证方法。

可用的值:
0 - password;
1 - public key.

必要 for SSH commands.
execute_on integer 将要执行自定义脚本操作命令的目标。

可用的值:
0 - Zabbix agent;
1 - Zabbix server;
2 - Zabbix server (proxy).

自定义脚本命令所需的。
password string 密码验证和 telnet 命令时用于 SSH 命令的密码。
port string 用于 SSH 和 telnet 命令的端口号。
privatekey string 使用公钥认证的 SSH 命令的私钥文件的名称。

具有密钥验证的 SSH 命令所必需的。
publickey string 用于SSH公钥和公钥认证的公钥名称。

具有密钥验证的 SSH 命令所必需的。
scriptid string 用于全局脚本命令的脚本 ID。

需要全局脚本命令。
username string 用于登录认证的用户名

使用 SSH 和 Telnet 命令时是必须的.

动作操作消息

操作消息对象包含有关将由操作发送的消息的数据。

属性 类 说明
operationid string (只读) 动作操作的 ID
default_msg integer 是否使用默认动作消息文本和主题。

可用的值:
0 - (default) 使用操作中的消息文本和主题
1 - 使用动作中的消息文本和主题
mediatypeid string 将用于发送消息的媒体类型ID。
message string 操作消息文本。
subject string 操作消息主题。

动作操作条件

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

属性 类 说明
opconditionid string (只读) 动作操作条件的 ID
conditiontype
(必要)
integer
条件的类型。
可用的值:
14 - event acknowledged.
value
(必要)
string 与之比较的值。
operationid string (只读) 动作操作的 ID
operator integer 条件运算符

可用的值:
0 - (default) =.

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

条件 条 名称 支持的运算 期望值
14 Event acknowledged = 件是否被确认。

可用的值:
0 - 没有确认;
1 - 已确认。

动作恢复操作

动作恢复操作对象定义将在解决问题时执行的操作。 可以对触发操作和内部操作执行恢复操作。 它具有以下属性。

属性 类 描述
operationid string (只读) 动作操作的 ID。
operationtype
(必要)
integer
操作的类型
触发动作的可能值:
0 - 发送信息;
1 - 远程命令;
11 - 通知所有参与者。

内部操作的可能值:
0 - 发送信息;
11 - 通知所有参与者。
actionid string 恢复操作所属的动作的ID。
opcommand object 对象,该对象包含有关恢复操作运行的命令的数据。

操作命令对象是 described in detail above.

必要 用于远程命令操作。
opcommand_grp array 运行远程命令的主机组。

每个对象具有以下属性:
opcommand_grpid - (string, 只读) 对象的 ID;
operationid - (string) 操作的 ID;
groupid - (string) 主机组的 ID。

必要 如果未设置“opcommand_hst”,则用于远程命令操作。
opcommand_hst array 主机运行远程命令。

每个对象具有以下属性:
opcommand_hstid - (string, 只读) 对象的 ID;
operationid - (string) 操作的 ID;
hostid - (string) 主机的ID;如果设置为0,则命令将在当前主机上运行。

必要 如果未设置“opcommand_grp”,则用于远程命令操作。
opmessage object 对象,该对象包含有关恢复操作发送的消息的数据。

操作消息对象是 described in detail above.

必要 用于消息操作。
opmessage_grp array 发送消息的用户组。

每个对象具有以下属性:
operationid - (string) 操作的 ID;
usrgrpid - (string) 用户组的ID。

必要 如果未设置“opmessage_usr”,则用于消息操作。
opmessage_usr array 发送消息的用户。

每个对象具有以下属性:
operationid - (string) 操作的 ID;
userid - (string) 用户 ID.

必要 如果未设置“opmessage_grp”,则用于消息操作。

动作确认操作

动作确认操作对象定义在确认问题时将执行的操作。对于触发操作,确认操作是可能的。它具有以下属性。

属性 类 描述
operationid string (只读) 动作操作的 ID。
operationtype
(必要)
integer
操作类型。
触发操作的可能值:
0 - 发送消息;
1 - 远程命令;
12 - 通知所有相关人员.
opcommand object 对象,该对象包含有关恢复操作运行的命令的数据。

操作命令对象是 described in detail above.

必要 用于远程命令操作。
opcommand_grp array 运行远程命令的主机组。

每个对象具有以下属性:
groupid - (string) 主机组的ID。

必要 如果未设置“opcommand_hst”,则用于远程命令操作。
opcommand_hst array 主机运行远程命令。

每个对象具有以下属性:
hostid - (string) 主机的ID;如果设置为0,则命令将在当前主机上运行。

必要 如果未设置“opcommand_grp”,则用于远程命令操作。
opmessage object 对象,该对象包含有关恢复操作发送的消息的数据。

操作消息对象是 described in detail above.
opmessage_grp array 发送消息的用户组。

每个对象具有以下属性:
usrgrpid - (string) ID of the user group.

必要 如果opmessage_usr未设置,则仅用于send message操作。
“发送确认消息”操作被忽略。
opmessage_usr array 发送消息的用户。

每个对象具有以下属性:
userid - (string) 用户 ID.

必要 如果opmessage_grp未设置,则仅用于send message操作。
“发送确认消息”操作被忽略。

动作滤波器

action filter 对象定义执行配置的操作必须满足的一组条件。它具有以下属性。

属性 类 描述
conditions
(必要)
array 用于筛选结果的筛选条件集
evaltype
(必要)
integer
过滤条件评估方法。
可能值:
0 - and/or;
1 - and;
2 - or;
3 - 自定义表达式。
eval_formula string (只读) 用户定义的表达式,用于评估具有自定义表达式的过滤器的条件。 表达式必须包含通过其formulaid引用特定过滤条件的ID。 表达式中使用的ID必须与过滤条件中定义的ID完全匹配:没有条件可以保持未使用或省略。

必要 自定义表达式过滤器。

动作过滤条件

动作过滤条件对象定义在运行操作动作之前必须检查的特定条件。

属性 类 描述
conditionid string (只读) 动作条件的ID。
conditiontype
(必要)
integer
条件类型。
触发操作的可能值:
0 - 主机组;
1 - 主机;
2 - 触发器;
3 - 触发器名称;
4 - 触发严重程度;
6 - 时间段;
13 - 主机模板;
15 - 应用;
16 - 维护状态;
25 - 事件标签;
26 - 事件标记值.

发现操作的可能值:
7 - 主机 IP;
8 - 发现服务类型;
9 - 发现服务端口;
10 - 发现状态;
11 - 正常运行时间或停机时间;
12 - 收到的价值;
18 - 发现规则;
19 - 发现检查;
20 - proxy;
21 - 发现对象.

自动注册操作的可能值:
20 - proxy;
22 - 主机名;
24 - 主机元数据.

内部操作的可能值:
0 - 主机组;
1 - 主机;
13 - 主机模板;
15 - 应用;
23 - 事件类型.
value
(必要)
string 要与之比较的值。
value2
string 要与之比较的辅助值。条件类型为 26 时触发操作所必需的。
actionid string (只读) 条件所属操作的ID.
formulaid string 用于自定义表达式引用条件的任意唯一ID。 只能包含大写字母。 用户在修改过滤条件时必须定义ID,但在以后请求时会重新生成。
operator integer 条件运算符。

可能的值:
0 - (default) =;
1 - <>;
2 - like;
3 - not like;
4 - in;
5 - >=;
6 - <=;
7 - not in.

为了更好地理解如何使用具有各种类型表达式的过滤器, 看看例子 action.get and action.create method pages.

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

条件 条 名称 支持操作 期望值
0 Host group =, <> 主机组 ID。
1 Host =, <> 主机 ID。
2 Trigger =, <> 触发器 ID。
3 Trigger name like, not like 触发器名称。
4 Trigger severity =, <>, >=, <= 触发严重性。 参考trigger "severity" property for a list of supported trigger severities.
5 Trigger value = 触发值。 参考 trigger "value" property for a list of supported trigger values.
6 Time period in, not in 事件被触发的时间 time period.
7 Host IP =, <> 要用逗号分隔的一个或多个IP范围。 参考 network discovery configuration 参阅有关支持的IP范围格式的更多信息
8 Discovered service type =, <> 发现服务的类型。 服务类型与用于检测服务的发现检查的类型相匹配。 参考discovery check "type" property 获取支持的类型列表。
9 Discovered service port =, <> 一个或多个端口范围以逗号分隔。
10 Discovery status = 发现对象的状态。

可能的值:
0 - 主机或服务启动;
1 - 主机或服务关闭;
2 - 发现主机或服务;
3 - 主机或服务失去连接。
11 Uptime or downtime duration >=, <= 指示发现的对象处于当前状态的时间(秒)。
12 Received values =, <>, >=, <=, like, not like 执行zabbix代理、snmpv1、snmpv2或snmpv3发现检查时返回的值。
13 Host template =, <> 链接模板ID。
15 Application =, like, not like 应用程序的名称。
16 Maintenance status in, not in No value 必要: 使用“in”运算符意味着主机必须处于维护状态,“not in”-不处于维护状态。
18 Discovery rule =, <> 发现规则的ID。
19 Discovery check =, <> 发现检查的ID。
20 Proxy =, <> 代理的ID。
21 Discovery object = 触发发现事件的对象类型。

可能值:
1 - 发现主机;
2 - 发现服务。
22 Host name like, not like 主机名。
23 Event type = 特定内部事件。

可能值:
0 - 监控项处于“不支持”状态;
1 -监控项处于“正常”状态;
2 -LLD规则处于“不支持”状态;
3 - LLD规则处于“正常”状态;
4 - 触发器处于“未知”状态;
5 - 触发器处于“正常”状态。
24 Host metadata like, not like Metadata of the auto-registered host.
25 Tag =, <>, like, not like 事件标记。
26 Tag value =, <>, like, not like 事件标记值。