创建
说明
object discoveryrule.create(object/array **lldRules**)
此方法允许创建新的LLD规则。
参数
(object/array)
要创建的LLD规则。
除了标准LLD规则属性之外,该方法还接受以下参数。
属性 | 类型 | |
---|---|---|
filter | object | LLD规则LLD规则的过滤对象。 |
preprocessing | array | LLD规则预处理选项。 |
lld_macro_paths | array | LLD规则预处理选项。 |
overrides | array | LLD规则覆盖选项。 |
返回值
(object)
在itemids
属性下返回一个包含IDs的被创建的LLD规则。返回的IDs的顺序与传递的LLD规则顺序相匹配。
示例
新建LLD规则
创建Zabbix agent LLD规则去发现以已装入的文件系统。发现监控项(items)将被每30s被更新一次。
请求:
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Mounted filesystem discovery",
"key_": "vfs.fs.discovery",
"hostid": "10197",
"type": "0",
"interfaceid": "112",
"delay": "30s"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
使用一个过滤器
创建有由一套删选条件的得到的LLD规则。这些条件将使用逻辑“和”运算符将条件组合在一起。
请求:
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Filtered LLD rule",
"key_": "lld",
"hostid": "10116",
"type": "0",
"interfaceid": "13",
"delay": "30s",
"filter": {
"evaltype": 1,
"conditions": [
{
"macro": "{#MACRO1}",
"value": "@regex1"
},
{
"macro": "{#MACRO2}",
"value": "@regex2"
},
{
"macro": "{#MACRO3}",
"value": "@regex3"
}
]
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
使用自定义表达式的筛选器
创建一个带有过滤器的LLD规则,该过滤器将使用自定义表达式来计算条件。LLD规则必须只发现“{#MACRO1}”宏值同时匹配正则表达式“regex1”和“regex2”的对象,“{#MACRO2}”宏值同时匹配“regex3”或“regex4”的对象。公式id“A”、“B”、“C”和“D”是任意选择的。
请求:
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"name": "Filtered LLD rule",
"key_": "lld",
"hostid": "10116",
"type": "0",
"interfaceid": "13",
"delay": "30s",
"filter": {
"evaltype": 3,
"formula": "(A and B) and (C or D)",
"conditions": [
{
"macro": "{#MACRO1}",
"value": "@regex1",
"formulaid": "A"
},
{
"macro": "{#MACRO1}",
"value": "@regex2",
"formulaid": "B"
},
{
"macro": "{#MACRO2}",
"value": "@regex3",
"formulaid": "C"
},
{
"macro": "{#MACRO2}",
"value": "@regex4",
"formulaid": "D"
}
]
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27665"
]
},
"id": 1
}
使用自定义查询字段和报头
创建具有自定义查询字段和标题的LLD规则。
请求:
{
"jsonrpc": "2.0",
"method": "discoveryrule.create",
"params": {
"hostid": "10257",
"interfaceid": "5",
"type": "19",
"name": "API HTTP agent",
"key_": "api_discovery_rule",
"value_type": "3",
"delay": "5s",
"url": "http://127.0.0.1?discoverer.php",
"query_fields": [
{
"mode": "json"
},
{
"elements":"2"
}
],
"headers": {
"X-Type": "api",
"Authorization": "Bearer mF_A.B5f-2.1JcM"
},
"allow_traps": "1",
"trapper_hosts": "127.0.0.1",
"id": 35,
"auth": "d678e0b85688ce578ff061bd29a20d3b",
}
}
响应:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"28336"
]
},
"id": 35
}
参见
来源
CDiscoveryRule::create() in frontends/php/include/classes/api/services/CDiscoveryRule.php.