以下对象与 自动发现规则
API 直接相关。
低级发现规则对象具有以下属性。
属性 | 类型 | 描述 |
---|---|---|
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 规则过滤器对象定义了一组可以使用的条件过滤发现的对象。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
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 - 通过心跳丢弃不变数据; 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规则覆盖对象定义了一组规则(过滤器、条件和操作),用于覆盖不同原型对象的属性。它具有以下属性:
属性 | 类型 | 描述 |
---|---|---|
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 - 自动。 |