object discoveryrule.create(object/array lldRules)
This method allows to create new LLD rules.
(object/array)
LLD rules to create.
Additionally to the standard LLD rule properties, the method accepts the following parameters.
Parameter | Type | Description |
---|---|---|
filter | object | LLD rule filter object for the LLD rule. |
(object)
Returns an object containing the IDs of the created LLD rules under the itemids
property. The order of the returned IDs matches the order of the passed LLD rules.
Create a Zabbix agent LLD rule to discover mounted file systems. Discovered items will be updated every 30 seconds.
Request:
{ "jsonrpc": "2.0", "method": "discoveryrule.create", "params": { "name": "Mounted filesystem discovery", "key_": "vfs.fs.discovery", "hostid": "10197", "type": "0", "interfaceid": "112", "delay": 30 }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 1 }
Response:
{ "jsonrpc": "2.0", "result": { "itemids": [ "27665" ] }, "id": 1 }
Create an LLD rule with a set of conditions to filter the results by. The conditions will be grouped together using the logical “and” operator.
Request:
{ "jsonrpc": "2.0", "method": "discoveryrule.create", "params": { "name": "Filtered LLD rule", "key_": "lld", "hostid": "10116", "type": "0", "interfaceid": "13", "delay": 30, "filter": { "evaltype": 1, "conditions": [ { "macro": "{#MACRO1}", "value": "@regex1" }, { "macro": "{#MACRO2}", "value": "@regex2" }, { "macro": "{#MACRO3}", "value": "@regex3" } ] } }, "auth": "038e1d7b1735c6a5436ee9eae095879e", "id": 1 }
Response:
{ "jsonrpc": "2.0", "result": { "itemids": [ "27665" ] }, "id": 1 }
Create an LLD rule with a filter that will use a custom expression to evaluate the conditions. The LLD rule must only discover objects the “{#MACRO1}” macro value of which matches both regular expression “regex1” and “regex2”, and the value of “{#MACRO2}” matches either “regex3” or “regex4”. The formula IDs “A”, “B”, “C” and “D” have been chosen arbitrarily.
Request:
{ "jsonrpc": "2.0", "method": "discoveryrule.create", "params": { "name": "Filtered LLD rule", "key_": "lld", "hostid": "10116", "type": "0", "interfaceid": "13", "delay": 30, "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 }
Response:
{ "jsonrpc": "2.0", "result": { "itemids": [ "27665" ] }, "id": 1 }
CDiscoveryRule::create() in frontends/php/include/classes/api/services/CDiscoveryRule.php.