LLD规则 object

以下objects与discoveryrule API直接相关.

LLD规则

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

属性 数据类型 描述
itemid ID LLD规则的ID.

属性行为:
- 只读
- 必需用于update操作
delay string LLD规则的更新间隔.

接受秒数或带后缀的时间单位(例如30s, 1m, 2h, 1d), 并可选择性地包含一个或多个custom intervals, 各部分用分号分隔. 自定义间隔可以是灵活间隔和调度间隔的混合.

接受用户宏. 如果使用宏, 值必须是单个宏. 不支持多个宏或宏与文本混合使用. 灵活间隔可以写成用斜杠分隔的两个宏(例如{$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 agent"(12), "SSH agent"(13), "TELNET agent"(14), "JMX agent"(16), "HTTP agent"(19), "SNMP agent"(20), "脚本"(21), "浏览器"(22)时, 或当type设置为"Zabbix agent(主动)"(7)且key_不包含"mqtt.get"时, 该字段为必填项
hostid ID LLD规则所属的主机 ID。

属性行为:
- 常量
- 进行create操作时的必填项
interfaceid ID LLD规则所属主机接口的ID.

属性行为:
- 必填 当LLD规则属于主机且type设置为"Zabbix agent"、"IPMI agent"、"JMX agent"或"SNMP agent"时
- 支持 当LLD规则属于主机且type设置为"Simple check"、"External check"、"SSH agent"、"TELNET agent"或"HTTP agent"时
key_ string LLD规则键.

属性行为:
- 对create操作必填
- 对继承的objects只读
name string LLD规则名称.

属性行为:
- 对于create操作是必填项
- 对于继承的objects是只读属性
type integer LLD规则类型.

可能的值:
0 - Zabbix agent;
2 - Zabbix trapper;
3 - Simple check;
5 - Zabbix internal;
7 - Zabbix agent (active);
10 - External check;
11 - Database monitor;
12 - IPMI agent;
13 - SSH agent;
14 - TELNET agent;
16 - JMX agent;
18 - Dependent 监控项;
19 - HTTP agent;
20 - SNMP agent;
21 - Script;
22 - Browser;
23 - Nested1.

属性行为:
- required 用于 create 操作
- read-only 用于继承的 objects
url string URL string.
支持用户宏, {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {HOST.PORT}, {ITEM.ID}, {ITEM.KEY}.

属性行为:
- 必填type 设置为 "HTTP agent" 时
- 只读 对于继承的 objects
allow_traps integer 允许以类似trapper 监控项的方式填充值.

可选值:
0 - (默认) 不允许接收传入数据;
1 - 允许接收传入数据.

属性行为:
- 支持type设置为"HTTP agent"时
authtype integer 认证方法.

type设置为"SSH agent"时的可能取值:
0 - (默认) 密码;
1 - 公钥.

type设置为"HTTP agent"时的可能取值:
0 - (默认) 无;
1 - 基础认证;
2 - NTLM.

属性行为:
- 支持type设置为"SSH agent"或"HTTP agent"时
- 只读 对于继承的objects (当type设置为"HTTP agent"时)
description string LLD规则的描述。
error string 更新LLD规则值时出现问题的错误文本.

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

可选值:
0 - 不跟随重定向;
1 - (默认) 跟随重定向.

属性行为:
- 支持type 设置为"HTTP agent"时
- 只读 对于继承的 objects
headers array 执行HTTP请求时将发送的headers的array.

属性行为:
- 当type设置为"HTTP agent"时支持
- 对于继承的objects为只读
http_proxy string HTTP(S) proxy 连接 string.

属性行为:
- 支持type 设置为 "HTTP agent" 时
- 只读 对于继承的 objects
ipmi_sensor string IPMI传感器。

属性行为:
- 必填type设置为"IPMI agent"且key_未设置为"ipmi.get"时
- 支持type设置为"IPMI agent"时
- 只读 对于继承的objects
jmx_endpoint string JMX agent 自定义连接 string.

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

属性行为:
- 支持type 设置为 "JMX agent" 时
lifetime string 未再被发现的监控项将被删除的时间周期。支持秒数、带后缀的时间单位或用户宏。

默认值: 7d.
lifetime_type integer 丢失LLD资源时的delete场景.

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

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

可选值:
0 - 达到生命周期阈值后禁用;
1 - 不禁用;
2 - (默认) 立即禁用.
master_itemid ID 主监控项的ID.
发现规则不能作为另一个发现规则的主监控项.

属性行为:
- 当type设置为"依赖监控项"时 必填
- 对于继承的objects 只读
output_format integer 响应是否应转换为JSON.

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

属性行为:
- 支持type 设置为"HTTP agent"时
- 只读 对于继承的 objects
params string 根据LLD规则类型的附加参数:
- 针对SSH和Telnet LLD规则执行的脚本;
- 数据库监控LLD规则的SQL query;
- 计算型LLD规则的公式;
- 脚本和浏览器LLD规则的脚本.

属性行为:
- 当type设置为"Database monitor"(数据库监控)、"SSH agent"、"TELNET agent"、"Script"(脚本)或"Browser"(浏览器)时为必填项
- 对于继承的objects为只读(当type设置为"Script"或"Browser"时)
parameters object/array type设置为"Script"或"Browser"时的附加参数.
包含namevalue属性的objects的array, 其中name必须唯一.

属性行为:
- 当type设置为"Script"或"Browser"时支持
- 对于继承的objects为只读
password string 认证密码.

属性行为:
- 必填type 设置为"JMX agent"且 username 已设置时
- 支持type 设置为"简单检查"、"数据库监控"、"SSH agent"、"TELNET agent"或"HTTP agent"时
- 只读 对于继承的objects (当 type 设置为"HTTP agent"时)
post_type integer 存储在posts属性中的POST数据体类型.

可选值:
0 - (默认) 原始数据;
2 - JSON数据;
3 - XML数据.

属性行为:
- 支持type设置为"HTTP agent"时
- 只读 对于继承的objects
posts string HTTP(S)请求正文数据.

属性行为:
- 必填type设置为"HTTP agent"且post_type设置为"JSON数据"或"XML数据"时
- 支持type设置为"HTTP agent"且post_type设置为"原始数据"时
- 只读 对于继承的objects
privatekey string 私钥名称 file.

属性行为:
- 必填type 设为 "SSH agent" 且 authtype 设为 "公钥" 时
publickey string 公钥名称 file.

属性行为:
- 必填type 设为"SSH agent" 且 authtype 设为"public key"时
query_fields array 执行HTTP请求时将发送的query字段的array.

属性行为:
- 当type设置为"HTTP agent"时支持
- 对于继承的objects为只读
request_method integer 请求方法类型.

可选值:
0 - (默认) GET;
1 - POST;
2 - PUT;
3 - HEAD.

属性行为:
- 支持type 设置为"HTTP agent"时
- 只读 对于继承的 objects
retrieve_mode integer 应存储响应的哪部分内容.

request_method设置为"GET"、"POST"或"PUT"时的可选值:
0 - (默认) 正文;
1 - 头部;
2 - 同时存储正文和头部.

request_method设置为"HEAD"时的可选值:
1 - 头部.

属性行为:
- 当type设置为"HTTP agent"时支持
- 对于继承的objects为只读
snmp_oid string SNMP OID.

属性行为:
- required 如果 type 设置为 "SNMP agent"
- read-only 对于继承的 objects
ssl_cert_file string 公钥SSL证书file路径.

属性行为:
- 支持type设置为"HTTP agent"时
- 只读 对于继承的objects
ssl_key_file string 私有SSL密钥file路径.

属性行为:
- 支持type设置为"HTTP agent"时
- 只读 对于继承的objects
ssl_key_password string SSL密钥密码 file.

属性行为:
- 支持type 设置为 "HTTP agent" 时
- 只读 对于继承的 objects
state integer LLD规则状态.

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

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

可选值:
0 - (默认) 启用的LLD规则;
1 - 禁用的LLD规则.
status_codes string 以逗号分隔的所需HTTP状态码范围。支持在逗号分隔列表中使用用户宏。

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

属性行为:
- 当type设置为"HTTP agent"时支持
- 对于继承的objects为只读
templateid ID 父模板LLD规则的ID.

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

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

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

属性行为:
- 支持type 设置为 "Zabbix agent" (0)、"Simple check" (3) 且 key_ 不以 "vmware." 和 "icmpping" 开头,"Zabbix agent (active)" (7)、"External check" (10)、"Database monitor" (11)、"SSH agent" (13)、"TELNET agent" (14)、"HTTP agent" (19)、"SNMP agent" (20) 且 snmp_oid 以 "walk[" 或 "get[" 开头,"Script" (21)、"Browser" (22)
- 只读 用于继承的 objects
trapper_hosts string 允许的 主机.

属性行为:
- 支持type 设置为 "Zabbix trapper" 时,或当 type 设置为 "HTTP agent" 且 allow_traps 设置为 "允许接收传入数据" 时
username string 认证用户名.

属性行为:
- 必填type 设置为"SSH agent"、"TELNET agent",或 type 设置为"JMX agent" 且 password 已设置时
- 支持type 设置为"Simple check"、"Database monitor"或"HTTP agent"时
- 只读 对于继承的 objects (当 type 设置为"HTTP agent"时)
uuid string 通用唯一标识符,用于将导入的低级发现规则与已存在的规则关联。若未提供则自动生成。

属性行为:
- 支持 当低级发现规则属于模板时
verify_host integer 是否验证连接中的主机名称与主机证书中的名称匹配.

可选值:
0 - (默认) 不验证;
1 - 验证.

属性行为:
- 支持type设置为"HTTP agent"时
- 只读 对于继承的objects
verify_peer integer 是否验证主机证书的真实性.

可选值:
0 - (默认) 不验证;
1 - 验证.

属性行为:
- 支持type设置为"HTTP agent"时
- 只读 对于继承的objects

1 仅当规则的父级是模板(假定已关联到发现时的一个主机原型)或已发现的主机(其根目录包含LLD规则)时才允许

HTTP请求头

该头部 object 具有以下属性:

属性 数据类型 描述
name string HTTP头部名称.

属性行为:
- 必填
value string 头部值.

属性行为:
- 必填

HTTP查询字段

query字段object用于定义指定URL参数的名称和值。 它具有以下属性:

属性 数据类型 描述
name string 参数名称。

属性行为:
- 必填
value string 参数值。

属性行为:
- 必填

LLD 规则过滤器

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

属性 数据类型 描述
conditions object/array 用于筛选结果的过滤条件集合. 条件将按其公式中的排列顺序进行排序.

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

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

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

属性行为:
- 只读
formula string 用于评估自定义表达式过滤器条件的用户定义表达式. 该表达式必须包含通过formulaid引用特定过滤条件的ID. 表达式中使用的ID必须与过滤条件中定义的完全匹配: 不能有任何条件未被使用或遗漏.

属性行为:
- 当evaltype设置为"自定义表达式"时必填

LLD 规则过滤条件

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

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

属性行为:
- 必填
value string 用于比较的值。

属性行为:
- 当operator设为"匹配正则表达式"或"不匹配正则表达式"时必填
formulaid string 用于在自定义表达式中引用该条件的唯一ID。只能包含大写字母。修改过滤条件时必须由用户定义该ID,但在后续请求时会重新生成。

属性行为:
- 当LLD规则过滤objectevaltype设为"自定义表达式"时必填
operator integer 条件运算符。

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

要更好地理解如何将过滤器与各类表达式配合使用,请参阅 discoveryrule.getdiscoveryrule.create方法页面的示例。

LLD 宏路径

LLD宏路径具有以下属性:

属性 数据类型 描述
lld_macro string LLD宏.

属性行为:
- 必填
path string 用于选择将分配给对应宏的值的选择器.

属性行为:
- 必填

LLD 规则预处理

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

属性 数据类型 描述
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 get值。

属性行为
- 必填
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 get值”(30),则必填
error_handler integer 预处理步骤失败时使用的操作类型。

可能的值:
0 - 错误消息由Zabbix server设置;
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 get值”(30),则必填
error_handler_params string 错误处理程序参数。

属性行为
- 如果error_handler设置为“设置自定义值”或“设置自定义错误消息”,则必填

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

预处理类型 名称 参数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
14 Matches regular expression pattern1 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
28 SNMP walk value OID2 Format:
0 - Unchanged
1 - UTF-8 from Hex-STRING
2 - MAC from Hex-STRING
3 - Integer from BITS
0, 1, 2, 3
29 SNMP walk to JSON7 Field name2 OID prefix2 Format:
0 - Unchanged
1 - UTF-8 from Hex-STRING
2 - MAC from Hex-STRING
3 - Integer from BITS
0, 1, 2, 3
30 SNMP get value Format:
1 - UTF-8 from Hex-STRING
2 - MAC from Hex-STRING
3 - Integer from BITS
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规则覆盖object定义了一组规则(过滤器、 条件与操作),用于覆盖不同原型objects的属性。它具有以下特性:

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

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

属性行为:
- 必填
stop integer 匹配时停止处理后续覆盖。

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

LLD 规则覆盖过滤器

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

属性 数据类型 描述
conditions object/array 用于匹配发现的objects的覆盖过滤器条件集合。条件将按其公式中的放置顺序进行排序。

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

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

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

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

属性行为:
- 必填 如果evaltype设置为"自定义表达式"
LLD规则覆盖过滤条件

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

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

属性行为:
- 必填
value string 用于比较的值。

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

属性行为:
- 当LLD规则覆盖过滤器objectevaltype设置为"自定义表达式"时必填
operator integer 条件运算符。

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

LLD 规则覆盖操作

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

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

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

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

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

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

属性 数据类型 描述
status integer 覆盖所选object的状态。

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

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

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

属性 数据类型 描述
discover integer 覆盖所选object的发现状态.

可选值:
0 - 是,继续发现objects;
1 - 否,新的objects将不会被发现,已存在的将被标记为丢失.

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

LLD规则覆盖操作周期是一个update间隔值,用于设置发现的监控项。 它具有以下属性:

属性 数据类型 描述
delay string 覆盖监控项原型的update间隔。

接受秒数或带后缀的时间单位(例如30s、1m、2h、1d),并可选择性地包含一个或多个custom intervals,所有值用分号分隔。自定义间隔可以是灵活间隔和调度间隔的混合。

接受用户宏或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规则覆盖操作标签object包含为发现项object设置的标签名称和值。它具有以下属性:

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

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

与已发现主机关联的LLD规则覆盖操作模板object. 它具有以下属性:

属性 数据类型 描述
templateid ID 覆盖主机原型关联模板的模板.

属性行为:
- 必填
LLD 规则覆盖操作清单

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

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

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

属性行为:
- 必填