以下objects与discoveryruleAPI直接相关。

LLD规则

低级发现规则object具有以下属性。

属性 数据类型 描述
itemid string (只读) LLD规则的ID。
delay
(required)
string LLD规则的更新间隔。接受秒数或带后缀的时间单位,可以包含或不包含一个或多个custom intervals,这些custom intervals由灵活间隔和调度间隔作为序列化字符串组成。也接受用户宏。灵活间隔可以写成由正斜杠分隔的两个宏。间隔由分号分隔。

对于Zabbix trapper、依赖监控项和带有mqtt.get键的Zabbix agent(主动)是可选的。
hostid
(required)
string LLD规则所属的主机的ID。
interfaceid
(required)
string LLD规则的主机接口的ID。仅用于主机 LLD规则。

对于Zabbix agent(主动)、Zabbix内部、Zabbix trapper、依赖、数据库监控和脚本LLD规则不需要。对于HTTP agent LLD规则是可选的。
key_
(required)
string LLD规则的键。
name
(required)
string LLD规则的名称。
type
(required)
integer LLD规则的类型。

可能的值:
0 - Zabbix agent;
2 - Zabbix trapper;
3 - 简单检查;
5 - Zabbix内部;
7 - Zabbix agent(主动);
10 - 外部检查;
11 - 数据库监控;
12 - IPMI agent;
13 - SSH agent;
14 - TELNET agent;
16 - JMX agent;
18 - 依赖监控项;
19 - HTTP agent;
20 - SNMP agent;
21 - 脚本。
url
(required)
string URL string,HTTP agent LLD规则必需。支持用户宏,{主机.IP}、{主机.CONN}、{主机.DNS}、{主机.主机}、{主机.NAME}、{监控项.ID}、{监控项.KEY}。
allow_traps integer HTTP agent LLD规则字段。允许像trapper 监控项类型一样填充值。

0 - (默认) 不允许接受传入数据。
1 - 允许接受传入数据。
authtype integer 仅用于SSH agent或HTTP agent LLD规则。

SSH agent认证方法可能的值:
0 - (默认) 密码;
1 - 公钥。

HTTP agent认证方法可能的值:
0 - (默认)
1 - 基本
2 - NTLM
description string LLD规则的描述。
error string (只读) 如果更新LLD规则值有问题,错误文本。
follow_redirects integer HTTP agent LLD规则字段。轮询数据时跟随响应重定向。

0 - 不跟随重定向。
1 - (默认) 跟随重定向。
headers object HTTP agent LLD规则字段。object带有HTTP(S)请求头,其中头名称用作键,头值用作值。

示例:
{ "User-Agent": "Zabbix" }
http_proxy string HTTP agent LLD规则字段。HTTP(S) proxy连接string。
ipmi_sensor string IPMI传感器。仅用于IPMI LLD规则。
jmx_endpoint string JMX agent自定义连接string。

默认值:
service:jmx:rmi:///jndi/rmi://{主机.CONN}:{主机.PORT}/jmxrmi
lifetime string 不再发现的监控项将被删除的时间段。接受秒数、带后缀的时间单位和用户宏。

默认:30d
master_itemid integer 主监控项 ID。
允许递归到{eccbc87e}依赖监控项,且依赖监控项的最大数量为999。
发现规则不能是另一个发现规则的主监控项。

依赖监控项必需。
output_format integer HTTP agent LLD规则字段。响应是否应转换为JSON。

0 - (默认) 存储原始数据。
1 - 转换为JSON。
params string 根据LLD规则类型的附加参数:
- 用于SSH和Telnet LLD规则的执行脚本;
- 用于数据库监控LLD规则的SQL query;
- 用于计算LLD规则的公式。
parameters array 脚本类型LLD规则的附加参数。array的objects,具有'name'和'value'属性,其中name必须唯一。
password string 认证密码。用于简单检查、SSH、Telnet、数据库监控、JMX和HTTP agent LLD规则。
post_type integer HTTP agent LLD规则字段。存储在posts属性中的post数据体类型。

0 - (默认) 原始数据。
2 - JSON数据。
3 - XML数据。
posts string HTTP agent LLD规则字段。HTTP(S)请求体数据。与post_type一起使用。
privatekey string 私钥文件名。
publickey string 公钥文件名。
query_fields array HTTP agent LLD规则字段。query参数。array的objects,具有'key':'value'对,其中value可以是空string。
request_method integer HTTP agent LLD规则字段。请求方法类型。

0 - (默认) GET
1 - POST
2 - PUT
3 - HEAD
retrieve_mode integer HTTP agent LLD规则字段。应存储响应的哪部分。

0 - (默认) 正文。
1 - 头。
2 - 正文和头都将存储。

对于request_method HEAD,仅允许1值。
snmp_oid string SNMP OID。
ssl_cert_file string HTTP agent LLD规则字段。公共SSL密钥文件路径。
ssl_key_file string HTTP agent LLD规则字段。私有SSL密钥文件路径。
ssl_key_password string HTTP agent LLD规则字段。SSL密钥文件的密码。
state integer (只读) LLD规则的状态。

可能的值:
0 - (默认) 正常;
1 - 不支持。
status integer LLD规则的状态。

可能的值:
0 - (默认) 启用的LLD规则;
1 - 禁用的LLD规则。
status_codes string HTTP agent LLD规则字段。所需HTTP状态码的范围,用逗号分隔。也支持用户宏作为逗号分隔列表的一部分。

示例:200,200-{$M},{$M},200-400
templateid string (只读) 父模板LLD规则的ID。
timeout string 监控项数据轮询请求超时。用于HTTP agent和脚本LLD规则。支持用户宏。

默认:3s
最大值:60s
trapper_hosts string 允许的主机。用于trapper LLD规则或HTTP agent LLD规则。
username string 认证用户名。用于简单检查、SSH、Telnet、数据库监控、JMX和HTTP agent LLD规则。

SSH和Telnet LLD规则必需。
uuid string 通用唯一标识符,用于将导入的LLD规则链接到已存在的LLD规则。仅用于模板上的LLD规则。如果未提供,则自动生成。
verify_host integer HTTP agent LLD规则字段。是否验证连接的主机名称与主机证书中的名称匹配。

0 - (默认) 不验证。
1 - 验证。
verify_peer integer HTTP agent LLD规则字段。是否验证主机证书的真实性。

0 - (默认) 不验证。
1 - 验证。

注意,对于某些方法(更新、删除),必需/可选参数的组合是不同的。

LLD 规则过滤器

LLD规则过滤器object定义了一组可用于筛选发现objects的条件。它具有以下属性:

属性 数据类型 描述
conditions
(required)
array 用于筛选结果的过滤条件集合。
evaltype
(required)
integer 过滤条件评估方法。

可选值:
0 - 与/或;
1 - 与;
2 - 或;
3 - 自定义表达式。
eval_formula string (只读) 用于评估过滤条件的生成表达式。该表达式包含通过formulaid引用特定过滤条件的ID。对于自定义表达式的过滤器,eval_formula的值等于formula的值。
formula string 用户定义的表达式,用于评估具有自定义表达式的过滤条件。该表达式必须包含通过formulaid引用特定过滤条件的ID。表达式中使用的ID必须与过滤条件中定义的ID完全匹配:不能有任何条件未被使用或遗漏。

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

LLD 规则过滤条件

LLD规则过滤条件object用于对LLD宏的值执行独立检查,具有以下属性:

属性 数据类型 描述
macro
(required)
string 需要检查的LLD宏。
value
(required)
string 用于比较的值。
formulaid string 用于在自定义表达式中引用该条件的唯一ID(仅允许大写字母)。用户修改过滤条件时必须定义该ID,但后续请求时会重新生成。
operator integer 条件运算符。

可选值:
8 - (默认) 匹配正则表达式;
9 - 不匹配正则表达式;
12 - 存在;
13 - 不存在。

关于如何在不同类型表达式中使用过滤器的详细示例,请参阅 检索筛选条件使用自定义表达式过滤器方法页面。

LLD 宏路径

LLD宏路径具有以下属性:

属性 数据类型 描述
lld_macro
(required)
string LLD宏。
path
(required)
string 用于选择将赋值给对应宏的值的选择器。

LLD 规则预处理

LLD规则预处理object具有以下属性。

属性 数据类型 描述
type
(required)
integer 预处理选项类型。

可选值:
5 - 正则表达式匹配;
11 - XML XPath;
12 - JSONPath;
15 - 不匹配正则表达式;
16 - 检查JSON错误;
17 - 检查XML错误;
20 - 心跳机制丢弃未变更值;
21 - JavaScript;
23 - Prometheus转JSON;
24 - CSV转JSON;
25 - 替换;
27 - XML转JSON。
params
(required)
string 预处理选项使用的附加参数。多个参数用换行符(\n)分隔。
error_handler
(required)
integer 预处理步骤失败时采取的操作类型。

可选值:
0 - 由Zabbix server设置错误消息;
1 - 丢弃值;
2 - 设置自定义值;
3 - 设置自定义错误消息。
error_handler_params
(required)
string 错误处理参数。与error_handler配合使用。

error_handler为0或1时必须为空。
error_handler为2时可空。
error_handler为3时不可空。

各预处理类型支持的参数和错误处理程序如下:

预处理类型 名称 参数1 参数2 参数3 支持的错误处理程序
5 Regular expression pattern1 output2 0, 1, 2, 3
11 XML XPath path3 0, 1, 2, 3
12 JSONPath path3 0, 1, 2, 3
15 Does not match regular expression pattern1 0, 1, 2, 3
16 Check for error in JSON path3 0, 1, 2, 3
17 Check for error in XML path3 0, 1, 2, 3
20 Discard unchanged with heartbeat seconds4, 5
21 JavaScript script2
23 Prometheus to JSON pattern5, 6 0, 1, 2, 3
24 CSV to JSON character2 character2 0,1 0, 1, 2, 3
25 Replace search string2 replacement2
27 XML to JSON 0, 1, 2, 3

1 正则表达式
2 string
3 JSONPath或XML XPath
4 正数integer(支持时间后缀,如30s、1m、2h、1d)
5 用户宏
6 遵循语法<metric name>{<label name>="<label value>", ...} == <value>的Prometheus模式。每个Prometheus模式组件(指标、标签名、标签值和指标值)可以是用户宏。

LLD 规则覆盖

LLD规则覆盖项object定义了一组规则(过滤器、条件和操作),用于覆盖不同原型objects的属性。它具有以下特性:

属性 数据类型 描述
name
(required)
string 唯一覆盖项名称。
step
(required)
integer 覆盖项的唯一序号。
stop integer 匹配时停止处理后续覆盖项。

可选值:
0 - (默认) 不停止处理覆盖项;
1 - 若过滤器匹配则停止处理覆盖项。
filter object 覆盖项过滤器。
operations array 覆盖项操作。

LLD 规则覆盖过滤器

LLD规则覆盖过滤器object定义了一组条件,当这些条件与发现的object匹配时,将应用覆盖。它具有以下属性:

属性 数据类型 描述
evaltype
(required)
integer 覆盖过滤器条件评估方法。

可能的值:
0 - 与/或;
1 - 与;
2 - 或;
3 - 自定义表达式。
conditions
(required)
array 用于匹配发现的objects的覆盖过滤器条件集合。
eval_formula string (只读) 用于评估覆盖过滤器条件的生成表达式。该表达式包含通过formulaid引用特定覆盖过滤器条件的ID。对于具有自定义表达式的过滤器,eval_formula的值等于formula的值。
formula string 用于评估具有自定义表达式的覆盖过滤器条件的用户定义表达式。该表达式必须包含通过formulaid引用特定覆盖过滤器条件的ID。表达式中使用的ID必须与覆盖过滤器条件中定义的ID完全匹配:不能有任何条件未被使用或遗漏。

自定义表达式覆盖过滤器必需。

LLD 规则覆盖过滤条件

LLD规则覆盖过滤器条件object定义了对LLD宏值执行的独立检查。它具有以下属性:

属性 数据类型 描述
macro
(required)
string 要执行检查的LLD宏。
value
(required)
string 用于比较的值。
formulaid string 用于从自定义表达式中引用该条件的任意唯一ID。只能包含大写字母。修改过滤条件时必须由用户定义该ID,但在后续请求时会重新生成。
operator integer 条件运算符。

可能的值:
8 - (默认) 匹配正则表达式;
9 - 不匹配正则表达式;
12 - 存在;
13 - 不存在。

LLD 规则覆盖操作

LLD规则覆盖操作是条件与动作的组合,用于对原型object执行操作。它具有以下属性:

属性 数据类型 描述
operationobject
(required)
integer 要执行操作的发现object类型。

可能的值:
0 - 监控项原型;
1 - 触发器原型;
2 - 图形原型;
3 - 主机原型。
operator integer 覆盖条件运算符。

可能的值:
0 - (默认) 等于;
1 - 不等于;
2 - 包含;
3 - 不包含;
8 - 匹配;
9 - 不匹配。
value string 根据所选object类型匹配监控项、触发器、图形或主机原型名称的模式。
opstatus object 针对监控项、触发器和主机原型objects的覆盖操作状态object。
opdiscover object 覆盖操作发现状态object(所有object类型)。
opperiod object 针对监控项原型object的覆盖操作周期(更新间隔)object。
ophistory object 针对监控项原型object的覆盖操作历史object。
optrends object 针对监控项原型object的覆盖操作趋势object。
opseverity object 针对触发器原型object的覆盖操作严重性object。
optag array 针对触发器和主机原型objects的覆盖操作标签object。
optemplate array 针对主机原型object的覆盖操作模板object。
opinventory object 针对主机原型object的覆盖操作资产清单object。
LLD 规则覆盖操作状态

设置为已发现的object的LLD规则覆盖操作状态。它具有以下属性:

属性 数据类型 描述
status
(required)
integer 为选定的object覆盖状态。

可选值:
0 - 创建启用;
1 - 创建禁用。
LLD 规则覆盖操作发现

LLD规则覆盖操作发现状态设置为已发现object。它具有以下属性:

属性 数据类型 描述
discover
(required)
integer 覆盖选定object的发现状态。

可选值:
0 - 是,继续发现objects;
1 - 否,新objects将不会被发现,现有项将被标记为丢失。
LLD 规则覆盖操作周期

LLD规则覆盖操作周期是为发现的监控项设置的更新间隔值(支持自定义间隔)。它具有以下特性:

属性 数据类型 说明
delay
(required)
string 覆盖监控项原型的更新间隔。接受秒数或带后缀的时间单位(30s、1m、2h、1d),以及灵活调度间隔和用户宏或LLD宏。多个间隔用分号分隔。
LLD 规则覆盖操作历史

LLD规则覆盖操作历史值,该值设置为已发现的监控项。它具有以下属性:

属性 数据类型 描述
history
(required)
string 覆盖监控项原型的历史记录,该值表示历史数据应存储的时间单位。同时支持用户宏和LLD宏。
LLD 规则覆盖操作趋势

LLD规则覆盖操作将趋势值设置为已发现的监控项。 它具有以下属性:

属性 数据类型 描述
trends
(required)
string 覆盖监控项原型的趋势数据存储时长(时间单位)。同时支持用户宏和LLD宏。
LLD 规则覆盖操作严重性

LLD规则覆盖操作中设置给被发现触发器的严重性值。它具有以下属性:

属性 数据类型 描述
severity
(required)
integer 覆盖触发器原型的严重性级别。

可选值为:0 - (默认) 未分类;
1 - 信息;
2 - 警告;
3 - 一般;
4 - 严重;
5 - 灾难。
LLD 规则覆盖操作标签

LLD规则覆盖操作标签object包含为发现项object设置的标签名称和值。它具有以下属性:

属性 数据类型 描述
tag
(required)
string 新标签名称。
value string 新标签值。
LLD 规则覆盖操作模板

LLD规则覆盖操作模板object,该模板链接到已发现的主机。它具有以下属性:

属性 数据类型 描述
templateid
(required)
string 覆盖主机原型链接模板的模板。
LLD 规则覆盖操作清单

LLD规则覆盖操作中设置的发现主机的资产清单模式值。它具有以下属性:

属性 数据类型 描述
inventory_mode
(required)
integer 覆盖主机原型的资产清单模式。

可选值为:
-1 - 禁用;
0 - (默认) 手动;
1 - 自动。