这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会

> 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_formula string (只读) 生成的表达式,将用于评估过滤条件。该表达式包含通过其“公式”引用特定过滤条件的 ID。eval_formula 的值等于具有自定义表达式的过滤器的 formula 的值。
formula string 用户定义的表达式,用于使用自定义表达式评估过滤器的条件。表达式必须包含通过其“公式”引用特定过滤条件的 ID。表达式中使用的 ID 必须与过滤条件中定义的 ID 完全匹配:任何条件都不能保持未使用或省略。

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

LLD 规则过滤条件

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

属性 类型 说明
macro
(必需)
string 用于执行检查的 LLD 宏。
value
(必需)
string 要比较的值。
formulaid string 用于从自定义表达式引用条件的任意唯一 ID。只能包含大写字母。ID 必须由用户在修改过滤条件时定义,但在以后请求时会重新生成。
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;
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 正则表达式 pattern3 output2 0,1,2,3
11 XML XPath path4 0,1,2,3
12 JSONPath path4 0, 1, 2, 3
15 不匹配正则表达式 pattern3 0,1,2,3
16 检查 JSON 中的错误 path4 0, 1, 2, 3
17 检查 XML 中的错误 path4 0, 1, 2, 3
20 用心跳不改变丢弃 seconds4,\5, 6
23 Prometheus 转 JSON pattern5, 7 0,1,2,3
24 CSV 转 JSON character2 character2 0,1 0,1,2,3
25 替换 search string2 replacement2
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 聚合函数之一: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 覆盖的唯一订单号。
stop integer 如果匹配,则停止处理下一个覆盖。

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

LLD 规则覆盖过滤器

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

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

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

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

LLD 规则覆盖过滤条件

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

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

可用值:
8 - (默认值) 匹配正则表达式;
9 - 不匹配正则表达式;
12 - 存在;< br>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 array 覆盖触发器和宿主原型对象的操作标记对象。
optemplate array 覆盖宿主原型对象的操作模板对象。
opinventory object 覆盖主机原型对象的操作清单对象。
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 标签名字。
value string 标签值。
LLD 规则覆盖操作模板

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

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

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

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

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