discoveryrule.update

描述

object discoveryrule.update(object/array lldRules)

此方法允许update现有的LLD规则.

此方法仅适用于AdminSuper admin 用户类型. 调用该方法的权限可以在用户角色 设置中撤销. 更多信息请参阅User roles

参数

(object/array) 待更新的LLD规则属性。

每个LLD规则必须定义itemid属性,其他属性均为可选。仅传递的属性会被更新,其余属性将保持不变。

除了lld规则外,该方法还接受以下参数。

参数 数据类型 描述
filter object 用于替换当前过滤器的LLD规则lld-规则过滤器
preprocessing array 用于替换现有预处理选项的LLD规则lld-规则预处理选项。
lld_macro_paths array 用于替换现有lld_macro_path选项的LLD规则lld-宏路径选项。
overrides array 用于替换现有覆盖选项的LLD规则lld-规则覆盖选项。

返回值

(object) 返回一个包含更新后的LLD规则ID的object, 该ID位于itemids属性下。

示例

向 LLD 规则添加过滤器

添加过滤器,使{#FSTYPE}宏的内容能够匹配 \@File systems for discovery正则表达式。

请求:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "22450",
        "filter": {
            "evaltype": 1,
            "conditions": [
                {
                    "macro": "{#FSTYPE}",
                    "value": "@File systems for discovery"
                }
            ]
        }
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "22450"
        ]
    },
    "id": 1
}

添加 LLD 宏路径

请求:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "22450",
        "lld_macro_paths": [
            {
                "lld_macro": "{#MACRO1}",
                "path": "$.json.path"
            }
        ]
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "22450"
        ]
    },
    "id": 1
}

禁用陷阱

禁用发现规则的LLD陷阱功能

请求:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "28336",
        "allow_traps": 0
    },
    "id": 36,
    "auth": "d678e0b85688ce578ff061bd29a20d3b"
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "28336"
        ]
    },
    "id": 36
}

更新LLD规则预处理选项

更新带有预处理规则"JSONPath"的LLD规则。

请求:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "44211",
        "preprocessing": [
            {
                "type": 12,
                "params": "$.path.to.json",
                "error_handler": 2,
                "error_handler_params": "5"
            }
        ]
    },
    "auth": "700ca65537074ec963db7efabda78259",
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "44211"
        ]
    },
    "id": 1
}

更新LLD规则脚本

使用不同的脚本更新LLD规则脚本,并移除先前脚本使用的不必要参数。

请求:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "23865",
        "parameters": [],
        "script": "Zabbix.Log(3, 'Log test');\nreturn 1;"
    },
    "auth": "700ca65537074ec963db7efabda78259",
    "id": 1
}

响应:

{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "23865"
        ]
    },
    "id": 1
}

来源

CDiscoveryRule::update() 位于 ui/include/classes/api/services/CDiscoveryRule.php 文件中.