discoveryrule.create

Опис

object discoveryrule.create(object/array lldRules)

Овај метод дозвољава креирање новог LLD правила.

Овај метод је дозвољен само за Администратор-а и Супер-администратор-а. Дозволе за позивање методе могу се опозвати у подешавању улоге корисника. Погледајте User roles за више информација.

Параметри

(object/array) LLD правила за креирање.

Поред standard LLD rule properties метод прихвата следеће параметре.

Parameter Type Description
filter object LLD rule filter за LLD правило.
preprocessing object/array LLD rule preprocessing опције.
lld_macro_paths object/array LLD rule lld_macro_path options.
overrides object/array LLD rule overrides options.

Повратне вредности

(object) Враћа објекат који садржи ID-ијеве креираних LLD правила под својствомitemids. Редослед враћених ID-ијева одговара редоследу прослеђених LLD правила.

Примери

Креирање LLD правила

Креирајте LLD правило Zabbix агента да бисте открили монтиране системе датотека. Откривене ставке ће се ажурирати сваких 30 секунди.

Request:

{
            "jsonrpc": "2.0",
            "method": "discoveryrule.create",
            "params": {
            "name": "Mounted filesystem discovery",
            "key_": "vfs.fs.discovery",
            "hostid": "10197",
            "type": 0,
            "interfaceid": "112",
            "delay": "30s"
            },
            "id": 1
       }

Одговор:

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

Коришћење филтера

Креирајте LLD правило са скупом услова за филтрирање резултата. Услови ће бити груписани заједно помоћу логичког оператора "and".

Request:

{
            "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"
            }
            ]
            }
            },
            "id": 1
       }

Одговор:

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

Креирање LLD правила са макро путањама

Request:

{
            "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"
            }
            ]
            },
            "id": 1
       }

Одговор:

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

Коришћење филтера прилагођеног израза

Креирај LLD правило са филтером који ће користити прилагођени израз за процену услова. LLD правило треба да открије само објекте чија вредност макроа "{#MACRO1}" одговара и регуларном изразу "regex1" и "regex2", а вредност макроа "{#MACRO2}" одговара или "regex3" или "regex4". Идентификатори формула "A", "B", "C" и "D" су изабрани произвољно.

Request:

{
            "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"
            }
            ]
            }
            },
            "id": 1
       }

Одговор:

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

Коришћење прилагођених поља и заглавља упита

Направите LLD правило са прилагођеним пољима и заглављима упита.

Request:

{
            "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": [
            {
            "name": "mode",
            "value": "json"
            },
            {
            "name": "elements",
            "value": "2"
            }
            ],
            "headers": [
            {
            "name": "X-Type",
            "value": "api"
            },
            {
            "name": "Authorization",
            "value": "Bearer mF_A.B5f-2.1JcM"
            }
            ],
            "allow_traps": 1,
            "trapper_hosts": "127.0.0.1"
            },
            "id": 1
       }

Одговор:

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

Креирање LLD правила са претходном обрадом

Request:

{
            "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": ""
            }
            ]
            },
            "id": 1
       }

Одговор:

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

Креирање LLD правила са заменама

Request:


       {
            "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"
            }
            ]
            }
            ]
            }
            ]
            },
            "id": 1
       }

Одговор:

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

Креирајте скрипту за LLD правило

Креирајте једноставну колекцију података користећи LLD правило скрипте.

Request:

{
            "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 HttpRequest();\nreturn request.post(\"https://postman-echo.com/post\", JSON.parse(value));",
            "parameters": [{
            "name": "host",
            "value": "{HOST.CONN}"
            }],
            "timeout": "6s",
            "delay": "30s"
            },
            "id": 1
       }

Одговор:

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

Креирајте LLD правило са одређеним временским периодом за онемогућавање и без брисања

Направите LLD правило са прилагођеним временским периодом за онемогућавање ентитета после више се не открива, са поставком да никада неће бити обрисано.

Request:

{
            "jsonrpc": "2.0",
            "method": "discoveryrule.create",
            "params": {
            "name": "lld disable after 1h",
            "key_": "lld.disable",
            "hostid": "10001",
            "type": 2,
            "lifetime_type": 1,
            "enabled_lifetime_type": 0,
             "enabled_lifetime": "1h"
            },
            "id": 1
       }

Одговор:

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

Погледајте такође

Извор

CDiscoveryRule::create() у ui/include/classes/api/services/CDashboard.php.