discoveryrule.create

Описание

объект discoveryrule.create(объект/массив ПравилаLLD)

Этот метод позволяет создавать новые правила LLD.

Параметры

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

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

Параметр Тип Описание
filter объект Объект фильтра правила LLD для правила LLD.

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

(объект) Возвращает объект, который содержит ID созданных правил LLD под свойством itemids. Порядок возвращаемых ID совпадает с порядком переданных правил LLD.

Примеры

Создание правила LLD

Создание правила LLD с типом Zabbix агент для обнаружения примонтированных файловых систем. Обнаруженные элементы данных будут обновляться каждые 30 секунд.

Запрос:

{
           "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
       }
Copy
✔ Copied

Ответ:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "27665"
               ]
           },
           "id": 1
       }
Copy
✔ Copied

Использование фильтра

Создание правила 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
       }
Copy
✔ Copied

Ответ:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "27665"
               ]
           },
           "id": 1
       }
Copy
✔ Copied

Использование фильтрации при помощи пользовательского выражения

Создание правила 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
       }
Copy
✔ Copied

Ответ:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "27665"
               ]
           },
           "id": 1
       }
Copy
✔ Copied

Использование пользовательских полей запроса и заголовков

Создание 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",
           }
       }
Copy
✔ Copied

Ответ:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "28336"
               ]
           },
           "id": 35
       }
Copy
✔ Copied

Смотрите также

Исходный код

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

To toggle search highlight, press Ctrl+Alt+H
Have an improvement suggestion for this page? Select the text that could be improved and press Ctrl+Enter to send it to the editors.