以下objects与discoveryrule
API直接相关。
低级发现规则object具有以下属性。
属性 | 数据类型 | 描述 |
---|---|---|
itemid | string | (只读) LLD规则的ID。 |
delay (required) |
string | LLD规则的更新间隔。接受秒数或带后缀的时间单位,可以包含或不包含一个或多个custom intervals,这些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规则不需要。对于HTTP agent 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 - IPMI agent; 13 - SSH agent; 14 - TELNET agent; 16 - JMX agent; 18 - 依赖监控项; 19 - HTTP agent; 20 - SNMP agent; 21 - 脚本。 |
url (required) |
string | URL string,HTTP agent LLD规则必需。支持用户宏,{主机.IP}、{主机.CONN}、{主机.DNS}、{主机.主机}、{主机.NAME}、{监控项.ID}、{监控项.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规则字段。object带有HTTP(S)请求头,其中头名称用作键,头值用作值。 示例: { "User-Agent": "Zabbix" } |
http_proxy | string | HTTP agent LLD规则字段。HTTP(S) proxy连接string。 |
ipmi_sensor | string | IPMI传感器。仅用于IPMI LLD规则。 |
jmx_endpoint | string | JMX agent自定义连接string。 默认值: service:jmx:rmi:///jndi/rmi://{主机.CONN}:{主机.PORT}/jmxrmi |
lifetime | string | 不再发现的监控项将被删除的时间段。接受秒数、带后缀的时间单位和用户宏。 默认: 30d 。 |
master_itemid | integer | 主监控项 ID。 允许递归到{eccbc87e}依赖监控项,且依赖监控项的最大数量为999。 发现规则不能是另一个发现规则的主监控项。 依赖监控项必需。 |
output_format | integer | HTTP agent LLD规则字段。响应是否应转换为JSON。 0 - (默认) 存储原始数据。 1 - 转换为JSON。 |
params | string | 根据LLD规则类型的附加参数: - 用于SSH和Telnet LLD规则的执行脚本; - 用于数据库监控LLD规则的SQL query; - 用于计算LLD规则的公式。 |
parameters | array | 脚本类型LLD规则的附加参数。array的objects,具有'name'和'value'属性,其中name必须唯一。 |
password | string | 认证密码。用于简单检查、SSH、Telnet、数据库监控、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规则字段。query参数。array的objects,具有'key':'value'对,其中value可以是空string。 |
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、数据库监控、JMX和HTTP agent LLD规则。 SSH和Telnet LLD规则必需。 |
uuid | string | 通用唯一标识符,用于将导入的LLD规则链接到已存在的LLD规则。仅用于模板上的LLD规则。如果未提供,则自动生成。 |
verify_host | integer | HTTP agent LLD规则字段。是否验证连接的主机名称与主机证书中的名称匹配。 0 - (默认) 不验证。 1 - 验证。 |
verify_peer | integer | HTTP agent LLD规则字段。是否验证主机证书的真实性。 0 - (默认) 不验证。 1 - 验证。 |
注意,对于某些方法(更新、删除),必需/可选参数的组合是不同的。
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规则过滤条件object用于对LLD宏的值执行独立检查,具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
macro (required) |
string | 需要检查的LLD宏。 |
value (required) |
string | 用于比较的值。 |
formulaid | string | 用于在自定义表达式中引用该条件的唯一ID(仅允许大写字母)。用户修改过滤条件时必须定义该ID,但后续请求时会重新生成。 |
operator | integer | 条件运算符。 可选值: 8 - (默认) 匹配正则表达式; 9 - 不匹配正则表达式; 12 - 存在; 13 - 不存在。 |
关于如何在不同类型表达式中使用过滤器的详细示例,请参阅 检索筛选条件和 使用自定义表达式过滤器方法页面。
LLD宏路径具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
lld_macro (required) |
string | LLD宏。 |
path (required) |
string | 用于选择将赋值给对应宏的值的选择器。 |
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 | 预处理选项使用的附加参数。多个参数用换行符(\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规则覆盖项object定义了一组规则(过滤器、条件和操作),用于覆盖不同原型objects的属性。它具有以下特性:
属性 | 数据类型 | 描述 |
---|---|---|
name (required) |
string | 唯一覆盖项名称。 |
step (required) |
integer | 覆盖项的唯一序号。 |
stop | integer | 匹配时停止处理后续覆盖项。 可选值: 0 - (默认) 不停止处理覆盖项; 1 - 若过滤器匹配则停止处理覆盖项。 |
filter | object | 覆盖项过滤器。 |
operations | array | 覆盖项操作。 |
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规则覆盖过滤器条件object定义了对LLD宏值执行的独立检查。它具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
macro (required) |
string | 要执行检查的LLD宏。 |
value (required) |
string | 用于比较的值。 |
formulaid | string | 用于从自定义表达式中引用该条件的任意唯一ID。只能包含大写字母。修改过滤条件时必须由用户定义该ID,但在后续请求时会重新生成。 |
operator | integer | 条件运算符。 可能的值: 8 - (默认) 匹配正则表达式; 9 - 不匹配正则表达式; 12 - 存在; 13 - 不存在。 |
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的覆盖操作周期(更新间隔)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。 |
设置为已发现的object的LLD规则覆盖操作状态。它具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
status (required) |
integer | 为选定的object覆盖状态。 可选值: 0 - 创建启用; 1 - 创建禁用。 |
LLD规则覆盖操作发现状态设置为已发现object。它具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
discover (required) |
integer | 覆盖选定object的发现状态。 可选值: 0 - 是,继续发现objects; 1 - 否,新objects将不会被发现,现有项将被标记为丢失。 |
LLD规则覆盖操作周期是为发现的监控项设置的更新间隔值(支持自定义间隔)。它具有以下特性:
属性 | 数据类型 | 说明 |
---|---|---|
delay (required) |
string | 覆盖监控项原型的更新间隔。接受秒数或带后缀的时间单位(30s、1m、2h、1d),以及灵活调度间隔和用户宏或LLD宏。多个间隔用分号分隔。 |
LLD规则覆盖操作历史值,该值设置为已发现的监控项。它具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
history (required) |
string | 覆盖监控项原型的历史记录,该值表示历史数据应存储的时间单位。同时支持用户宏和LLD宏。 |
LLD规则覆盖操作将趋势值设置为已发现的监控项。 它具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
trends (required) |
string | 覆盖监控项原型的趋势数据存储时长(时间单位)。同时支持用户宏和LLD宏。 |
LLD规则覆盖操作中设置给被发现触发器的严重性值。它具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
severity (required) |
integer | 覆盖触发器原型的严重性级别。 可选值为:0 - (默认) 未分类; 1 - 信息; 2 - 警告; 3 - 一般; 4 - 严重; 5 - 灾难。 |
LLD规则覆盖操作标签object包含为发现项object设置的标签名称和值。它具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
tag (required) |
string | 新标签名称。 |
value | string | 新标签值。 |
LLD规则覆盖操作模板object,该模板链接到已发现的主机。它具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
templateid (required) |
string | 覆盖主机原型链接模板的模板。 |
LLD规则覆盖操作中设置的发现主机的资产清单模式值。它具有以下属性:
属性 | 数据类型 | 描述 |
---|---|---|
inventory_mode (required) |
integer | 覆盖主机原型的资产清单模式。 可选值为: -1 - 禁用; 0 - (默认) 手动; 1 - 自动。 |