以下对象与 自动发现规则
API 直接相关。
底层发现规则对象具有以下属性。
属性 | 类型 | 描述 |
---|---|---|
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 规则过滤器对象定义了一组可以使用的条件过滤发现的对象。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
conditions (必需) |
array | 用于过滤结果的过滤条件集。 |
evaltype (必填) |
integer | 过滤条件评估方法。 可用值: 0 - 和/或; 1 - 和; 2 -或; 3 - 自定义表达式。 |
eval_formula | string | (只读) 生成的表达式,将用于评估过滤条件。该表达式包含通过其“公式”引用特定过滤条件的 ID。eval_formula 的值等于具有自定义表达式的过滤器的 formula 的值。 |
formula | string | 用户定义的表达式,用于使用自定义表达式评估过滤器的条件。表达式必须包含通过其“公式”引用特定过滤条件的 ID。表达式中使用的 ID 必须与过滤条件中定义的 ID 完全匹配:任何条件都不能保持未使用或省略。 自定义表达式过滤器必需。 |
LLD 规则过滤条件对象定义了对 LLD 宏的值执行的单独检查。它具有以下属性:
属性 | 类型 | 说明 |
---|---|---|
macro (必需) |
string | 用于执行检查的 LLD 宏。 |
value (必需) |
string | 要比较的值。 |
formulaid | string | 用于从自定义表达式引用条件的任意唯一 ID。只能包含大写字母。ID 必须由用户在修改过滤条件时定义,但在以后请求时会重新生成。 |
operator | integer | 条件运算符。 可用值: 8 - (默认值) 匹配正则表达式; 9 - 不匹配正则表达式; 12 - 存在; 13 - 不存在。 |
为了更好地了解如何使用各种过滤器表达式的类型,参见示例discoveryrule.get 和discoveryrule.create 方法页。
LLD宏路径具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
lld_macro (必需) |
string | LLD宏。 |
path (必需) |
string | 选择器将值分配给相应宏。 |
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 聚合函数之一:sum
、min
、max
、avg
、count
如果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规则覆盖对象定义了一组规则(过滤器、条件和操作),用于覆盖不同原型对象的属性。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
name (必需) |
string | 唯一的覆盖名称。 |
step (必需) |
integer | 覆盖的唯一订单号。 |
stop | integer | 如果匹配,则停止处理下一个覆盖。 可用值: 0 - (默认值) 不停止处理覆盖; 1 - 如果过滤器匹配,则停止处理覆盖。 |
filter | object | 覆盖过滤器。 |
operations | array | 覆盖操作。 |
LLD 规则覆盖过滤器对象定义了一组条件,如果它们与发现的对象匹配,则应用覆盖。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
evaltype (必需) |
integer | 覆盖过滤条件评估方法。 可能的值: 0 - 和/或; 1 - 和; 2 - 或; 3 - 自定义表达式。 |
conditions (必需) |
array | 用于匹配已发现对象的覆盖过滤条件集。 |
eval_formula | string | (只读) 生成的表达式,将用于评估覆盖过滤条件。该表达式包含通过其“公式”引用特定覆盖过滤条件的 ID。eval_formula 的值等于具有自定义表达式的过滤器的 formula 的值。 |
formula | string | 用户定义的表达式,用于评估具有自定义表达式的覆盖过滤器的条件。表达式必须包含通过其“公式”引用特定覆盖过滤条件的 ID。表达式中使用的 ID 必须与覆盖过滤条件中定义的 ID 完全匹配:任何条件都不能保持未使用或省略。 自定义表达式覆盖过滤器是必需的。 |
LLD 规则覆盖过滤条件对象定义了对 LLD 宏的值执行的单独检查。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
macro (必需) |
string | 用于执行检查的 LLD 宏。 |
value (必需) |
string | 要比较的值。 |
formulaid | string | 用于从自定义表达式引用条件的任意唯一 ID。只能包含大写字母。 ID 必须由用户在修改过滤条件时定义,但在以后请求时会重新生成。 |
operator | integer | 条件运算符。 可用值: 8 - (默认值) 匹配正则表达式; 9 - 不匹配正则表达式; 12 - 存在;< br>13 - 不存在。 |
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 规则覆盖设置为已发现对象的操作状态。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
status (必需) |
integer | 覆盖选定对象的状态。 可用值: 0 - 启用创建; 1 - 禁止创建。 |
设置为已发现对象的 LLD 规则覆盖操作发现状态。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
discover (必需) |
integer | 覆盖选定对象的发现状态。 可用值: 0 - 是,持续发现对象; 1 - 否,不会发现新对象,现有对象将被标记为丢失。 |
LLD 规则覆盖操作周期是设置为已发现项目的更新间隔值(支持自定义间隔)。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
delay (必需) |
string | 覆盖项目原型的更新间隔。接受秒或带后缀 (30s,1m,2h,1d) 的时间单位以及灵活的调度间隔和用户宏或 LLD 宏。多个区间用分号隔开。 |
LLD 规则覆盖设置为已发现监控项的操作历史记录值。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
history (必需) |
string | 覆盖监控项原型的历史,这是历史数据应存储多长时间的时间单位。也接受用户宏和 LLD 宏。 |
LLD 规则覆盖设置为已发现监控项的操作趋势值。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
trends (必需) |
string | 覆盖监控项原型的趋势,这是趋势数据应存储多长时间的时间单位。也接受用户宏和 LLD 宏。 |
LLD 规则覆盖设置为发现触发器的操作严重性值。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
severity (必需) |
integer | 覆盖触发器原型的严重性。 可用值:0 - (默认值) 未分类; 1 - 信息; 2 - 警告; 3 - 一般严重; 4 - 比较严重; 5 - 灾难。 |
LLD 规则覆盖操作标记对象包含设置为发现对象的标记名称和值。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
tag (必需) |
string | 标签名字。 |
value | string | 标签值。 |
LLD 规则覆盖链接到已发现主机的操作模板对象。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
templateid (必需) |
string | 覆盖主机原型链接模板的模板。 |
LLD 规则覆盖设置为已发现主机的操作库存模式值。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
inventory_mode (必需) |
integer | 覆盖主机原型库存模式。 可用值: -1 - 禁用; 0 - (默认值) 手动; 1 - 自动。 |