LLD规则对象

以下对象与 自动发现规则 API 直接相关。

LLD规则

低级别自动发现(LLD)规则对象具有以下属性:

属性 类型 描述
itemid ID LLD规则的ID。

属性行为:
- 只读
- 更新操作时必需
delay string LLD规则的更新间隔。

接受秒或带后缀的时间单位(例如,30s, 1m, 2h, 1d)以及可选的一个或多个自定义间隔,所有这些都用分号分隔。自定义间隔可以是灵活间隔和计划间隔的混合。

接受用户宏。如果使用,值必须是单个宏。不支持多个宏或与文本混合的宏。灵活间隔可以写成两个宏,用正斜杠分隔(例如,{$FLEX_INTERVAL}/{$FLEX_PERIOD})。

示例:
1h;wd1-5h9-18;{$Macro1}/1-7,00:00-24:00;0/6-7,12:00-24:00;{$Macro2}/{$Macro3}

属性行为:
- 如果type设置为"Zabbix agent" (0), "简单检查" (3), "Zabbix 内部" (5), "外部检查" (10), "数据库监控" (11), "IPMI 客户端" (12), "SSH 客户端" (13), "TELNET 客户端" (14), "JMX agent代理程序" (16), "HTTP 代理" (19), "SNMP 代理" (20), "脚本" (21), "Browser" (22),或者如果type设置为"Zabbix agent (主动式)" (7)且key_不包含"mqtt.get",则为必需
hostid ID LLD规则所属的主机ID。

属性行为:
- 常量
- 创建操作时必需
interfaceid ID LLD规则的主机接口ID。

属性行为:
- 如果LLD规则属于主机且type设置为"Zabbix agent", "IPMI 客户端", "JMX agent代理程序", 或 "SNMP 代理",则为必需
- 如果LLD规则属于主机且type设置为"简单检查", "外部检查", "SSH 客户端", "TELNET 客户端", 或 "HTTP 代理",则为支持
key_ string LLD规则键。

属性行为:
- 创建操作时必需
- 继承对象时只读
name string LLD规则的名称。

属性行为:
- 创建操作时必需
- 继承对象时只读
type integer LLD规则的类型。

可能的值:
0 - Zabbix agent;
2 - Zabbix trapper;
3 - 简单检查;
5 - Zabbix 内部;
7 - Zabbix agent (主动式);
10 - 外部检查;
11 - 数据库监控;
12 - IPMI 客户端;
13 - SSH 客户端;
14 - TELNET 客户端;
16 - JMX agent代理程序;
18 - 依赖项;
19 - HTTP 代理;
20 - SNMP 代理;
21 - 脚本;
22 - Browser。

属性行为:
- 创建操作时必需
- 继承对象时只读
url string URLstring。
支持用户宏、{HOST.IP}、{HOST.CONN}、{HOST.DNS}、{HOST.HOST}、{HOST.NAME}、{ITEM.ID}、{ITEM.KEY}。

属性行为:
- 如果type设置为"HTTP 代理",则为必需
- 继承对象时只读
allow_traps integer 允许以与trapper项类似的方式填充值。

可能的值:
0 - (默认) 不允许接受传入数据;
1 - 允许接受传入数据。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
authtype integer 认证方法。

如果type设置为"SSH 客户端":
0 - (默认) 密码;
1 - 公钥。

如果type设置为"HTTP 代理":
0 - (默认) 无;
1 - 基本;
2 - NTLM。

属性行为:
- 如果type设置为"SSH 客户端"或"HTTP 代理",则为支持
- 如果type设置为"HTTP 代理",继承对象时只读
description string LLD规则的描述。
error string 如果更新LLD规则值时存在问题,则错误文本。

属性行为:
- 只读
follow_redirects integer 在轮询数据时跟随响应重定向。

可能的值:
0 - 不跟随重定向;
1 - (默认) 跟随重定向。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
headers array 执行HTTP请求时将发送的headers数组。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
http_proxy string HTTP(S)代理连接string。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
ipmi_sensor string IPMI传感器。

属性行为:
- 如果type设置为"IPMI 客户端"且key_未设置为"ipmi.get",则为必需
- 如果type设置为"IPMI 客户端",则为支持
- 继承对象时只读
jmx_endpoint string JMX代理自定义连接string。

默认值:service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi

属性行为:
- 如果type设置为"JMX agent代理程序",则为支持
lifetime string 不再发现的项目将被删除的时间周期。接受秒、带后缀的时间单位或用户宏。

默认值:7d
lifetime_type integer 删除丢失LLD资源的场景。

可能的值:
0 - (默认) 达到生命周期阈值后删除;
1 - 不删除;
2 - 立即删除。
enabled_lifetime string 不再发现的项目将被禁用的时间周期。接受秒、带后缀的时间单位或用户宏。

默认值:0
enabled_lifetime_type integer 禁用丢失LLD资源的场景。

可能的值:
0 - 达到生命周期阈值后禁用;
1 - 不禁用;
2 - (默认) 立即禁用。
master_itemid ID 主项的ID。
允许最多3个依赖项,依赖项的最大数量等于999。
发现规则不能成为另一个发现规则的主项。

属性行为:
- 如果type设置为"依赖监控项",则为必需
- 继承对象时只读
output_format integer 响应是否应转换为JSON。

可能的值:
0 - (默认) 存储原始数据;
1 - 转换为JSON。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
params string 根据LLD规则的类型,附加参数:
- 对于SSH和Telnet LLD规则,执行的脚本;
- 对于数据库监控LLD规则,SQL查询;
- 对于计算LLD规则,公式;
- 对于脚本和BrowserLLD规则,脚本。

属性行为:
- 如果type设置为"数据库监控", "SSH 客户端", "TELNET 客户端", "脚本" 或 "Browser",则为必需
- 如果type设置为"脚本" 或 "Browser",继承对象时只读
parameters object/array 如果type设置为"脚本" 或 "Browser",则附加参数。
具有namevalue属性的对象数组,其中name必须是唯一的。

属性行为:
- 如果type设置为"脚本" 或 "Browser",则为支持
- 继承对象时只读
password string 认证密码。

属性行为:
- 如果type设置为"JMX agent代理程序"且设置了username,则为必需
- 如果type设置为"简单检查", "数据库监控", "SSH 客户端", "TELNET 客户端", 或 "HTTP 代理",则为支持
- 如果type设置为"HTTP 代理",继承对象时只读
post_type integer 存储在posts属性中的post数据正文的类型。

可能的值:
0 - (默认) 原始数据;
2 - JSON数据;
3 - XML数据。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
posts string HTTP(S)请求正文数据。

属性行为:
- 如果type设置为"HTTP 代理"且post_type设置为"JSON data" 或 "XML data",则为必需
- 如果type设置为"HTTP 代理"且post_type设置为"Raw data",则为支持
- 继承对象时只读
privatekey string 私钥文件的名称。

属性行为:
- 如果type设置为"SSH 客户端"且authtype设置为"public key",则为必需
publickey string 公钥文件的名称。

属性行为:
- 如果type设置为"SSH 客户端"且authtype设置为"public key",则为必需
query_fields array 执行HTTP请求时将发送的query fields数组。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
request_method integer 请求方法的类型。

可能的值:
0 - (默认) GET;
1 - POST;
2 - PUT;
3 - HEAD。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
retrieve_mode integer 应存储响应的哪一部分。

如果request_method设置为"GET", "POST", 或 "PUT":
0 - (默认) 正文;
1 - 头部;
2 - 正文和头部都将被存储。

如果request_method设置为"HEAD":
1 - 头部。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
snmp_oid string SNMP OID。

属性行为:
- 如果type设置为"SNMP 代理",则为必需
- 继承对象时只读
ssl_cert_file string 公共SSL密钥文件路径。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
ssl_key_file string 私有SSL密钥文件路径。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
ssl_key_password string SSL密钥文件的密码。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
state integer LLD规则的状态。

可能的值:
0 - (默认) 正常;
1 - 不支持。

属性行为:
- 只读
status integer LLD规则的状态。

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

示例:200,200-{$M},{$M},200-400

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
templateid ID 父模板LLD规则的ID。

属性行为:
- 只读
timeout string 监控项数据轮询请求超时。
接受秒或带后缀的时间单位(例如,30s, 1m)。
也接受用户宏。

可能的值范围:1-600s。

默认值:"" - 使用代理/全局设置。

属性行为:
- 如果type设置为"Zabbix agent" (0), "简单检查" (3) 且 key_ 不以 "vmware." 和 "icmpping" 开头,"Zabbix agent (主动式)" (7), "外部检查" (10), "数据库监控" (11), "SSH 客户端" (13), "TELNET 客户端" (14), "HTTP 代理" (19), "SNMP 代理" (20) 且 snmp_oid 以 "walk[" 或 "get[" 开头,"脚本" (21), "Browser" (22),则为支持
- 继承对象时只读
trapper_hosts string 允许的主机。

属性行为:
- 如果type设置为"Zabbix trapper",或者如果type设置为"HTTP 代理"且allow_traps设置为"允许接受传入数据",则为支持
username string 认证用户名。

属性行为:
- 如果type设置为"SSH 客户端", "TELNET 客户端",或者如果type设置为"JMX agent代理程序"且设置了password,则为必需
- 如果type设置为"简单检查", "数据库监控",或 "HTTP 代理",则为支持
- 如果type设置为"HTTP 代理",继承对象时只读
uuid string 通用唯一标识符,用于将导入的LLD规则链接到已存在的规则。如果没有给出,则自动生成。

属性行为:
- 如果LLD规则属于模板,则为支持
verify_host integer 是否验证连接的主机名是否与主机证书中的名称匹配。

可能的值:
0 - (默认) 不验证;
1 - 验证。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读
verify_peer integer 是否验证主机的证书是否有效。

可能的值:
0 - (默认) 不验证;
1 - 验证。

属性行为:
- 如果type设置为"HTTP 代理",则为支持
- 继承对象时只读

HTTP 头部

头部对象具有以下属性:

属性 类型 描述
name string HTTP头部名称。

属性行为:
- 必需
value string 头部值。

属性行为:
- 必需

HTTP查询字段

查询字段对象定义了一个名称和值,用于指定URL参数。 它具有以下属性:

属性 类型 描述
name 字符串 参数的名称。

属性行为:
- 必需
value 字符串 参数值。

属性行为:
- 必需

LLD规则过滤器

LLD规则过滤器对象定义了一组条件,这些条件可用于过滤发现的对象。它具有以下属性:

属性 类型 描述
conditions object/array 用于过滤结果的过滤器条件集合。条件将按照它们在公式中的顺序进行排序。

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

可能的值:
0 - 与/或;
1 - 与;
2 - 或;
3 - 自定义表达式。

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

属性行为:
- 只读
formula string 用户定义的表达式,用于评估具有自定义表达式的过滤器的条件。表达式必须包含ID,这些ID通过其formulaid引用特定的过滤条件。在表达式中使用的ID必须与过滤条件中定义的完全匹配:不能有未使用或省略的条件。

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

LLD规则过滤条件

LLD规则过滤条件对象定义了要对LLD宏的值执行的单独检查。它具有以下属性:

属性 类型 描述
macro string 要执行检查的LLD宏。

属性行为:
- 必需
value string 要比较的值。

属性行为:
- 如果operator设置为"匹配正则表达式"或"不匹配正则表达式",则为必需
formulaid string 用于从自定义表达式引用条件的任意唯一ID。只能包含大写字母。当修改过滤条件时,用户必须定义此ID,但在之后请求它们时将重新生成。

属性行为:
- 如果LLD规则过滤器对象evaltype设置为"自定义表达式",则为必需
operator integer 条件运算符。

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

要更好地理解如何使用不同类型的表达式进行过滤,请参阅discoveryrule.getdiscoveryrule.create方法页面上的示例。

LLD宏路径

LLD宏路径具有以下属性:

属性 类型 描述
lld_macro string LLD宏。

属性行为:
- 必需
path string 选择器将值分配给相应宏。

属性行为:
- 必需

LLD规则预处理

LLD规则预处理对象具有以下属性:

属性 类型 描述
type integer 预处理选项类型。

可能的值:
5 - 正则表达式;
11 - XML XPath;
12 - JSONPath;
14 - 匹配正则表达式;
15 - 不匹配正则表达式;
16 - 检查JSON中的错误;
17 - 检查XML中的错误;
20 - 丢弃未变化的带心跳;
21 - JavaScript;
23 - Prometheus转JSON;
24 - CSV转JSON;
25 - 替换;
27 - XML转JSON;
28 - SNMP walk值;
29 - SNMP walk转JSON;
30 - SNMP获取值。

属性行为:
- 必需
params string 预处理选项使用的附加参数。多个参数用换行符(\n)分隔。

属性行为:
- 如果type设置为"正则表达式" (5), "XML XPath" (11), "JSONPath" (12), "匹配正则表达式" (14), "不匹配正则表达式" (15), "检查JSON中的错误" (16), "检查XML中的错误" (17), "丢弃未变化的带心跳" (20), "JavaScript" (21), "Prometheus转JSON" (23), "CSV转JSON" (24), "替换" (25), "SNMP walk值" (28), "SNMP walk转JSON" (29), 或 "SNMP获取值" (30),则为必需
error_handler integer 预处理步骤失败时使用的操作类型。

可能的值:
0 - 错误消息由Zabbix服务器设置;
1 - 丢弃值;
2 - 设置自定义值;
3 - 设置自定义错误消息。

属性行为:
- 如果type设置为"正则表达式" (5), "XML XPath" (11), "JSONPath" (12), "匹配正则表达式" (14), "不匹配正则表达式" (15), "检查JSON中的错误" (16), "检查XML中的错误" (17), "Prometheus转JSON" (23), "CSV转JSON" (24), "XML转JSON" (27), "SNMP walk值" (28), "SNMP walk转JSON" (29), 或 "SNMP获取值" (30),则为必需
error_handler_params string 错误处理程序参数。

属性行为:
- 如果error_handler设置为"设置自定义值" 或 "设置自定义错误消息",则为必需

以下是每种预处理类型支持的参数和错误处理程序:

预处理类型 名称 参数1 参数2 参数3 支持的错误处理程序
5 正则表达式 模式1 输出2 0, 1, 2, 3
11 XML XPath 路径3 0, 1, 2, 3
12 JSONPath 路径3 0, 1, 2, 3
14 匹配正则表达式 模式1 0, 1, 2, 3
15 不匹配正则表达式 模式1 0, 1, 2, 3
16 检查JSON中的错误 路径3 0, 1, 2, 3
17 检查XML中的错误 路径3 0, 1, 2, 3
20 丢弃未变化的带心跳 4, 5
21 JavaScript 脚本2
23 Prometheus转JSON 模式5, 6 0, 1, 2, 3
24 CSV转JSON 字符2 字符2 0,1 0, 1, 2, 3
25 替换 搜索string2 替换2
27 XML转JSON 0, 1, 2, 3
28 SNMP walk值 OID2 格式:
0 - 不变
1 - 从十六进制STRING转UTF-8
2 - 从十六进制STRING转MAC
3 - 从位字段转integer
0, 1, 2, 3
29 SNMP walk转JSON7 字段名称2 OID前缀2 格式:
0 - 不变
1 - 从十六进制STRING转UTF-8
2 - 从十六进制STRING转MAC
3 - 从位字段转integer
0, 1, 2, 3
30 SNMP获取值 格式:
1 - 从十六进制STRING转UTF-8
2 - 从十六进制STRING转MAC
3 - 从位字段转integer
0, 1, 2, 3

1 正则表达式
2 string
3 JSONPath或XML XPath
4 正integer(支持时间后缀,例如30s, 1m, 2h, 1d)
5 用户宏
6 Prometheus模式,遵循语法: <metric name>{<label name>="<label value>", ...} == <value>。每个Prometheus模式组件(度量、标签名称、标签值和度量值)都可以是用户宏。
7 支持由新行字符分隔的多个"字段名称,OID前缀,格式记录"。

LLD规则覆盖

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

属性 类型 描述
name string 唯一的覆盖名称。

属性行为:
- 必需
step integer 覆盖的唯一顺序号。

属性行为:
- 必需
stop integer 如果匹配,则停止处理下一个覆盖。

可能的值:
0 - (默认) 不停止处理覆盖;
1 - 如果过滤器匹配,则停止处理覆盖。
filter object 覆盖过滤器。
operations object/array 覆盖操作。

LLD规则覆盖过滤器

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

属性 类型 描述
conditions object/array 用于匹配发现对象的覆盖过滤器条件集合。条件将按照它们在公式中的顺序进行排序。

属性行为:
- 必需
evaltype integer 覆盖过滤器条件评估方法。

可能的值:
0 - 与/或;
1 - 与;
2 - 或;
3 - 自定义表达式。

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

属性行为:
- 只读
formula string 用户定义的表达式,用于评估具有自定义表达式的覆盖过滤器的条件。表达式必须包含ID,这些ID通过其formulaid引用特定的覆盖过滤器条件。在表达式中使用的ID必须与覆盖过滤器条件中定义的完全匹配:不能有未使用或省略的条件。

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

LLD规则覆盖过滤条件

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

属性 类型 描述
macro string 要执行检查的LLD宏。

属性行为:
- 必需
value string 要比较的值。

属性行为:
- 如果operator设置为"匹配正则表达式"或"不匹配正则表达式",则为必需
formulaid string 用于从自定义表达式引用条件的任意唯一ID。只能包含大写字母。当修改过滤条件时,用户必须定义此ID,但在之后请求它们时将重新生成。

属性行为:
- 如果LLD规则覆盖过滤器对象evaltype设置为"自定义表达式",则为必需
operator integer 条件运算符。

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

LLD规则覆盖操作

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

属性 类型 描述
operationobject integer 执行动作的发现对象类型。

可能的值:
0 - 监控项原型;
1 - 触发器原型;
2 - 图表原型;
3 - 主机原型。

属性行为:
- 必需
operator integer 覆盖条件运算符。

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

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

属性 类型 描述
status 整数 覆盖所选对象的状态。

可能的值:
0 - 创建时启用;
1 - 创建时禁用。

属性行为:
- 必需
LLD规则覆盖操作发现状态

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

属性 类型 描述
discover integer 覆盖所选对象的发现状态。

可能的值:
0 - 是,继续发现对象;
1 - 否,将不发现新对象,并将现有对象标记为丢失。

属性行为:
- 必需
LLD规则覆盖操作周期

LLD规则覆盖操作周期是设置到被发现监控项的更新间隔值。 它具有以下属性:

属性 类型 描述
delay string 覆盖监控项原型的更新间隔。

接受秒或带后缀的时间单位(例如,30s, 1m, 2h, 1d),并且可以可选地接受一个或多个自定义间隔,所有这些都用分号分隔。自定义间隔可以是灵活间隔和计划间隔的混合。

接受用户宏或LLD宏。如果使用,值必须是单个宏。不支持多个宏或与文本混合的宏。灵活间隔可以写成两个宏,用正斜杠分隔(例如,{$FLEX_INTERVAL}/{$FLEX_PERIOD})。

示例:
1h;wd1-5h9-18;{$Macro1}/1-7,00:00-24:00;0/6-7,12:00-24:00;{$Macro2}/{$Macro3}

属性行为:
- 必需
LLD规则覆盖操作历史

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

属性 类型 描述
history string 覆盖监控项原型的历史记录,这是一个时间单位,表示历史数据应该被存储多久。也接受用户宏和LLD宏。

属性行为:
- 必需
LLD规则覆盖操作趋势

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

属性 类型 描述
trends string 覆盖监控项原型的趋势,这是一个时间单位,表示趋势数据应该被存储多久。也接受用户宏和LLD宏。

属性行为:
- 必需
LLD规则覆盖操作严重性

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

属性 类型 描述
severity integer 覆盖触发器原型的严重性。

可能的值:
0 - (默认) 未分类;
1 - 信息;
2 - 警告;
3 - 一般;
4 - 高;
5 - 灾难。

属性行为:
- 必需
LLD规则覆盖操作标签

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

属性 类型 描述
tag string 新的标签名称。

属性行为:
- 必需
value string 新的标签值。
LLD规则覆盖操作模板

与被发现主机相关联的LLD规则覆盖操作模板对象。它具有以下属性:

属性 类型 描述
templateid ID 覆盖主机原型链接模板的模板。

属性行为:
- 必需
LLD规则覆盖操作库存

设置为被发现主机的LLD规则覆盖操作库存模式值。它具有以下属性:

属性 类型 描述
inventory_mode integer 覆盖主机原型的库存模式。

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

属性行为:
- 必需