2022 Zabbix中国峰会
2022 Zabbix中国峰会

> LLD规则对象

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

LLD规则

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

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

对于Zabbix trapper、依赖项和具有mqtt.get键的Zabbix agent(主动)是可选的。
hostid
(必需)
string LLD规则所属的主机的ID。
interfaceid
(必需)
string LLD规则的主机接口的ID。仅用于主机LLD规则。

对于Zabbix agent(主动)、Zabbix内部、Zabbix trapper、依赖项、数据monitor和脚本LLD规则不是必需的。对于HTTP agent LLD规则是可选的。
key_
(必需)
string LLD规则键。
name
(必需)
string LLD规则的名称。
type
(必需)
integer LLD规则的类型。

可能的值:
0 - Zabbix agent;
2 - Zabbix trapper;
3 - 简单检查;
5 - Zabbix内部;
7 - Zabbix agent(主动);
10 - 外部检查;
11 - 数据库monitor;
12 - IPMI agent ;
13 - SSH agent;
14 - TELNET agent;
16 - JMX agent ;
18 - 依赖项;
19 - HTTP agent;
20 - SNMP agent;
21 - 脚本。
url
(必需)
string URL字符串,对于HTTP agent LLD规则是必需的。支持用户宏,{HOST.IP},{HOST.CONN},{HOST.DNS},{HOST.HOST},{HOST.NAME},{ITEM.ID},{ITEM.KEY}。
allow_traps integer HTTP agent LLD规则字段。允许像在trapper监控项类型中一样填充值。

0 - (默认) 不允许接受传入数据。
1 - 允许接受传入数据。
authtype integer 仅由SSH agent 或HTTP agent LLD规则使用。

SSH agent 认证方法可能的值:
0 - (默认) 密码;
1 - 公钥。

HTTP agent 认证方法可能的值:
0 - (默认)
1 - 基本
2 - NTLM
description string LLD规则的描述。
error string (只读) 如果更新LLD规则值存在问题,则错误文本。
follow_redirects integer HTTP agent LLD规则字段。在轮询数据时跟随响应重定向。

0 - 不跟随重定向。
1 - (默认) 跟随重定向。
headers object HTTP agent LLD规则字段。HTTP(S)请求头的对象,其中头部名称用作键,头部值作为值。

示例:
{ "User-Agent": "Zabbix" }
http_proxy string HTTP agent LLD规则字段。HTTP(S) agent 连接字符串。
ipmi_sensor string IPMI传感器。仅由IPMI LLD规则使用。
jmx_endpoint string JMX agent 自定义连接字符串。

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

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

对于依赖项是必需的。
output_format integer HTTP agent LLD规则字段。是否应将响应转换为JSON。

0 - (默认) 存储原始数据。
1 - 转换为JSON。
params string 根据LLD规则的类型而变化的附加参数:
- 对于SSH和Telnet LLD规则执行的脚本;
- 对于数据库monitorLLD规则的SQL查询;
- 对于计算LLD规则的公式。
parameters array 脚本类型LLD规则的附加参数。具有'name'和'value'属性的对象数组,其中名称必须是唯一的。
password string 认证密码。由简单检查、SSH、Telnet、数据库monitor、JMX和HTTP agent LLD规则使用。
post_type integer HTTP agent LLD规则字段。存储在posts属性中的post数据正文的类型。

0 - (默认) 原始数据。
2 - JSON数据。
3 - XML数据。
posts string HTTP agent LLD规则字段。HTTP(S)请求正文数据。与post_type一起使用。
privatekey string 私钥文件的名称。
publickey string 公钥文件的名称。
query_fields array HTTP agent LLD规则字段。查询参数。具有'key':'value'对的对象数组,其中值可以是空字符串。
request_method integer HTTP agent LLD规则字段。请求方法的类型。

0 - (默认) GET
1 - POST
2 - PUT
3 - HEAD
retrieve_mode integer HTTP agent LLD规则字段。应该存储响应的哪一部分。

0 - (默认) 正文。
1 - 头。
2 - 正文和头都将被存储。

对于request_method HEAD,只允许值1。
snmp_oid string SNMP OID。
ssl_cert_file string HTTP agent LLD规则字段。公共SSL密钥文件路径。
ssl_key_file string HTTP agent LLD规则字段。私有SSL密钥文件路径。
ssl_key_password string HTTP agent LLD规则字段。SSL密钥文件的密码。
state integer (只读) LLD规则的状态。

可能的值:
0 - (默认) 正常;
1 - 不支持。
status integer LLD规则的状态。

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

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

默认值:3s
最大值:60s
trapper_hosts string 允许的主机。由trapper LLD规则或HTTP agent LLD规则使用。
username string 认证用户名。由简单检查、SSH、Telnet、数据库monitor、JMX和HTTP agent LLD规则使用。

由SSH和Telnet LLD规则要求。
uuid string 通用唯一标识符,用于将导入的LLD规则链接到已存在的规则。仅用于模板上的LLD规则。如果没有给出,则自动生成。
verify_host integer HTTP agent LLD规则字段。是否验证连接的主机名是否与主机证书中的名称匹配。

0 - (默认) 不验证。
1 - 验证。
verify_peer integer HTTP agent 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 - 通过心跳丢弃不变数据;
21 - JavaScript;
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 错误处理程序参数。与错误处理程序一起使用。

如果错误处理程序是0或1,则必须为空。
如果错误处理程序是2,可以为空。
如果错误处理程序是3,则不能为空。

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

预处理类型 名称 参数1 参数2 参数3 支持的错误处理程序
5 正则表达式 pattern1 output2 0, 1, 2, 3
11 XML XPath path3 0, 1, 2, 3
12 JSONPath path3 0, 1, 2, 3
15 不匹配正则表达式 pattern1 0, 1, 2, 3
16 检查JSON中的错误 path3 0, 1, 2, 3
17 检查XML中的错误 path3 0, 1, 2, 3
20 通过心跳丢弃不变数据 seconds4, 5
21 JavaScript script2
23 Prometheus转JSON pattern5, 6 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 JSONPath或XML XPath
4 正整数(支持时间后缀,例如30s, 1m, 2h, 1d)
5 用户宏
6 遵循语法的Prometheus模式: <metric name>{<label name>="<label value>", ...} == <value>。每个Prometheus模式组件(指标、标签名称、标签值和指标值)都可以是用户宏。

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 - 自动。