объект discoveryrule.create(объект/массив ПравилаLLD)
Этот метод позволяет создавать новые правила LLD.
(объект/массив)
Создаваемые правила LLD.
В дополнение к стандартным свойствам правила LLD, этот метод принимает следующие параметры.
Параметр | Тип | Описание |
---|---|---|
filter | объект | Объект фильтра правила LLD для правила LLD. |
preprocessing | массив | Опции предобработки LLD правила. |
(объект)
Возвращает объект, который содержит ID созданных правил LLD под свойством itemids
. Порядок возвращаемых ID совпадает с порядком переданных правил 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 }
Ответ:
{ "jsonrpc": "2.0", "result": { "itemids": [ "27665" ] }, "id": 1 }
Создание правила 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 }
Ответ:
{ "jsonrpc": "2.0", "result": { "itemids": [ "27665" ] }, "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 }
Ответ:
{ "jsonrpc": "2.0", "result": { "itemids": [ "27665" ] }, "id": 1 }
Создание правила 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 }
Ответ:
{ "jsonrpc": "2.0", "result": { "itemids": [ "27665" ] }, "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", "id": 35, "auth": "d678e0b85688ce578ff061bd29a20d3b", } }
Ответ:
{ "jsonrpc": "2.0", "result": { "itemids": [ "28336" ] }, "id": 35 }
Запрос:
{ "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", "result": { "itemids": [ "44211" ] }, "id": 1 }
CDiscoveryRule::create() в frontends/php/include/classes/api/services/CDiscoveryRule.php.