Object Discoveryrule.create(object/array lldRules)
Цей метод дозволяє створювати нові правила LLD.
Цей метод доступний лише для користувачів типу Admin і Super admin. Дозволи на виклик методу можна скасувати в налаштуваннях ролі користувача. Див. Ролі користувача для отримання додаткової інформації.
(object/array) правила LLD для створення.
На додаток до [стандартних властивостей правила LLD] (object#lld_rule), метод приймає наступні параметри.
| Параметр | Тип | Опис |
|---|---|---|
| фільтр | об’єкт | правило LLD фільтр об’єкт для правила LLD. |
| попередня обробка | масив | Параметри [попередньої обробки] правила LLD (/manual/api/reference/discoveryrule/object#lld_rule_preprocessing). |
| lld_macro_paths | масив | Параметри правила LLD lld_macro_path. |
| замінює | масив | Параметри правила LLD замінює. |
(object) Повертає об’єкт, що містить ідентифікатори створених правил LLD у властивості itemids. Порядок повернених ідентифікаторів відповідає порядку переданих правил 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 }Відповідь:
Створіть правило LLD із набором умов для фільтрації результатів. Умови будуть згруповані разом за допомогою логічного оператора "and".
Запит:
{ "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", "operator": "9" }, { "macro": "{#MACRO3}", "value": "", "operator": "12" }, { "macro": "{#MACRO4}", "value": "", "operator": "13" } ] } }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 1 }Відповідь:
Запит:
{ "jsonrpc": "2.0", "method": "discoveryrule.create", "params": { "name": "LLD rule with LLD macro paths", "key_": "lld", "hostid": "10116", "type": 0, "interfaceid": "13", "delay": "30s", "lld_macro_paths": [ { "lld_macro": "{#MACRO1}", "path": "$.path.1" }, { "lld_macro": "{#MACRO2}", "path": "$.path.2" } ] }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 1 }Відповідь:
Створіть правило LLD із фільтром, який використовуватиме спеціальний вираз для оцінки умов. Правило LLD має виявляти лише об’єкти, значення макросу «{#MACRO1}» якого відповідає регулярним виразам «regex1» і «regex2», а значення «{#MACRO2}» відповідає «regex3» або «regex4». ". Ідентифікатори формул «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 }Відповідь:
Створіть правило 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" }, "auth": "d678e0b85688ce578ff061bd29a20d3b", "id": 1 }Відповідь:
Запит:
{ "jsonrpc": "2.0", "method": "discoveryrule.create", "params": { "name": "Discovery rule with preprocessing", "key_": "lld.with.preprocessing", "hostid": "10001", "ruleid": "27665", "type": 0, "value_type": 3, "delay": "60s", "interfaceid": "1155", "preprocessing": [ { "type": 20, "params": "20", "error_handler": 0, "error_handler_params": "" } ] }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 1 }Відповідь:
Запит:
{ "jsonrpc": "2.0", "method": "discoveryrule.create", "params": { "name": "Discover database host", "key_": "lld.with.overrides", "hostid": "10001", "type": 0, "value_type": 3, "delay": "60s", "interfaceid": "1155", "overrides": [ { "name": "Discover MySQL host", "step": "1", "stop": "1", "filter": { "evaltype": "2", "conditions": [ { "macro": "{#UNIT.NAME}", "operator": "8", "value": "^mysqld\\.service$" }, { "macro": "{#UNIT.NAME}", "operator": "8", "value": "^mariadb\\.service$" } ] }, "operations": [ { "operationobject": "3", "operator": "2", "value": "Database host", "opstatus": { "status": "0" }, "optemplate": [ { "templateid": "10170" } ], "optag": [ { "tag": "Database", "value": "MySQL" } ] } ] }, { "name": "Discover PostgreSQL host", "step": "2", "stop": "1", "filter": { "evaltype": "0", "conditions": [ { "macro": "{#UNIT.NAME}", "operator": "8", "value": "^postgresql\\.service$" } ] }, "operations": [ { "operationobject": "3", "operator": "2", "value": "Database host", "opstatus": { "status": "0" }, "optemplate": [ { "templateid": "10263" } ], "optag": [ { "tag": "Database", "value": "PostgreSQL" } ] } ] } ] }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 1 }Відповідь:
Створіть простий збір даних за допомогою правила сценарію LLD.
Запит:
{ "jsonrpc": "2.0", "method": "discoveryrule.create", "params": { "name": "Script example", "key_": "custom.script.lldrule", "hostid": "12345", "type": 21, "value_type": 4, "params": "var request = new CurlHttpRequest();\nreturn request.Post(\"https://postman-echo.com/post\", JSON.parse(value));", "parameters": [ { "name": "host", "value": "{HOST.CONN}" } ], "timeout": "6s", "delay": "30s" }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 2 }Відповідь:
CDiscoveryRule::create() в ui/include/classes/api/services/CDiscoveryRule.php.