integer/array discoveryrule.get(object parameters)
The method allows to retrieve LLD rules according to the given parameters.
(object)
Parameters defining the desired output.
The method supports the following parameters.
Parameter | Type | Description |
---|---|---|
itemids | string/array | Return only LLD rules with the given IDs. |
groupids | string/array | Return only LLD rules that belong to the hosts from the given groups. |
hostids | string/array | Return only LLD rules that belong to the given hosts. |
inherited | boolean | If set to true return only LLD rules inherited from a template. |
interfaceids | string/array | Return only LLD rules use the given host interfaces. |
monitored | boolean | If set to true return only enabled LLD rules that belong to monitored hosts. |
templated | boolean | If set to true return only LLD rules that belong to templates. |
templateids | string/array | Return only LLD rules that belong to the given templates. |
selectFilter | query | Return a filter property with data of the filter used by the LLD rule. |
selectGraphs | query | Returns a graphs property with graph prototypes that belong to the LLD rule.Supports count . |
selectHostPrototypes | query | Return a hostPrototypes property with host prototypes that belong to the LLD rule.Supports count . |
selectHosts | query | Return a hosts property with an array of hosts that the LLD rule belongs to. |
selectItems | query | Return an items property with item prototypes that belong to the LLD rule. Supports count . |
selectTriggers | query | Return a triggers property with trigger prototypes that belong to the LLD rule.Supports count . |
selectApplicationPrototypes | query | Return an applicationPrototypes property with application prototypes that belong to all item prototypes that belong to this LLD rule. |
selectLLDMacroPaths | query | Return an lld_macro_paths property with a list of LLD macros and paths to values assigned to each corresponding macro. |
selectPreprocessing | query | Return a preprocessing property with LLD rule preprocessing options. It has the following properties: type - (string) The preprocessing option type: 5 - Regular expression matching; 11 - XML XPath; 12 - JSONPath; 15 - Does not match regular expression; 16 - Check for error in JSON; 17 - Check for error in XML; 20 - Discard unchanged with heartbeat; 23 - Prometheus to JSON; 24 - CSV to JSON; 25 - Replace; 27 - XML to JSON. params - (string) Additional parameters used by preprocessing option. Multiple parameters are separated by LF (\n) character. error_handler - (string) Action type used in case of preprocessing step failure: 0 - Error message is set by Zabbix server; 1 - Discard value; 2 - Set custom value; 3 - Set custom error message. error_handler_params - (string) Error handler parameters. |
selectOverrides | query | Return an lld_rule_overrides property with a list of override filters, conditions and operations that are performed on prototype objects. |
filter | object | Return only those results that exactly match the given filter. Accepts an array, where the keys are property names, and the values are either a single value or an array of values to match against. Supports additional filters: host - technical name of the host that the LLD rule belongs to. |
limitSelects | integer | Limits the number of records returned by subselects. Applies to the following subselects: selctItems ; selectGraphs ; selectTriggers . |
sortfield | string/array | Sort the result by the given properties. Possible values are: itemid , name , key_ , delay , type and status . |
countOutput | boolean | These parameters being common for all get methods are described in detail in the reference commentary. |
editable | boolean | |
excludeSearch | boolean | |
limit | integer | |
output | query | |
preservekeys | boolean | |
search | object | |
searchByAny | boolean | |
searchWildcardsEnabled | boolean | |
sortorder | string/array | |
startSearch | boolean |
(integer/array)
Returns either:
countOutput
parameter has been used.Retrieve all discovery rules from host “10202”.
Request:
{ "jsonrpc": "2.0", "method": "discoveryrule.get", "params": { "output": "extend", "hostids": "10202" }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 1 }
Response:
{ "jsonrpc": "2.0", "result": [ { "itemid": "27425", "type": "0", "snmp_oid": "", "hostid": "10202", "name": "Network interface discovery", "key_": "net.if.discovery", "delay": "1h", "state": "0", "status": "0", "trapper_hosts": "", "error": "", "templateid": "22444", "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", "parameters": [] }, { "itemid": "27426", "type": "0", "snmp_oid": "", "hostid": "10202", "name": "Mounted filesystem discovery", "key_": "vfs.fs.discovery", "delay": "1h", "state": "0", "status": "0", "trapper_hosts": "", "error": "", "templateid": "22450", "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", "parameters": [] } ], "id": 1 }
Retrieve the name of the LLD rule “24681” and its filter conditions. The filter uses the “and” evaluation type, so the formula
property is empty and eval_formula
is generated automatically.
Request:
{ "jsonrpc": "2.0", "method": "discoveryrule.get", "params": { "output": [ "name" ], "selectFilter": "extend", "itemids": ["24681"] }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 1 }
Response:
{ "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 }
Retrieve LLD rule for host by rule URL field value. Only exact match of URL string defined for LLD rule is supported.
Request:
{ "jsonrpc": "2.0", "method": "discoveryrule.get", "params": { "hostids": "10257", "filter": { "type": "19", "url": "http://127.0.0.1/discoverer.php" } }, "id": 39, "auth": "d678e0b85688ce578ff061bd29a20d3b" }
Response:
{ "jsonrpc": "2.0", "result": [ { "itemid": "28336", "type": "19", "snmp_oid": "", "hostid": "10257", "name": "API HTTP agent", "key_": "api_discovery_rule", "delay": "5s", "history": "90d", "trends": "0", "status": "0", "value_type": "4", "trapper_hosts": "", "units": "", "error": "", "logtimefmt": "", "templateid": "0", "valuemapid": "0", "params": "", "ipmi_sensor": "", "authtype": "0", "username": "", "password": "", "publickey": "", "privatekey": "", "flags": "1", "interfaceid": "5", "description": "", "inventory_link": "0", "lifetime": "30d", "state": "0", "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", "parameters": [] } ], "id": 39 }
Retrieve one LLD rule that has various override settings.
Request:
{ "jsonrpc": "2.0", "method": "discoveryrule.get", "params": { "output": ["name"], "itemids": "30980", "selectOverrides": ["name", "step", "stop", "filter", "operations"] }, "id": 39, "auth": "d678e0b85688ce578ff061bd29a20d3b" }
Response:
{ "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() in ui/include/classes/api/services/CDiscoveryRule.php.