Это перевод страницы документации с английского языка. Помогите нам сделать его лучше.

discoveryrule.update

Описание

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

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

Этот метод доступен для пользователей Admin и Super admin. Разрешения на вызов метода могут быть отозваны в настройках роли пользователя. Смотрите Роли пользователя для получения дополнительной информации.

Параметры

(объект/массив) Свойства правил LLD, которые будут обновлены.

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

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

Параметр Тип Описание
filter объект Объект фильтра правила 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"
                       }
                   ]
               }
           },
           "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
       }

Исходный код

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

Updating LLD rule preprocessing options

Update an LLD rule with preprocessing rule “JSONPath”.

Request:

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

Response:

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

Обновление скрипта

Обновить скрипт 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.