[comment]: # translation:outdated

[comment]: # ({c5a9e121-c5a9e121})
# > LLD规则对象

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

[comment]: # ({/c5a9e121-c5a9e121})

[comment]: # ({085f5f4d-c17fa830})
### LLD规则

底层发现规则对象具有以下属性。

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|itemid|字符|*（只读）* LLD规则ID。|
|**delay**<br>（必需）|字符|LLD 规则的更新间隔。接受带后缀的秒或时间单位，可以带或不带一个或多个 [自定义间隔](/manual/config/items/item/custom_intervals)，它们由灵活间隔和调度间隔组成，作为序列化字符串。还接收用户宏。灵活的间隔可以写成两个由正斜杠分隔的宏。间隔由分号分隔。<br><br>对于 Zabbix trapper、依赖项和带有 `mqtt.get` 键值的 Zabbix agent (active) 是可选的。|
|**hostid**<br>（必需）|字符|LLD规则的主机ID。|
|**interfaceid**<br>（必需）|字符|LLD规则的主机接口ID，只用于主机LLD规则。<br><br>Zabbix agent (主动检查)， Zabbix 内部检查， Zabbix 采集器，相关项，数据库监控和脚本LLD规则不需要。HTTP代理LLD规则可选。|
|**key\_**<br>（必需）|字符|LLD规则键值。|
|**name**<br>（必需）|字符|LLD规则名称。|
|**type**<br>（必需）|字符|LLD规则类型。<br><br>可用值：<br>0 - Zabbix agent；<br>2 - Zabbix 采集器；<br>3 - 简单检查；<br>5 - Zabbix 内部检查；<br>7 - Zabbix agent (主动)；<br>10 - 外部检查；<br>11 - 数据库监控；<br>12 - IPMI agent；<br>13 - SSH agent；<br>14 - TELNET agent；<br>16 - JMX agent；<br>18 - 相关项；<br>19 - HTTP agent；<br>20 - SNMP agent；<br>21 - 脚本。|
|**url**<br>（必需）|字符|URL字符串，HTTP代理LLD规则需要。 支持用户宏，{HOST.IP}， {HOST.CONN}，{HOST.DNS}，{HOST.HOST}，{HOST.NAME}，{ITEM.ID}，{ITEM.KEY}。|
|allow\_traps|整数|HTTP代理LLD规则字段。也允许填充值作为采集器监控项类型。<br><br>0 - *（默认值）* 不允许接收传入数据；<br>1 - 允许接收传入数据。|
|authtype|整数|只有SSH客户端或者HTTP代理的LLD规则能使用.<br><br>SSH客户端认证方法可用值：<br>0 - *（默认值）* 密码；<br>1 - 公钥。<br><br>HTTP客户端认证方法可用值：<br>0 - *（默认值）* none；<br>1 - basic；<br>2 - NTLM。|
|description|字符|LLD规则描述。|
|error|字符|*（只读）* 更新 LLD 规则时出现问题时的错误文本。|
|follow\_redirects|整数|HTTP代理LLD规则字段。接收数据时进行重定向。<br><br>0 - 不重定向；<br>1 - *（默认值）* 重定向。|
|headers|对象|HTTP代理LLD规则字段。带有 HTTP(S) 请求标头的对象，其中头部名称用作键，头部值用作值。<br><br>例如：<br>{ "User-Agent": "Zabbix" }|
|http\_proxy|字符|HTTP代理LLD规则字段。HTTP(S)代理连接地址。|
|ipmi\_sensor|字符|IPMI 传感器。只用于IPMI LLD规则。|
|jmx\_endpoint|字符|JMX agent自定义的连接地址。<br><br>默认值：<br>service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi|
|lifetime|字符|不再发现的监控项过期时间。接受秒、带后缀的时间单位和用户宏。<br><br>默认值：`30d`。|
|master\_itemid|整数|主监控项ID。<br>最多允许递归 3 个依赖监控项，依赖监控项的最大计数等于 999。<br>发现规则不能是另一个发现规则的主监控项。<br><br>依赖监控项是必需的。|
|output\_format|整数|HTTP代理LLD规则字段。 返回内容格式化JSON输出。<br><br>0 - *（默认值）* 不转换；<br>1 - 转JSON。|
|params|字符|附加参数取决于 LLD 规则的类型：<br>- 执行SSH 和 Telnet 脚本的LLD 规则；<br>- 数据库监控SQL查询SQL的LLD规则；<br>- 可计算LLD规则。|
|parameters|数组|除了LLD规则脚本类型参数之外。还有“名称”和“值”属性的对象数组，其中名称必须是唯一的。|
|password|字符|密码认证。适用于简单检查、SSH、Telnet、数据库监控、JMX 和 HTTP代理LLD规则。|
|post\_type|整数|HTTP代理LLD规则字段。在post属性中的数据body的类型 。<br><br>0 - *(默认值)* 行数据；<br>2 - JSON数据。<br>3 - XML数据。|
|posts|字符|HTTP代理LLD规则字段。HTTP(S) 请求body数据。使用post类型。|
|privatekey|字符|私钥文件的名称。|
|publickey|字符|公钥文件的名称。|
|query\_fields|数组|HTTP代理LLD规则字段。查询参数。具有 'key':'value' 对的对象数组，其中值可以是空字符串。|
|request\_method|整数|HTTP代理LLD规则字段。请求方法的类型。<br><br>0 - *（默认值）* GET<br>1 - POST；<br>2 - PUT；<br>3 - HEAD。|
|retrieve\_mode|整数|HTTP代理LLD规则字段。应该存储响应的哪些部分。<br><br>0 - *（默认值）* Body；<br>1 - Headers；<br>2 - body和headers均存储。<br><br>HEAD请求方法值只能为1。|
|snmp\_oid|字符|SNMP OID。|
|ssl\_cert\_file|字符|HTTP代理LLD规则字段。公钥文件路径。|
|ssl\_key\_file|字符|HTTP代理LLD规则字段。 私钥文件路径。|
|ssl\_key\_password|字符|HTTP代理LLD规则字段。秘钥文件的密码。|
|state|整数|*（只读）* LLD规则状态。<br><br>可用值：<br>0 - *（默认值）* 支持；<br>1 - 不支持。|
|status|整数|LLD规则状态。<br><br>可用值：<br>0 - *（默认值）* 激活LLD规则；<br>1 - 禁用LLD规则。|
|status\_codes|字符|HTTP代理LLD规则字段。 用逗号分隔的所需 HTTP 状态代码范围。还支持用户宏作为逗号分隔列表的一部分。<br><br>例如：200，200-{$M}，{$M}，200-400。|
|templateid|字符|（只读）父模板 LLD 规则的 ID。|
|timeout|字符|监控项数据轮询请求超时。用于HTTP代理和LLD规则脚本。支持用户宏或LLD宏。<br><br>默认值：3s<br>最大值：60s|
|trapper\_hosts|字符|允许的主机。 用于采集器监控项或者HTTP代理LLD规则。|
|username|字符|验证的用户名。用于简单检查、SSH、Telnet、数据库监控、JMX和HTTP代理LLD规则。<br><br>SSH和Telnet监控项LLD规则需要。|
|uuid|字符|通用唯一标识符，用于将导入的LLD规则链接到现有的LLD规则中。仅用于模板上的LLD规则。如果没有给出，则自动生成。<br><br>对于更新操作，此字段为*只读*。|
|verify\_host|整数|HTTP代理LLD规则字段。 验证URL中的主机名位于主机证书的公用名字段或使用者备用名字段中。<br><br>0 - *（默认值）* 不验证；<br>1 - 验证。|
|verify\_peer|整数|HTTP代理LLD规则字段。验证主机证书是否真实。<br><br>0 - *（默认值）* 不验证；<br>1 - 验证。|
注意，对于某些方法（更新、删除），必需/可选参数组合是不同的。

[comment]: # ({/085f5f4d-c17fa830})

[comment]: # ({cbe1b01e-b0412737})
### LLD 规则过滤器

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|----------------------------------------------------|------------|
|**conditions**<br>（必需）|array|用于过滤结果的过滤条件集。|
|**evaltype**<br>（必填）|integer|过滤条件评估方法。<br><br>可用值：<br>0 - 和/或；<br>1 - 和；<br>2 -或;<br>3 - 自定义表达式。|
|eval\_formula|string|*（只读）* 生成的表达式，将用于评估过滤条件。该表达式包含通过其“公式”引用特定过滤条件的 ID。`eval_formula` 的值等于具有自定义表达式的过滤器的 `formula` 的值。
|formula|string|用户定义的表达式，用于使用自定义表达式评估过滤器的条件。表达式必须包含通过其“公式”引用特定过滤条件的 ID。表达式中使用的 ID 必须与过滤条件中定义的 ID 完全匹配：任何条件都不能保持未使用或省略。<br><br>自定义表达式过滤器必需。|

[comment]: # ({/cbe1b01e-b0412737})

[comment]: # ({17a97889-be83ef5c})
#### LLD 规则过滤条件

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|说明|
|--------|----------------------------------------------------|------------|
|**macro**<br>（必需）|string|用于执行检查的 LLD 宏。|
|**value**<br>（必需）|string|要比较的值。|
|formulaid|string|用于从自定义表达式引用条件的任意唯一 ID。只能包含大写字母。ID 必须由用户在修改过滤条件时定义，但在以后请求时会重新生成。|
|operator|integer|条件运算符。<br><br>可用值：<br>8 - *（默认值）* 匹配正则表达式；<br>9 - 不匹配正则表达式；<br>12 - 存在；<br>13 - 不存在。|

::: notetip
为了更好地了解如何使用各种过滤器表达式的类型，参见示例[discoveryrule.get](get#检索过滤条件) 和[discoveryrule.create](create#使用自定义表达式过滤器) 方法页。
:::

[comment]: # ({/17a97889-be83ef5c})

[comment]: # ({13417b86-4a2b52b9})

### LLD宏路径

LLD宏路径具有以下属性:

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**lld\_macro**<br>（必需）|string|LLD宏。|
|**path**<br>（必需）|string|选择器将值分配给相应宏。|

[comment]: # ({/13417b86-4a2b52b9})

[comment]: # ({371b80b5-14dc55c1})

### LLD 规则预处理

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**type**<br>（必需）|integer|预处理选项类型。<br><br>可用值：<br>5 - 正则表达式匹配；<br>11 - XML XPath；<br>12 - JSONPath；<br>15 - 不匹配正则表达式；<br>16 - 检查 JSON 中的错误；<br>17 - 检查 XML 中的错误；<br>20 - 丢弃未更改的心跳；<br>23 - Prometheus转JSON；<br>24 - CSV转JSON；<br>25 - 替换；<br>27 - XML转JSON；|
|**params**<br>（必需）|string|预处理选项使用的附加参数。多个参数由 LF (\\n) 字符分隔。|
|**error\_handler**<br>（必需）|integer|在预处理步骤失败的情况下使用的操作类型。<br><br>可用值：<br>0 - 错误消息由 Zabbix server设置；<br>1 - 丢弃值；<br>2 - 设置自定义值；<br>3 - 设置自定义错误消息。|
|**error\_handler\_params**<br>（必需）|string|错误处理程序参数。与 `error_handler` 一起使用。<br><br>如果 `error_handler` 为 0 或 1，则必须为空。<br>如果 `error_handler` 为 2，则可以为空。<br>如果`error_handler`为3，则不能为空。|

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

|预处理类型|名称|参数1|参数2|参数3|支持的错误处理程序|
|------------------|----|-----------|-----------|-----------|------------------------|
|5|正则表达式|pattern^3^|output^2^|<|0,1,2,3|
|11|XML XPath|path^4^|<|<|0,1,2,3|
|12|JSONPath|path^4^|<|<|0, 1, 2, 3|
|15|不匹配正则表达式|pattern^3^|<|<|0,1,2,3|
|16|检查 JSON 中的错误|path^4^|<|<|0, 1, 2, 3|
|17|检查 XML 中的错误|path^4^|<|<|0, 1, 2, 3|
|20|用心跳不改变丢弃|seconds^4,\5,\ 6^|<|<|<|
|23|Prometheus 转 JSON|pattern^5,\ 7^|<|<|0,1,2,3|
|24|CSV 转 JSON|character^2^|character^2^|0,1|0,1,2,3|
|25|替换|search string^2^|replacement^2^|<|<|
|27|XML转JSON|<|<|<|0, 1, 2, 3|


^1^ 正则表达式\
^2^ 字符串\
^3^ 正则表达式\
^4^ JSONPath 或 XML XPath\
^5^ 正整数（支持时间后缀，例如 30s、1m、2h、1d)\
^6^ 用户宏，LLD 宏\
^7^ Prometheus 模式遵循以下语法：`<metric name>{<label name>="<label value>", ...} == <value>`。每个Prometheus 模式组件（指标、标签名称、标签值和指标value) 可以是用户宏或 LLD 宏。\
^8^ Prometheus 输出如下语法：`<label name>`（可以是用户宏或 LLD 宏）如果选择 `label` 作为第二个参数。\
^9^ 聚合函数之一：`sum`、`min`、`max`、`avg`、`count` 如果`function`被选为第二个范围。

^1^ 正则表达式\
^2^ 字符串\
^3^ JSONPath 或 XML XPat\
^4^ 正整数 (支持时间后缀, 例如 30s, 1m, 2h,1d)\
^5^ 用户宏\
^6^ LLD宏\
^7^ Prometheus语法模式:`<metric name>{<label name>="<label value>", ...} == <value>`. 每个 Prometheus 模式组件（度量、标签名称、标签值和度量值）都可以是用户宏。\
^8^ Prometheus输出如下语法: `<label name>`。

[comment]: # ({/371b80b5-14dc55c1})

[comment]: # ({37df45d1-2f32e5f0})

### LLD规则覆盖

LLD规则覆盖对象定义了一组规则（过滤器、条件和操作），用于覆盖不同原型对象的属性。它具有以下属性：

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**name**<br>（必需）|string|唯一的覆盖名称。|
|**step**<br>（必需）|integer|覆盖的唯一订单号。|
|stop|integer|如果匹配，则停止处理下一个覆盖。<br><br>可用值：<br>0 - *（默认值）* 不停止处理覆盖；<br>1 - 如果过滤器匹配，则停止处理覆盖。|
|filter|object|覆盖过滤器。|
|operations|array|覆盖操作。|

[comment]: # ({/37df45d1-2f32e5f0})

[comment]: # ({7ed738fa-573b52c4})

#### LLD 规则覆盖过滤器

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|----------------------------------------------------|------------|
|**evaltype**<br>（必需）|integer|覆盖过滤条件评估方法。<br><br>可能的值：<br>0 - 和/或；<br>1 - 和；<br>2 - 或;<br>3 - 自定义表达式。|
|**conditions**<br>（必需）|array|用于匹配已发现对象的覆盖过滤条件集。|
|eval\_formula|string|*（只读）* 生成的表达式，将用于评估覆盖过滤条件。该表达式包含通过其“公式”引用特定覆盖过滤条件的 ID。`eval_formula` 的值等于具有自定义表达式的过滤器的 `formula` 的值。
|formula|string|用户定义的表达式，用于评估具有自定义表达式的覆盖过滤器的条件。表达式必须包含通过其“公式”引用特定覆盖过滤条件的 ID。表达式中使用的 ID 必须与覆盖过滤条件中定义的 ID 完全匹配：任何条件都不能保持未使用或省略。<br><br>自定义表达式覆盖过滤器是必需的。|

[comment]: # ({/7ed738fa-573b52c4})

[comment]: # ({53857962-e47f6c6a})

#### LLD 规则覆盖过滤条件

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|----------------------------------------------------|------------|
|**macro**<br>（必需）|string|用于执行检查的 LLD 宏。|
|**value**<br>（必需）|string|要比较的值。|
|formulaid|string|用于从自定义表达式引用条件的任意唯一 ID。只能包含大写字母。 ID 必须由用户在修改过滤条件时定义，但在以后请求时会重新生成。|
|operator|integer|条件运算符。<br><br>可用值：<br>8 - *（默认值）* 匹配正则表达式；<br>9 - 不匹配正则表达式；<br>12 - 存在；< br>13 - 不存在。|

[comment]: # ({/53857962-e47f6c6a})

[comment]: # ({7e9a27d8-e7b08f3c})
#### LLD 规则覆盖操作

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|----------------------------------------------------|------------|
|**operationobject**<br>（必需）|integer|发现的执行操作的对象的类型。<br><br>可用值：<br>0 - 项目原型；<br>1 - 触发器原型；<br>2 - 图形原型；<br>3 - 主机原型。|
|operator|integer|覆盖条件运算符。<br><br>可能的值：<br>0 - *（默认值）* 等于；<br>1 - 不等于；<br>2 - 包含；<br>3 - 不包含；<br>8 - 匹配；<br>9 - 不匹配。|
|value|string|根据所选对象匹配项、触发器、图形或主机原型名称的模式。|
|opstatus|object|覆盖项目、触发器和宿主原型对象的操作状态对象。|
|opdiscover|object|覆盖操作发现状态对象（所有对象类型）。|
|opperiod|object|覆盖项目原型对象的操作周期（更新间隔）对象。|
|ophistory|object|覆盖项目原型对象的操作历史对象。|
|optrends|object|覆盖项目原型对象的操作趋势对象。|
|opseverity|object|覆盖触发器原型对象的操作严重性对象。|
|optag|array|覆盖触发器和宿主原型对象的操作标记对象。|
|optemplate|array|覆盖宿主原型对象的操作模板对象。|
|opinventory|object|覆盖主机原型对象的操作清单对象。|

[comment]: # ({/7e9a27d8-e7b08f3c})

[comment]: # ({29fce61b-52d3b579})
##### LLD 规则覆盖操作状态

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**status**<br>（必需）|integer|覆盖选定对象的状态。<br><br>可用值：<br>0 - 启用创建；<br>1 - 禁止创建。|

[comment]: # ({/29fce61b-52d3b579})

[comment]: # ({fb35f20d-ff620350})
##### LLD 规则覆盖操作发现

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**discover**<br>（必需）|integer|覆盖选定对象的发现状态。<br><br>可用值：<br>0 - 是，持续发现对象；<br>1 - 否，不会发现新对象，现有对象将被标记为丢失。|

[comment]: # ({/fb35f20d-ff620350})

[comment]: # ({205573b5-6e469c1b})
##### LLD 规则覆盖操作周期

LLD 规则覆盖操作周期是设置为已发现项目的更新间隔值（支持自定义间隔）。它具有以下属性：

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**delay**<br>（必需）|string|覆盖项目原型的更新间隔。接受秒或带后缀 (30s，1m，2h，1d) 的时间单位以及灵活的调度间隔和用户宏或 LLD 宏。多个区间用分号隔开。|

[comment]: # ({/205573b5-6e469c1b})

[comment]: # ({b5d1dcfe-ff97489f})
##### LLD 规则覆盖操作历史记录

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**history**<br>（必需）|string|覆盖监控项原型的历史，这是历史数据应存储多长时间的时间单位。也接受用户宏和 LLD 宏。|

[comment]: # ({/b5d1dcfe-ff97489f})

[comment]: # ({dd38c916-10b52601})
##### LLD 规则覆盖操作趋势

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**trends**<br>（必需）|string|覆盖监控项原型的趋势，这是趋势数据应存储多长时间的时间单位。也接受用户宏和 LLD 宏。|

[comment]: # ({/dd38c916-10b52601})

[comment]: # ({9ba6b6b4-991f3bdc})
##### LLD 规则覆盖操作严重性

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**severity**<br>（必需）|integer|覆盖触发器原型的严重性。<br><br>可用值：0 - *（默认值）* 未分类；<br>1 - 信息；<br>2 - 警告；<br>3 - 一般严重；<br>4 - 比较严重；<br>5 - 灾难。|

[comment]: # ({/9ba6b6b4-991f3bdc})

[comment]: # ({c58b9a5e-0693b8f3})
##### LLD 规则覆盖操作标记

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**tag**<br>（必需）|string|标签名字。|
|value|string|标签值。|

[comment]: # ({/c58b9a5e-0693b8f3})

[comment]: # ({c92b77a5-5eebc05a})
##### LLD 规则覆盖操作模板


LLD 规则覆盖链接到已发现主机的操作模板对象。它具有以下属性：

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**templateid**<br>（必需）|string|覆盖主机原型链接模板的模板。|

[comment]: # ({/c92b77a5-5eebc05a})

[comment]: # ({656387f4-9c5cc3d1})
##### LLD 规则覆盖操作清单

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

|属性|[类型](/manual/api/reference_commentary#数据类型)|描述|
|--------|---------------------------------------------------|-----------|
|**inventory\_mode**<br>（必需）|integer|覆盖主机原型库存模式。<br><br>可用值：<br>-1 - 禁用；<br>0 - *（默认值）* 手动；<br>1 - 自动。|

[comment]: # ({/656387f4-9c5cc3d1})
