> LLD规则对象

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

LLD规则

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

属性类型描述
itemid字符(只读) LLD规则ID。
delay
(必需)
字符LLD 规则的更新间隔。接受带后缀的秒或时间单位,可以带或不带一个或多个 自定义间隔,它们由灵活间隔和调度间隔组成,作为序列化字符串。还接收用户宏。灵活的间隔可以写成两个由正斜杠分隔的宏。间隔由分号分隔。

对于 Zabbix trapper、依赖项和带有 mqtt.get 键值的 Zabbix agent (active) 是可选的。
hostid
(必需)
字符LLD规则的主机ID。
interfaceid
(必需)
字符LLD规则的主机接口ID,只用于主机LLD规则。

Zabbix agent (主动检查), Zabbix 内部检查, Zabbix 采集器,相关项,数据库监控和脚本LLD规则不需要。HTTP代理LLD规则可选。
key_
(必需)
字符LLD规则键值。
name
(必需)
字符LLD规则名称。
type
(必需)
字符LLD规则类型。

可用值:
0 - Zabbix agent;
2 - Zabbix 采集器;
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
(必需)
字符URL字符串,HTTP代理LLD规则需要。 支持用户宏,{HOST.IP}, {HOST.CONN},{HOST.DNS},{HOST.HOST},{HOST.NAME},{ITEM.ID},{ITEM.KEY}。
allow_traps整数HTTP代理LLD规则字段。也允许填充值作为采集器监控项类型。

0 - (默认值) 不允许接收传入数据;
1 - 允许接收传入数据。
authtype整数只有SSH客户端或者HTTP代理的LLD规则能使用.

SSH客户端认证方法可用值:
0 - (默认值) 密码;
1 - 公钥。

HTTP客户端认证方法可用值:
0 - (默认值) none;
1 - basic;
2 - NTLM。
description字符LLD规则描述。
error字符(只读) 更新 LLD 规则时出现问题时的错误文本。
follow_redirects整数HTTP代理LLD规则字段。接收数据时进行重定向。

0 - 不重定向;
1 - (默认值) 重定向。
headers对象HTTP代理LLD规则字段。带有 HTTP(S) 请求标头的对象,其中头部名称用作键,头部值用作值。

例如:
{ “User-Agent”: “Zabbix” }
http_proxy字符HTTP代理LLD规则字段。HTTP(S)代理连接地址。
ipmi_sensor字符IPMI 传感器。只用于IPMI LLD规则。
jmx_endpoint字符JMX agent自定义的连接地址。

默认值:
service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi
lifetime字符不再发现的监控项过期时间。接受秒、带后缀的时间单位和用户宏。

默认值:30d
master_itemid整数主监控项ID。
最多允许递归 3 个依赖监控项,依赖监控项的最大计数等于 999。
发现规则不能是另一个发现规则的主监控项。

依赖监控项是必需的。
output_format整数HTTP代理LLD规则字段。 返回内容格式化JSON输出。

0 - (默认值) 不转换;
1 - 转JSON。
params字符附加参数取决于 LLD 规则的类型:
- 执行SSH 和 Telnet 脚本的LLD 规则;
- 数据库监控SQL查询SQL的LLD规则;
- 可计算LLD规则。
parameters数组除了LLD规则脚本类型参数之外。还有“名称”和“值”属性的对象数组,其中名称必须是唯一的。
password字符密码认证。适用于简单检查、SSH、Telnet、数据库监控、JMX 和 HTTP代理LLD规则。
post_type整数HTTP代理LLD规则字段。在post属性中的数据body的类型 。

0 - (默认值) 行数据;
2 - JSON数据。
3 - XML数据。
posts字符HTTP代理LLD规则字段。HTTP(S) 请求body数据。使用post类型。
privatekey字符私钥文件的名称。
publickey字符公钥文件的名称。
query_fields数组HTTP代理LLD规则字段。查询参数。具有 ‘key’:’value’ 对的对象数组,其中值可以是空字符串。
request_method整数HTTP代理LLD规则字段。请求方法的类型。

0 - (默认值) GET
1 - POST;
2 - PUT;
3 - HEAD。
retrieve_mode整数HTTP代理LLD规则字段。应该存储响应的哪些部分。

0 - (默认值) Body;
1 - Headers;
2 - body和headers均存储。

HEAD请求方法值只能为1。
snmp_oid字符SNMP OID。
ssl_cert_file字符HTTP代理LLD规则字段。公钥文件路径。
ssl_key_file字符HTTP代理LLD规则字段。 私钥文件路径。
ssl_key_password字符HTTP代理LLD规则字段。秘钥文件的密码。
state整数(只读) LLD规则状态。

可用值:
0 - (默认值) 支持;
1 - 不支持。
status整数LLD规则状态。

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

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

默认值:3s
最大值:60s
trapper_hosts字符允许的主机。 用于采集器监控项或者HTTP代理LLD规则。
username字符验证的用户名。用于简单检查、SSH、Telnet、数据库监控、JMX和HTTP代理LLD规则。

SSH和Telnet监控项LLD规则需要。
uuid字符通用唯一标识符,用于将导入的LLD规则链接到现有的LLD规则中。仅用于模板上的LLD规则。如果没有给出,则自动生成。

对于更新操作,此字段为只读
verify_host整数HTTP代理LLD规则字段。 验证URL中的主机名位于主机证书的公用名字段或使用者备用名字段中。

0 - (默认值) 不验证;
1 - 验证。
verify_peer整数HTTP代理LLD规则字段。验证主机证书是否真实。

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

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

LLD 规则过滤器

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

属性类型描述
conditions
(必需)
array用于过滤结果的过滤条件集。
evaltype
(必填)
integer过滤条件评估方法。

可用值:
0 - 和/或;
1 - 和;
2 -或;
3 - 自定义表达式。
eval_formulastring(只读) 生成的表达式,将用于评估过滤条件。该表达式包含通过其“公式”引用特定过滤条件的 ID。eval_formula 的值等于具有自定义表达式的过滤器的 formula 的值。
formulastring用户定义的表达式,用于使用自定义表达式评估过滤器的条件。表达式必须包含通过其“公式”引用特定过滤条件的 ID。表达式中使用的 ID 必须与过滤条件中定义的 ID 完全匹配:任何条件都不能保持未使用或省略。

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

LLD 规则过滤条件

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

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

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

为了更好地了解如何使用各种过滤器表达式的类型,参见示例discoveryrule.getdiscoveryrule.create 方法页。

LLD宏路径

LLD宏路径具有以下属性:

属性类型描述
lld_macro
(必需)
stringLLD宏。
path
(必需)
string选择器将值分配给相应宏。

LLD 规则预处理

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

属性类型描述
type
(必需)
integer预处理选项类型。

可用值:
5 - 正则表达式匹配;
11 - XML XPath;
12 - JSONPath;
15 - 不匹配正则表达式;
16 - 检查 JSON 中的错误;
17 - 检查 XML 中的错误;
20 - 丢弃未更改的心跳;
23 - Prometheus转JSON;
24 - CSV转JSON;
25 - 替换;
27 - XML转JSON;
params
(必需)
string预处理选项使用的附加参数。多个参数由 LF (\n) 字符分隔。
error_handler
(必需)
integer在预处理步骤失败的情况下使用的操作类型。

可用值:
0 - 错误消息由 Zabbix server设置;
1 - 丢弃值;
2 - 设置自定义值;
3 - 设置自定义错误消息。
error_handler_params
(必需)
string错误处理程序参数。与 error_handler 一起使用。

如果 error_handler 为 0 或 1,则必须为空。
如果 error_handler 为 2,则可以为空。
如果error_handler为3,则不能为空。

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

预处理类型名称参数1参数2参数3支持的错误处理程序
5正则表达式pattern3output20,1,2,3
11XML XPathpath40,1,2,3
12JSONPathpath40, 1, 2, 3
15不匹配正则表达式pattern30,1,2,3
16检查 JSON 中的错误path40, 1, 2, 3
17检查 XML 中的错误path40, 1, 2, 3
20用心跳不改变丢弃seconds4,\5, 6
23Prometheus 转 JSONpattern5, 70,1,2,3
24CSV 转 JSONcharacter2character20,10,1,2,3
25替换search string2replacement2
27XML转JSON0, 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 聚合函数之一:summinmaxavgcount 如果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>

LLD规则覆盖

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

属性类型描述
name
(必需)
string唯一的覆盖名称。
step
(必需)
integer覆盖的唯一订单号。
stopinteger如果匹配,则停止处理下一个覆盖。

可用值:
0 - (默认值) 不停止处理覆盖;
1 - 如果过滤器匹配,则停止处理覆盖。
filterobject覆盖过滤器。
operationsarray覆盖操作。

LLD 规则覆盖过滤器

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

属性类型描述
evaltype
(必需)
integer覆盖过滤条件评估方法。

可能的值:
0 - 和/或;
1 - 和;
2 - 或;
3 - 自定义表达式。
conditions
(必需)
array用于匹配已发现对象的覆盖过滤条件集。
eval_formulastring(只读) 生成的表达式,将用于评估覆盖过滤条件。该表达式包含通过其“公式”引用特定覆盖过滤条件的 ID。eval_formula 的值等于具有自定义表达式的过滤器的 formula 的值。
formulastring用户定义的表达式,用于评估具有自定义表达式的覆盖过滤器的条件。表达式必须包含通过其“公式”引用特定覆盖过滤条件的 ID。表达式中使用的 ID 必须与覆盖过滤条件中定义的 ID 完全匹配:任何条件都不能保持未使用或省略。

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

LLD 规则覆盖过滤条件

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

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

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

LLD 规则覆盖操作

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

属性类型描述
operationobject
(必需)
integer发现的执行操作的对象的类型。

可用值:
0 - 项目原型;
1 - 触发器原型;
2 - 图形原型;
3 - 主机原型。
operatorinteger覆盖条件运算符。

可能的值:
0 - (默认值) 等于;
1 - 不等于;
2 - 包含;
3 - 不包含;
8 - 匹配;
9 - 不匹配。
valuestring根据所选对象匹配项、触发器、图形或主机原型名称的模式。
opstatusobject覆盖项目、触发器和宿主原型对象的操作状态对象。
opdiscoverobject覆盖操作发现状态对象(所有对象类型)。
opperiodobject覆盖项目原型对象的操作周期(更新间隔)对象。
ophistoryobject覆盖项目原型对象的操作历史对象。
optrendsobject覆盖项目原型对象的操作趋势对象。
opseverityobject覆盖触发器原型对象的操作严重性对象。
optagarray覆盖触发器和宿主原型对象的操作标记对象。
optemplatearray覆盖宿主原型对象的操作模板对象。
opinventoryobject覆盖主机原型对象的操作清单对象。
LLD 规则覆盖操作状态

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

属性类型描述
status
(必需)
integer覆盖选定对象的状态。

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

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

属性类型描述
discover
(必需)
integer覆盖选定对象的发现状态。

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

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

属性类型描述
delay
(必需)
string覆盖项目原型的更新间隔。接受秒或带后缀 (30s,1m,2h,1d) 的时间单位以及灵活的调度间隔和用户宏或 LLD 宏。多个区间用分号隔开。
LLD 规则覆盖操作历史记录

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

属性类型描述
history
(必需)
string覆盖监控项原型的历史,这是历史数据应存储多长时间的时间单位。也接受用户宏和 LLD 宏。
LLD 规则覆盖操作趋势

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

属性类型描述
trends
(必需)
string覆盖监控项原型的趋势,这是趋势数据应存储多长时间的时间单位。也接受用户宏和 LLD 宏。
LLD 规则覆盖操作严重性

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

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

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

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

属性类型描述
tag
(必需)
string标签名字。
valuestring标签值。
LLD 规则覆盖操作模板

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

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

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

属性类型描述
inventory_mode
(必需)
integer覆盖主机原型库存模式。

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