discoveryrule.update

説明

object discoveryrule.update(object/array lldRules)

このメソッドは、既存のLLDルールを更新します。

このメソッドは管理者およびスーパ管理者ユーザータイプでのみ利用可能です。メソッドの呼び出し権限はユーザーロールの設定で取り消すことができます。詳細はユーザーロールを参照してください。

パラメータ

(object/array) 更新するLLDルールのプロパティ。

各LLDルールにはitemidプロパティを定義する必要があり、他のすべてのプロパティはオプションです。 渡されたプロパティのみが更新され、他のプロパティは変更されません。

標準のLLDルールプロパティに加えて、このメソッドは以下のパラメータを受け付けます。

パラメータ 説明
filter object 既存のフィルターを置き換えるLLDルールフィルター
preprocessing object/array 既存の前処理オプションを置き換えるLLDルール前処理オプション。

パラメータの動作:
- 継承されたオブジェクトの場合は読み取り専用
lld_macro_paths object/array 既存のlld_macro_pathオプションを置き換えるLLDルールのlld_macro_pathオプション。

パラメータの動作:
- 継承されたオブジェクトの場合は読み取り専用
overrides object/array 既存のオーバーライドオプションを置き換えるLLDルールのオーバーライドオプション。

パラメータの動作:
- 継承されたオブジェクトの場合は読み取り専用

戻り値

(object) itemidsプロパティの下で更新されたLLDルールのIDを含むオブジェクトを返します。

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"
                }
            ]
        }
    },
    "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"
            }
        ]
    },
    "id": 1
}

レスポンス:

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

トラッピングの無効化

ディスカバリールールのLLDトラッピングを無効にします。

リクエスト:

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

レスポンス:

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

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"
            }
        ]
    },
    "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;"
    },
    "id": 1
}

レスポンス:

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

LLD ルールの有効期間の更新

LLD ルールを更新し、検出されなくなったエンティティを 12 時間後に無効化し、7 日後に削除します。

リクエスト:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.update",
    "params": {
        "itemid": "46864",
        "lifetime_type": 0, 
        "lifetime": "7d",
        "enabled_lifetime_type": 0,
        "enabled_lifetime": "12h"
    },
    "id": 1
}

Response:

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

ソース

CDiscoveryRule::update() in ui/include/classes/api/services/CDiscoveryRule.php.