This is a translation of the original English documentation page. Help us make it better.

discoveryrule.get

Опис

integer/array discoveryrule.get(object parameters)

Метод дозволяє отримати правила LLD за заданими параметрами.

Цей спосіб доступний користувачам будь-якого типу. Дозволи на виклик методу можна скасувати в налаштуваннях ролі користувача. Див. Ролі користувача для отримання додаткової інформації.

Параметри

(object) Параметри, що визначають бажаний результат.

Метод підтримує такі параметри.

Параметр Тип Опис
itemids рядок/масив Повертати лише правила LLD із заданими ідентифікаторами.
groupids string/array Повертати лише правила LLD, які належать хостам із заданих груп.
hostids рядок/масив Повертає лише правила LLD, які належать вказаним хостам.
inherited boolean Якщо встановлено значення true повертає лише правила LLD, успадковані з шаблону.
interfaceids string/array Повернути лише правила LLD, які використовують задані інтерфейси хоста.
monitored boolean Якщо встановлено значення true повертає лише ввімкнені правила LLD, які належать контрольованим хостам.
templated boolean Якщо встановлено значення true, повертати лише правила LLD, які належать до шаблонів.
templateids рядок/масив Повертати лише правила LLD, які належать до вказаних шаблонів.
selectFilter запит Повернути властивість filter із даними фільтра, який використовується правилом LLD.
selectGraphs запит Повертає властивість graphs із прототипами графіків, які належать до правила LLD.

Підтримує count.
selectHostPrototypes запит Повертає властивість hostPrototypes із прототипами хостів, які належать до правила LLD.

Підтримує count.
selectHosts запит Повернути властивість hosts із масивом хостів, до яких належить правило LLD.
selectItems запит Повертає властивість items із прототипами елементів, які належать до правила LLD.

Підтримує count.
selectTriggers запит Повертає властивість triggers із прототипами тригерів, які належать до правила LLD.

Підтримує count.
selectLLDMacroPaths запит Повернути властивість lld_macro_paths зі списком макросів LLD і шляхів до значень, призначених кожному відповідному макросу.
selectPreprocessing query Повертає властивість попередньої обробки з параметрами попередньої обробки правила LLD.

Вона має такі властивості:
type - (string) Тип параметра попередньої обробки:
5 - Зіставлення регулярного виразу;
11 - XML XPath;
12 - JSONPath;
15 - Не відповідає регулярному виразу;
16 - Перевірте наявність помилок у JSON;
17 - Перевірте наявність помилок у форматі XML;
20 - Відкинути без змін із серцевим ритмом;
23 - Prometheus до JSON;
24 - CSV до JSON;
25 - Замінити;
27 - XML до JSON.

параметри - (рядок) Додаткові параметри, які використовуються параметром попередньої обробки. Кілька параметрів розділені символом LF (\n).
error_handler - (рядок) Тип дії, який використовується у випадку помилки етапу попередньої обробки:
0 - повідомлення про помилку встановлено сервером Zabbix;<br >1 - Відкинути значення;
2 - Установити користувацьке значення;
3 - Установити власне повідомлення про помилку.

error_handler_params - (рядок) Параметри обробника помилок.
selectOverrides запит Повернути властивість lld_rule_overrides зі списком замінених фільтрів, умов і операцій, які виконуються над об’єктами-прототипами.
фільтр об'єкт Повертає лише ті результати, які точно відповідають заданому фільтру.

Приймає масив, де ключі є іменами властивостей, а значення є або одним значенням, або масивом значень для порівняння.

Підтримує додаткові фільтри:
host - технічна назва хоста, до якого належить правило LLD.
limitSelects ціле число Обмежує кількість записів, що повертаються підвиборами.

Застосовується до таких підвиборів:
selctItems;
selectGraphs;
selectTriggers.
sortfield string/array Відсортуйте результат за заданими властивостями.

Можливі значення: itemid, name, key_, delay, type і status.
countOutput boolean Ці параметри, які є спільними для всіх методів get, детально описані в довідковому коментарі.
редагований логічний
excludeSearch boolean
ліміт ціле
вивід запит
preservekeys boolean
пошук об'єкт
searchByAny логічний
увімкнено знаки підстановки логічний
порядок сортування рядок/масив
почати пошук логічний

Повернуті значення

(integer/array) Повертає або:

  • масив об'єктів;
  • кількість отриманих об'єктів, якщо використовувався параметр countOutput.

Приклади

Отримання правил виявлення з хосту

Отримати всі правила виявлення для певного ідентифікатора хоста.

Запит:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.get",
           "params": {
               "output": "extend",
               "hostids": "10202"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Відповідь:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "itemid": "27425",
                   "type": "0",
                   "snmp_oid": "",
                   "hostid": "10202",
                   "name": "Network interface discovery",
                   "key_": "net.if.discovery",
                   "delay": "1h",
                   "status": "0",
                   "trapper_hosts": "",
                   "templateid": "22444",
                   "valuemapid": "0",
                   "params": "",
                   "ipmi_sensor": "",
                   "authtype": "0",
                   "username": "",
                   "password": "",
                   "publickey": "",
                   "privatekey": "",
                   "interfaceid": "119",
                   "description": "Discovery of network interfaces as defined in global regular expression \"Network interfaces for discovery\".",
                   "lifetime": "30d",
                   "jmx_endpoint": "",
                   "master_itemid": "0",
                   "timeout": "3s",
                   "url": "",
                   "query_fields": [],
                   "posts": "",
                   "status_codes": "200",
                   "follow_redirects": "1",
                   "post_type": "0",
                   "http_proxy": "",
                   "headers": [],
                   "retrieve_mode": "0",
                   "request_method": "0",
                   "ssl_cert_file": "",
                   "ssl_key_file": "",
                   "ssl_key_password": "",
                   "verify_peer": "0",
                   "verify_host": "0",
                   "allow_traps": "0",
                   "uuid": "",
                   "state": "0",
                   "error": "",
                   "parameters": []
               },
               {
                   "itemid": "27426",
                   "type": "0",
                   "snmp_oid": "",
                   "hostid": "10202",
                   "name": "Mounted filesystem discovery",
                   "key_": "vfs.fs.discovery",
                   "delay": "1h",
                   "status": "0",
                   "trapper_hosts": "",
                   "templateid": "22450",
                   "valuemapid": "0",
                   "params": "",
                   "ipmi_sensor": "",
                   "authtype": "0",
                   "username": "",
                   "password": "",
                   "publickey": "",
                   "privatekey": "",
                   "interfaceid": "119",
                   "description": "Discovery of file systems of different types as defined in global regular expression \"File systems for discovery\".",
                   "lifetime": "30d",
                   "jmx_endpoint": "",
                   "master_itemid": "0",
                   "timeout": "3s",
                   "url": "",
                   "query_fields": [],
                   "posts": "",
                   "status_codes": "200",
                   "follow_redirects": "1",
                   "post_type": "0",
                   "http_proxy": "",
                   "headers": [],
                   "retrieve_mode": "0",
                   "request_method": "0",
                   "ssl_cert_file": "",
                   "ssl_key_file": "",
                   "ssl_key_password": "",
                   "verify_peer": "0",
                   "verify_host": "0",
                   "allow_traps": "0",
                   "uuid": "",
                   "state": "0",
                   "error": "",
                   "parameters": []
               }
           ],
           "id": 1
       }

Отримання умов фільтра

Отримайте ім’я правила LLD «24681» та його умови фільтрації. Фільтр використовує тип оцінки "and", тому властивість formula порожня, а eval_formula генерується автоматично.

Запит:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.get",
           "params": {
               "output": ["name"],
               "selectFilter": "extend",
               "itemids": ["24681"]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Відповідь:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "itemid": "24681",
                   "name": "Filtered LLD rule",
                   "filter": {
                       "evaltype": "1",
                       "formula": "",
                       "conditions": [
                           {
                               "macro": "{#MACRO1}",
                               "value": "@regex1",
                               "operator": "8",
                               "formulaid": "A"
                           },
                           {
                               "macro": "{#MACRO2}",
                               "value": "@regex2",
                               "operator": "9",
                               "formulaid": "B"
                           },
                           {
                               "macro": "{#MACRO3}",
                               "value": "",
                               "operator": "12",
                               "formulaid": "C"
                           },
                           {
                               "macro": "{#MACRO4}",
                               "value": "",
                               "operator": "13",
                               "formulaid": "D"
                           }
                       ],
                       "eval_formula": "A and B and C and D"
                   }
               }
           ],
           "id": 1
       }

Отримати правило LLD за URL-адресою

Отримати правило LLD для хоста за значенням поля URL-адреси правила. Підтримується лише точний збіг рядка URL-адреси, визначеного для правила LLD.

Запит:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.get",
           "params": {
               "hostids": "10257",
               "filter": {
                   "type": 19,
                   "url": "http://127.0.0.1/discoverer.php"
               }
           },
           "id": 39,
           "auth": "d678e0b85688ce578ff061bd29a20d3b"
       }

Відповідь:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "itemid": "28336",
                   "type": "19",
                   "snmp_oid": "",
                   "hostid": "10257",
                   "name": "API HTTP agent",
                   "key_": "api_discovery_rule",
                   "delay": "5s",
                   "status": "0",
                   "trapper_hosts": "",
                   "templateid": "0",
                   "valuemapid": "0",
                   "params": "",
                   "ipmi_sensor": "",
                   "authtype": "0",
                   "username": "",
                   "password": "",
                   "publickey": "",
                   "privatekey": "",
                   "interfaceid": "5",
                   "description": "",
                   "lifetime": "30d",
                   "jmx_endpoint": "",
                   "master_itemid": "0",
                   "timeout": "3s",
                   "url": "http://127.0.0.1/discoverer.php",
                   "query_fields": [
                       {
                           "mode": "json"
                       },
                       {
                           "elements": "2"
                       }
                   ],
                   "posts": "",
                   "status_codes": "200",
                   "follow_redirects": "1",
                   "post_type": "0",
                   "http_proxy": "",
                   "headers": {
                       "X-Type": "api",
                       "Authorization": "Bearer mF_A.B5f-2.1JcM"
                   },
                   "retrieve_mode": "0",
                   "request_method": "1",
                   "ssl_cert_file": "",
                   "ssl_key_file": "",
                   "ssl_key_password": "",
                   "verify_peer": "0",
                   "verify_host": "0",
                   "allow_traps": "0",
                   "uuid": "",
                   "state": "0",
                   "error": "",
                   "parameters": []
               }
           ],
           "id": 39
       }

Отримати правило LLD із перевизначеннями

Отримайте одне правило LLD, яке має різні налаштування заміни.

Запит:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.get",
           "params": {
               "output": ["name"],
               "itemids": "30980",
               "selectOverrides": ["name", "step", "stop", "filter", "operations"]
           },
           "id": 39,
           "auth": "d678e0b85688ce578ff061bd29a20d3b"
       }

Відповідь:

{
           "jsonrpc": "2.0",
           "result": [
               {
                   "name": "Discover database host",
                   "overrides": [
                       {
                           "name": "Discover MySQL host",
                           "step": "1",
                           "stop": "1",
                           "filter": {
                               "evaltype": "2",
                               "formula": "",
                               "conditions": [
                                   {
                                       "macro": "{#UNIT.NAME}",
                                       "operator": "8",
                                       "value": "^mysqld\\.service$",
                                       "formulaid": "A"
                                   },
                                   {
                                       "macro": "{#UNIT.NAME}",
                                       "operator": "8",
                                       "value": "^mariadb\\.service$",
                                       "formulaid": "B"
                                   }
                               ],
                               "eval_formula": "A or B"
                           },
                           "operations": [
                               {
                                   "operationobject": "3",
                                   "operator": "2",
                                   "value": "Database host",
                                   "opstatus": {
                                       "status": "0"
                                   },
                                   "optag": [
                                       {
                                           "tag": "Database",
                                           "value": "MySQL"
                                       }
                                   ],
                                   "optemplate": [
                                       {
                                           "templateid": "10170"
                                       }
                                   ]
                               }
                           ]
                       },
                       {
                           "name": "Discover PostgreSQL host",
                           "step": "2",
                           "stop": "1",
                           "filter": {
                               "evaltype": "0",
                               "formula": "",
                               "conditions": [
                                   {
                                       "macro": "{#UNIT.NAME}",
                                       "operator": "8",
                                       "value": "^postgresql\\.service$",
                                       "formulaid": "A"
                                   }
                               ],
                               "eval_formula": "A"
                           },
                           "operations": [
                               {
                                   "operationobject": "3",
                                   "operator": "2",
                                   "value": "Database host",
                                   "opstatus": {
                                       "status": "0"
                                   },
                                   "optag": [
                                       {
                                           "tag": "Database",
                                           "value": "PostgreSQL"
                                       }
                                   ],
                                   "optemplate": [
                                       {
                                           "templateid": "10263"
                                       }
                                   ]
                               }
                           ]
                       }
                   ]
               }
           ],
           "id": 39
       }

Дивись також

Джерело

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