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 правило са прилагођеним пољима и заглављима упита.

Захтев:

{
     "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 правила са претходном обрадом

Захтев:

{
     "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 правила са заменама

Захтев:


{
     "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 правило скрипте.

Захтев:

{
     "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.