> LLD 规则 object

以下objects与discoveryrule API直接相关.

LLD规则

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

属性 数据类型 描述
itemid string (只读) LLD规则的ID。
delay
(required)
string LLD规则的更新间隔。接受秒数或带后缀的时间单位,可包含一个或多个custom intervals,这些间隔可以是灵活间隔或调度间隔的序列化字符串。也接受用户宏。灵活间隔可以写成由正斜杠分隔的两个宏。间隔之间用分号分隔。

对于Zabbix trapper、依赖监控项和使用mqtt.get键的Zabbix agent(主动)类型为可选。
hostid
(required)
string LLD规则所属的主机的ID。
interfaceid
(required)
string LLD规则的主机接口ID。仅用于主机 LLD规则。

对于Zabbix agent(主动)、Zabbix内部、Zabbix trapper、依赖、数据库监控和脚本LLD规则不需要。HTTPagent LLD规则为可选。
key_
(required)
string LLD规则键值。
name
(required)
string LLD规则的名称。
type
(required)
integer LLD规则的类型。

可能的值:
0 - Zabbix agent;
2 - Zabbix trapper;
3 - 简单检查;
5 - Zabbix内部;
7 - Zabbix agent(主动);
10 - 外部检查;
11 - 数据库监控;
12 - IPMIagent;
13 - SSHagent;
14 - TELNETagent;
16 - JMXagent;
18 - 依赖监控项;
19 - HTTPagent;
20 - SNMPagent;
21 - 脚本。
url
(required)
string HTTPagent LLD规则所需的URLstring。支持用户宏、{HOST.IP}、{HOST.CONN}、{HOST.DNS}、{HOST.HOST}、{HOST.NAME}、{ITEM.ID}、{ITEM.KEY}。
allow_traps integer HTTPagent LLD规则字段。允许像trapper监控项类型一样填充值。

0 - (默认) 不允许接收传入数据。
1 - 允许接收传入数据。
authtype integer 仅用于SSHagent或HTTPagent LLD规则。

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

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

0 - 不跟随重定向。
1 - (默认) 跟随重定向。
headers object HTTPagent LLD规则字段。object包含HTTP(S)请求头,其中头名称用作键,头值用作值。

示例:
{ "User-Agent": "Zabbix" }
http_proxy string HTTPagent LLD规则字段。HTTP(S)proxy连接string。
ipmi_sensor string IPMI传感器。仅用于IPMI LLD规则。
jmx_endpoint string JMXagent自定义连接string。

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

默认: 30d
master_itemid integer 主监控项 ID。
允许递归最多3层依赖监控项,且依赖监控项的最大数量为999。
发现规则不能作为另一个发现规则的主监控项。

依赖监控项必需。
output_format integer HTTPagent LLD规则字段。是否将响应转换为JSON。

0 - (默认) 存储原始数据。
1 - 转换为JSON。
params string 根据LLD规则类型的附加参数:
- SSH和Telnet LLD规则的执行脚本;
- 数据库监控LLD规则的SQLquery;
- 计算LLD规则的公式。
parameters array 脚本类型LLD规则的附加参数。array包含objects,具有'名称'和'value'属性,其中名称必须唯一。
password string 认证密码。用于简单检查、SSH、Telnet、数据库监控、JMX和HTTPagent LLD规则。
post_type integer HTTPagent LLD规则字段。存储在posts属性中的post数据体类型。

0 - (默认) 原始数据。
2 - JSON数据。
3 - XML数据。
posts string HTTPagent LLD规则字段。HTTP(S)请求体数据。与post_type一起使用。
privatekey string 私钥file的名称。
publickey string 公钥file的名称。
query_fields array HTTPagent LLD规则字段。query参数。array包含'key':'value'对的objects,其中值可以是空string。
request_method integer HTTPagent LLD规则字段。请求方法类型。

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

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

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

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

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

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

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

SSH和Telnet LLD规则必需。
uuid string 通用唯一标识符,用于将导入的LLD规则链接到已存在的规则。仅用于模板上的LLD规则。如果未提供则自动生成。
verify_host integer HTTPagent LLD规则字段。是否验证主机名称与主机证书中的名称匹配。

0 - (默认) 不验证。
1 - 验证。
verify_peer integer HTTPagent LLD规则字段。是否验证主机证书的真实性。

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

注意,对于某些方法(update, delete),必需/可选参数的组合是不同的。

LLD 规则过滤器

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

属性 数据类型 描述
conditions
(required)
array 用于筛选结果的过滤条件集合。
evaltype
(required)
integer 过滤条件评估方法。

可能值:
0 - 与/或;
1 - 与;
2 - 或;
3 - 自定义表达式。
eval_formula string (只读) 用于评估过滤条件的生成表达式。该表达式包含通过formulaid引用特定过滤条件的ID。对于具有自定义表达式的过滤器,eval_formula的值等于formula的值。
formula string 用户定义的表达式,用于评估具有自定义表达式的过滤器的条件。该表达式必须包含通过formulaid引用特定过滤条件的ID。表达式中使用的ID必须与过滤条件中定义的ID完全匹配:不能有任何条件未被使用或遗漏。

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

LLD 规则过滤条件

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

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

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

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

LLD 宏路径

LLD宏路径具有以下属性:

属性 数据类型 描述
lld_macro
(required)
string LLD宏.
path
(required)
string 用于选择将分配给相应宏的值的选择器.

LLD 规则预处理

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

属性 数据类型 描述
type
(required)
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
(required)
string 预处理选项使用的附加参数。多个参数用LF(\n)字符分隔。
error_handler
(required)
integer 预处理步骤失败时采取的操作类型。

可能值:
0 - 错误消息由Zabbix server设置;
1 - 丢弃值;
2 - 设置自定义值;
3 - 设置自定义错误消息。
error_handler_params
(required)
string 错误处理参数。与error_handler配合使用。

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

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

预处理类型 名称 参数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
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

1 正则表达式
2 string
3 JSONPath或XML XPath
4 正数integer(支持时间后缀,如30s、1m、2h、1d)
5 用户宏
6 遵循语法<metric name>{<label name>="<label value>", ...} == <value>的Prometheus模式。每个Prometheus模式组件(指标、标签名、标签值和指标值)都可以是用户宏。

LLD 规则覆盖

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

属性 数据类型 描述
name
(required)
string 唯一的覆盖名称。
step
(required)
integer 覆盖的唯一序号。
stop integer 如果匹配则停止处理后续覆盖。

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

LLD 规则覆盖过滤器

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

属性 数据类型 描述
evaltype
(required)
integer 覆盖过滤器条件评估方法。

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

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

LLD 规则覆盖过滤条件

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

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

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

LLD 规则覆盖操作

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

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

可能值:
0 - 监控项原型;
1 - 触发器原型;
2 - 图形原型;
3 - 主机原型。
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 array 针对触发器和主机原型objects的覆盖操作标签object。
optemplate array 针对主机原型object的覆盖操作模板object。
opinventory object 针对主机原型object的覆盖操作资产清单object。
LLD 规则覆盖操作状态

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

属性 数据类型 描述
status
(required)
integer 为选定的object覆盖状态.

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

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

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

可能的值:
0 - 是, 继续发现objects;
1 - 否, 新的objects将不会被发现且现有的将被标记为丢失.
LLD 规则覆盖操作周期

LLD规则覆盖操作周期是一个update间隔值(支持自定义间隔),用于设置被发现的监控项。它具有以下特性:

属性 数据类型 描述
delay
(required)
string 覆盖监控项原型的update间隔。接受秒数或带后缀的时间单位(30s,1m,2h,1d),以及灵活调度间隔和用户宏或LLD宏。多个间隔用分号分隔。
LLD 规则覆盖操作历史

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

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

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

属性 数据类型 描述
trends
(required)
string 覆盖监控项原型的趋势值,该值表示趋势数据应存储的时间单位。同时支持用户宏和LLD宏。
LLD 规则覆盖操作严重性

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

属性 数据类型 描述
severity
(required)
integer 覆盖触发器原型的严重级别。

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

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

属性 数据类型 描述
tag
(required)
string 新标签名称。
value string 新标签值。
LLD 规则覆盖操作模板

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

属性 数据类型 描述
templateid
(required)
string 覆盖主机原型关联模板的模板.
LLD 规则覆盖操作清单

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

属性 数据类型 描述
inventory_mode
(required)
integer 覆盖 主机 原型资产清单模式.

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