The following objects are directly related to the discoveryrule
API.
The low-level discovery rule object has the following properties.
Property | Type | Description |
---|---|---|
itemid | string | (readonly) ID of the LLD rule. |
delay (required) |
string | Update interval of the LLD rule. Accepts seconds or time unit with suffix and with or without one or more custom intervals that consist of either flexible intervals and scheduling intervals as serialized strings. Also accepts user macros. Flexible intervals could be written as two macros separated by a forward slash. Intervals are separated by a semicolon. Optional for Zabbix trapper, dependent items and for Zabbix agent (active) with mqtt.get key. |
hostid (required) |
string | ID of the host that the LLD rule belongs to. |
interfaceid (required) |
string | ID of the LLD rule's host interface. Used only for host LLD rules. Not required for Zabbix agent (active), Zabbix internal, Zabbix trapper, dependent, database monitor and script LLD rules. Optional for HTTP agent LLD rules. |
key_ (required) |
string | LLD rule key. |
name (required) |
string | Name of the LLD rule. |
type (required) |
integer | Type of the LLD rule. Possible values: 0 - Zabbix agent; 2 - Zabbix trapper; 3 - simple check; 5 - Zabbix internal; 7 - Zabbix agent (active); 10 - external check; 11 - database monitor; 12 - IPMI agent; 13 - SSH agent; 14 - TELNET agent; 16 - JMX agent; 18 - Dependent item; 19 - HTTP agent; 20 - SNMP agent; 21 - Script. |
url (required) |
string | URL string, required for HTTP agent LLD rule. Supports user macros, {HOST.IP}, {HOST.CONN}, {HOST.DNS}, {HOST.HOST}, {HOST.NAME}, {ITEM.ID}, {ITEM.KEY}. |
allow_traps | integer | HTTP agent LLD rule field. Allow to populate value as in trapper item type also. 0 - (default) Do not allow to accept incoming data. 1 - Allow to accept incoming data. |
authtype | integer | Used only by SSH agent or HTTP agent LLD rules. SSH agent authentication method possible values: 0 - (default) password; 1 - public key. HTTP agent authentication method possible values: 0 - (default) none 1 - basic 2 - NTLM |
description | string | Description of the LLD rule. |
error | string | (readonly) Error text if there are problems updating the LLD rule. |
follow_redirects | integer | HTTP agent LLD rule field. Follow response redirects while pooling data. 0 - Do not follow redirects. 1 - (default) Follow redirects. |
headers | object | HTTP agent LLD rule field. Object with HTTP(S) request headers, where header name is used as key and header value as value. Example: { "User-Agent": "Zabbix" } |
http_proxy | string | HTTP agent LLD rule field. HTTP(S) proxy connection string. |
ipmi_sensor | string | IPMI sensor. Used only by IPMI LLD rules. |
jmx_endpoint | string | JMX agent custom connection string. Default value: service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi |
lifetime | string | Time period after which items that are no longer discovered will be deleted. Accepts seconds, time unit with suffix and user macro. Default: 30d . |
master_itemid | integer | Master item ID. Recursion up to 3 dependent items and maximum count of dependent items equal to 999 are allowed. Discovery rule cannot be master item for another discovery rule. Required for Dependent item. |
output_format | integer | HTTP agent LLD rule field. Should response be converted to JSON. 0 - (default) Store raw. 1 - Convert to JSON. |
params | string | Additional parameters depending on the type of the LLD rule: - executed script for SSH and Telnet LLD rules; - SQL query for database monitor LLD rules; - formula for calculated LLD rules. |
parameters | array | Additional parameters for script type LLD rule. Array of objects with 'name' and 'value' properties, where name must be unique. |
password | string | Password for authentication. Used by simple check, SSH, Telnet, database monitor, JMX and HTTP agent LLD rules. |
post_type | integer | HTTP agent LLD rule field. Type of post data body stored in posts property. 0 - (default) Raw data. 2 - JSON data. 3 - XML data. |
posts | string | HTTP agent LLD rule field. HTTP(S) request body data. Used with post_type. |
privatekey | string | Name of the private key file. |
publickey | string | Name of the public key file. |
query_fields | array | HTTP agent LLD rule field. Query parameters. Array of objects with 'key':'value' pairs, where value can be empty string. |
request_method | integer | HTTP agent LLD rule field. Type of request method. 0 - (default) GET 1 - POST 2 - PUT 3 - HEAD |
retrieve_mode | integer | HTTP agent LLD rule field. What part of response should be stored. 0 - (default) Body. 1 - Headers. 2 - Both body and headers will be stored. For request_method HEAD only 1 is allowed value. |
snmp_oid | string | SNMP OID. |
ssl_cert_file | string | HTTP agent LLD rule field. Public SSL Key file path. |
ssl_key_file | string | HTTP agent LLD rule field. Private SSL Key file path. |
ssl_key_password | string | HTTP agent LLD rule field. Password for SSL Key file. |
state | integer | (readonly) State of the LLD rule. Possible values: 0 - (default) normal; 1 - not supported. |
status | integer | Status of the LLD rule. Possible values: 0 - (default) enabled LLD rule; 1 - disabled LLD rule. |
status_codes | string | HTTP agent LLD rule field. Ranges of required HTTP status codes separated by commas. Also supports user macros as part of comma separated list. Example: 200,200-{$M},{$M},200-400 |
templateid | string | (readonly) ID of the parent template LLD rule. |
timeout | string | Item data polling request timeout. Used for HTTP agent and script LLD rules. Supports user macros. default: 3s maximum value: 60s |
trapper_hosts | string | Allowed hosts. Used by trapper LLD rules or HTTP agent LLD rules. |
username | string | Username for authentication. Used by simple check, SSH, Telnet, database monitor, JMX and HTTP agent LLD rules. Required by SSH and Telnet LLD rules. |
uuid | string | Universal unique identifier, used for linking imported LLD rules to already existing ones. Used only for LLD rules on templates. Auto-generated, if not given. |
verify_host | integer | HTTP agent LLD rule field. Validate host name in URL is in Common Name field or a Subject Alternate Name field of host certificate. 0 - (default) Do not validate. 1 - Validate. |
verify_peer | integer | HTTP agent LLD rule field. Validate is host certificate authentic. 0 - (default) Do not validate. 1 - Validate. |
Note that for some methods (update, delete) the required/optional parameter combination is different.
The LLD rule filter object defines a set of conditions that can be used to filter discovered objects. It has the following properties:
Property | Type | Description |
---|---|---|
conditions (required) |
array | Set of filter conditions to use for filtering results. |
evaltype (required) |
integer | Filter condition evaluation method. Possible values: 0 - and/or; 1 - and; 2 - or; 3 - custom expression. |
eval_formula | string | (readonly) Generated expression that will be used for evaluating filter conditions. The expression contains IDs that reference specific filter conditions by its formulaid . The value of eval_formula is equal to the value of formula for filters with a custom expression. |
formula | string | User-defined expression to be used for evaluating conditions of filters with a custom expression. The expression must contain IDs that reference specific filter conditions by its formulaid . The IDs used in the expression must exactly match the ones defined in the filter conditions: no condition can remain unused or omitted.Required for custom expression filters. |
The LLD rule filter condition object defines a separate check to perform on the value of an LLD macro. It has the following properties:
Property | Type | Description |
---|---|---|
macro (required) |
string | LLD macro to perform the check on. |
value (required) |
string | Value to compare with. |
formulaid | string | Arbitrary unique ID that is used to reference the condition from a custom expression. Can only contain capital-case letters. The ID must be defined by the user when modifying filter conditions, but will be generated anew when requesting them afterward. |
operator | integer | Condition operator. Possible values: 8 - (default) matches regular expression; 9 - does not match regular expression; 12 - exists; 13 - does not exist. |
To better understand how to use filters with various types of expressions, see examples on the discoveryrule.get and discoveryrule.create method pages.
The LLD macro path has the following properties:
Property | Type | Description |
---|---|---|
lld_macro (required) |
string | LLD macro. |
path (required) |
string | Selector for value which will be assigned to corresponding macro. |
The LLD rule preprocessing object has the following properties.
Property | Type | Description |
---|---|---|
type (required) |
integer | The preprocessing option type. Possible values: 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 (required) |
string | Additional parameters used by preprocessing option. Multiple parameters are separated by LF (\n) character. |
error_handler (required) |
integer | Action type used in case of preprocessing step failure. Possible values: 0 - Error message is set by Zabbix server; 1 - Discard value; 2 - Set custom value; 3 - Set custom error message. |
error_handler_params (required) |
string | Error handler parameters. Used with error_handler .Must be empty, if error_handler is 0 or 1.Can be empty if, error_handler is 2.Cannot be empty, if error_handler is 3. |
The following parameters and error handlers are supported for each preprocessing type.
Preprocessing type | Name | Parameter 1 | Parameter 2 | Parameter 3 | Supported error handlers |
---|---|---|---|---|---|
5 | Regular expression | pattern1 | output2 | 0, 1, 2, 3 | |
11 | XML XPath | path3 | 0, 1, 2, 3 | ||
12 | JSONPath | path3 | 0, 1, 2, 3 | ||
15 | Does not match regular expression | pattern1 | 0, 1, 2, 3 | ||
16 | Check for error in JSON | path3 | 0, 1, 2, 3 | ||
17 | Check for error in XML | path3 | 0, 1, 2, 3 | ||
20 | Discard unchanged with heartbeat | seconds4, 5, 6 | |||
23 | Prometheus to JSON | pattern5, 7 | 0, 1, 2, 3 | ||
24 | CSV to JSON | character2 | character2 | 0,1 | 0, 1, 2, 3 |
25 | Replace | search string2 | replacement2 | ||
27 | XML to JSON | 0, 1, 2, 3 |
1 regular expression
2 string
3 JSONPath or XML XPath
4 positive integer (with support of time suffixes, e.g. 30s, 1m, 2h, 1d)
5 user macro
6 LLD macro
7 Prometheus pattern following the syntax: <metric name>{<label name>="<label value>", ...} == <value>
. Each Prometheus pattern component (metric, label name, label value and metric value) can be user macro.
8 Prometheus output following the syntax: <label name>
.
The LLD rule overrides object defines a set of rules (filters, conditions and operations) that are used to override properties of different prototype objects. It has the following properties:
Property | Type | Description |
---|---|---|
name (required) |
string | Unique override name. |
step (required) |
integer | Unique order number of the override. |
stop | integer | Stop processing next overrides if matches. Possible values: 0 - (default) don't stop processing overrides; 1 - stop processing overrides if filter matches. |
filter | object | Override filter. |
operations | array | Override operations. |
The LLD rule override filter object defines a set of conditions that if they match the discovered object the override is applied. It has the following properties:
Property | Type | Description |
---|---|---|
evaltype (required) |
integer | Override filter condition evaluation method. Possible values: 0 - and/or; 1 - and; 2 - or; 3 - custom expression. |
conditions (required) |
array | Set of override filter conditions to use for matching the discovered objects. |
eval_formula | string | (readonly) Generated expression that will be used for evaluating override filter conditions. The expression contains IDs that reference specific override filter conditions by its formulaid . The value of eval_formula is equal to the value of formula for filters with a custom expression. |
formula | string | User-defined expression to be used for evaluating conditions of override filters with a custom expression. The expression must contain IDs that reference specific override filter conditions by its formulaid . The IDs used in the expression must exactly match the ones defined in the override filter conditions: no condition can remain unused or omitted.Required for custom expression override filters. |
The LLD rule override filter condition object defines a separate check to perform on the value of an LLD macro. It has the following properties:
Property | Type | Description |
---|---|---|
macro (required) |
string | LLD macro to perform the check on. |
value (required) |
string | Value to compare with. |
formulaid | string | Arbitrary unique ID that is used to reference the condition from a custom expression. Can only contain capital-case letters. The ID must be defined by the user when modifying filter conditions, but will be generated anew when requesting them afterward. |
operator | integer | Condition operator. Possible values: 8 - (default) matches regular expression; 9 - does not match regular expression; 12 - exists; 13 - does not exist. |
The LLD rule override operation is combination of conditions and actions to perform on the prototype object. It has the following properties:
Property | Type | Description |
---|---|---|
operationobject (required) |
integer | Type of discovered object to perform the action. Possible values: 0 - Item prototype; 1 - Trigger prototype; 2 - Graph prototype; 3 - Host prototype. |
operator | integer | Override condition operator. Possible values: 0 - (default) equals; 1 - does not equal; 2 - contains; 3 - does not contain; 8 - matches; 9 - does not match. |
value | string | Pattern to match item, trigger, graph or host prototype name depending on selected object. |
opstatus | object | Override operation status object for item, trigger and host prototype objects. |
opdiscover | object | Override operation discover status object (all object types). |
opperiod | object | Override operation period (update interval) object for item prototype object. |
ophistory | object | Override operation history object for item prototype object. |
optrends | object | Override operation trends object for item prototype object. |
opseverity | object | Override operation severity object for trigger prototype object. |
optag | array | Override operation tag object for trigger and host prototype objects. |
optemplate | array | Override operation template object for host prototype object. |
opinventory | object | Override operation inventory object for host prototype object. |
LLD rule override operation status that is set to discovered object. It has the following properties:
Property | Type | Description |
---|---|---|
status (required) |
integer | Override the status for selected object. Possible values: 0 - Create enabled; 1 - Create disabled. |
LLD rule override operation discover status that is set to discovered object. It has the following properties:
Property | Type | Description |
---|---|---|
discover (required) |
integer | Override the discover status for selected object. Possible values: 0 - Yes, continue discovering the objects; 1 - No, new objects will not be discovered and existing ones will be marked as lost. |
LLD rule override operation period is an update interval value (supports custom intervals) that is set to discovered item. It has the following properties:
Property | Type | Description |
---|---|---|
delay (required) |
string | Override the update interval of the item prototype. Accepts seconds or a time unit with suffix (30s,1m,2h,1d) as well as flexible and scheduling intervals and user macros or LLD macros. Multiple intervals are separated by a semicolon. |
LLD rule override operation history value that is set to discovered item. It has the following properties:
Property | Type | Description |
---|---|---|
history (required) |
string | Override the history of item prototype which is a time unit of how long the history data should be stored. Also accepts user macro and LLD macro. |
LLD rule override operation trends value that is set to discovered item. It has the following properties:
Property | Type | Description |
---|---|---|
trends (required) |
string | Override the trends of item prototype which is a time unit of how long the trends data should be stored. Also accepts user macro and LLD macro. |
LLD rule override operation severity value that is set to discovered trigger. It has the following properties:
Property | Type | Description |
---|---|---|
severity (required) |
integer | Override the severity of trigger prototype. Possible values are: 0 - (default) not classified; 1 - information; 2 - warning; 3 - average; 4 - high; 5 - disaster. |
LLD rule override operation tag object contains tag name and value that are set to discovered object. It has the following properties:
Property | Type | Description |
---|---|---|
tag (required) |
string | New tag name. |
value | string | New tag value. |
LLD rule override operation template object that is linked to discovered host. It has the following properties:
Property | Type | Description |
---|---|---|
templateid (required) |
string | Override the template of host prototype linked templates. |
LLD rule override operation inventory mode value that is set to discovered host. It has the following properties:
Property | Type | Description |
---|---|---|
inventory_mode (required) |
integer | Override the host prototype inventory mode. Possible values are: -1 - disabled; 0 - (default) manual; 1 - automatic. |