discoveryrule.update

Описание

object discoveryrule.update(объект/массив lldRules)

Этот метод позволяет обновлять существующие правила LLD.

Этот метод доступен только пользователям с типом доступа Администратор и Супер-администратор. Разрешения на вызов метода можно отозвать в настройках ролей пользователя. Дополнительную информацию см. в разделе Роли пользователей.

Параметры

(object/array) свойства правила LLD, которые должны быть обновлены.

Свойство itemid должно быть определено для каждого правила LLD, все остальные свойства являются необязательными. Будут обновлены только переданные свойства, все остальные останутся без изменений.

В дополнение к стандартным свойствам правила LLD, метод принимает следующие параметры.

Параметр Тип Описание
filter object Фильтр правила LLD для замены существующего фильтра.
preprocessing object/array Параметры предобработки правила LLD для замены существующих параметров предобработки.

Поведение параметра:
- только для чтения для унаследованных объектов
lld_macro_paths object/array Параметры lld_macro_path правила LLD для замены существующих параметров lld_macro_path.

Поведение параметра:
- только для чтения для унаследованных объектов
overrides object/array Параметры переопределений правила LLD для замены существующих параметров переопределений.

Поведение параметра:
- только для чтения для унаследованных объектов

Возвращаемые значения

(объект) Возвращает объект, который содержит ID обновленных правил LLD, указанных в свойстве 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"
                }
            ]
        }
    },
    "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

Обновите правило LLD с правилом предобработки “JSONPath”.

Запрос:

{
    "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
}

Ответ:

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

Источник

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