> LLD rule object

The following objects are directly related to the discoveryrule API.

LLD rule

The low-level discovery rule object has the following properties.

PropertyTypeDescription
itemidstring(readonly) ID of the LLD rule.
delay
(required)
stringUpdate 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)
stringID of the host that the LLD rule belongs to.
interfaceid
(required)
stringID of the LLD rule’s host interface. Used only for host LLD rules.

Optional for Zabbix agent (active), Zabbix internal, Zabbix trapper and database monitor LLD rules.
key_
(required)
stringLLD rule key.
name
(required)
stringName of the LLD rule.
type
(required)
integerType 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)
stringURL 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_trapsintegerHTTP 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.
authtypeintegerUsed 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
descriptionstringDescription of the LLD rule.
errorstring(readonly) Error text if there are problems updating the LLD rule.
follow_redirectsintegerHTTP agent LLD rule field. Follow response redirects while pooling data.

0 - Do not follow redirects.
1 - (default) Follow redirects.
headersobjectHTTP 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_proxystringHTTP agent LLD rule field. HTTP(S) proxy connection string.
ipmi_sensorstringIPMI sensor. Used only by IPMI LLD rules.
jmx_endpointstringJMX agent custom connection string.

Default value:
service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi
lifetimestringTime period after which items that are no longer discovered will be deleted. Accepts seconds, time unit with suffix and user macro.

Default: 30d.
master_itemidintegerMaster 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_formatintegerHTTP agent LLD rule field. Should response be converted to JSON.

0 - (default) Store raw.
1 - Convert to JSON.
paramsstringAdditional 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.
parametersarrayAdditional parameters for script type LLD rule. Array of objects with ‘name’ and ‘value’ properties, where name must be unique.
passwordstringPassword for authentication. Used by simple check, SSH, Telnet, database monitor, JMX and HTTP agent LLD rules.
post_typeintegerHTTP agent LLD rule field. Type of post data body stored in posts property.

0 - (default) Raw data.
2 - JSON data.
3 - XML data.
postsstringHTTP agent LLD rule field. HTTP(S) request body data. Used with post_type.
privatekeystringName of the private key file.
publickeystringName of the public key file.
query_fieldsarrayHTTP agent LLD rule field. Query parameters. Array of objects with ‘key’:’value’ pairs, where value can be empty string.
request_methodintegerHTTP agent LLD rule field. Type of request method.

0 - (default) GET
1 - POST
2 - PUT
3 - HEAD
retrieve_modeintegerHTTP 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_oidstringSNMP OID.
ssl_cert_filestringHTTP agent LLD rule field. Public SSL Key file path.
ssl_key_filestringHTTP agent LLD rule field. Private SSL Key file path.
ssl_key_passwordstringHTTP agent LLD rule field. Password for SSL Key file.
stateinteger(readonly) State of the LLD rule.

Possible values:
0 - (default) normal;
1 - not supported.
statusintegerStatus of the LLD rule.

Possible values:
0 - (default) enabled LLD rule;
1 - disabled LLD rule.
status_codesstringHTTP 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
templateidstring(readonly) ID of the parent template LLD rule.
timeoutstringItem data polling request timeout. Used for HTTP agent and script LLD rules. Supports user macros.

default: 3s
maximum value: 60s
trapper_hostsstringAllowed hosts. Used by trapper LLD rules or HTTP agent LLD rules.
usernamestringUsername for authentication. Used by simple check, SSH, Telnet, database monitor, JMX and HTTP agent LLD rules.

Required by SSH and Telnet LLD rules.
uuidstringUniversal unique identifier, used for linking imported LLD rules to already existing ones. Used only for LLD rules on templates. Auto-generated, if not given.

For update operations this field is readonly.
verify_hostintegerHTTP 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_peerintegerHTTP agent LLD rule field. Validate is host certificate authentic.

0 - (default) Do not validate.
1 - Validate.

LLD rule filter

The LLD rule filter object defines a set of conditions that can be used to filter discovered objects. It has the following properties:

PropertyTypeDescription
conditions
(required)
arraySet of filter conditions to use for filtering results.
evaltype
(required)
integerFilter condition evaluation method.

Possible values:
0 - and/or;
1 - and;
2 - or;
3 - custom expression.
eval_formulastring(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.
formulastringUser-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.

LLD rule filter condition

The LLD rule filter condition object defines a separate check to perform on the value of an LLD macro. It has the following properties:

PropertyTypeDescription
macro
(required)
stringLLD macro to perform the check on.
value
(required)
stringValue to compare with.
formulaidstringArbitrary 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.
operatorintegerCondition 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.

LLD macro path

The LLD macro path has the following properties:

PropertyTypeDescription
lld_macro
(required)
stringLLD macro.
path
(required)
stringSelector for value which will be assigned to corresponding macro.

LLD rule preprocessing

The LLD rule preprocessing object has the following properties.

PropertyTypeDescription
type
(required)
integerThe 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)
stringAdditional parameters used by preprocessing option. Multiple parameters are separated by LF (\n) character.
error_handler
(required)
integerAction 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)
stringError 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 typeNameParameter 1Parameter 2Parameter 3Supported error handlers
5Regular expressionpattern1output20, 1, 2, 3
11XML XPathpath30, 1, 2, 3
12JSONPathpath30, 1, 2, 3
15Does not match regular expressionpattern10, 1, 2, 3
16Check for error in JSONpath30, 1, 2, 3
17Check for error in XMLpath30, 1, 2, 3
20Discard unchanged with heartbeatseconds4, 5, 6
23Prometheus to JSONpattern5, 70, 1, 2, 3
24CSV to JSONcharacter2character20,10, 1, 2, 3
25Replacesearch string2replacement2
27XML to JSON0, 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>.

LLD rule overrides

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:

PropertyTypeDescription
name
(required)
stringUnique override name.
step
(required)
integerUnique order number of the override.
stopintegerStop processing next overrides if matches.

Possible values:
0 - (default) don’t stop processing overrides;
1 - stop processing overrides if filter matches.
filterobjectOverride filter.
operationsarrayOverride operations.

LLD rule override filter

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:

PropertyTypeDescription
evaltype
(required)
integerOverride filter condition evaluation method.

Possible values:
0 - and/or;
1 - and;
2 - or;
3 - custom expression.
conditions
(required)
arraySet of override filter conditions to use for matching the discovered objects.
eval_formulastring(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.
formulastringUser-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.

LLD rule override filter condition

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:

PropertyTypeDescription
macro
(required)
stringLLD macro to perform the check on.
value
(required)
stringValue to compare with.
formulaidstringArbitrary 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.
operatorintegerCondition operator.

Possible values:
8 - (default) matches regular expression;
9 - does not match regular expression;
12 - exists;
13 - does not exist.

LLD rule override operation

The LLD rule override operation is combination of conditions and actions to perform on the prototype object. It has the following properties:

PropertyTypeDescription
operationobject
(required)
integerType of discovered object to perform the action.

Possible values:
0 - Item prototype;
1 - Trigger prototype;
2 - Graph prototype;
3 - Host prototype.
operatorintegerOverride condition operator.

Possible values:
0 - (default) equals;
1 - does not equal;
2 - contains;
3 - does not contain;
8 - matches;
9 - does not match.
valuestringPattern to match item, trigger, graph or host prototype name depending on selected object.
opstatusobjectOverride operation status object for item, trigger and host prototype objects.
opdiscoverobjectOverride operation discover status object (all object types).
opperiodobjectOverride operation period (update interval) object for item prototype object.
ophistoryobjectOverride operation history object for item prototype object.
optrendsobjectOverride operation trends object for item prototype object.
opseverityobjectOverride operation severity object for trigger prototype object.
optagarrayOverride operation tag object for trigger and host prototype objects.
optemplatearrayOverride operation template object for host prototype object.
opinventoryobjectOverride operation inventory object for host prototype object.
LLD rule override operation status

LLD rule override operation status that is set to discovered object. It has the following properties:

PropertyTypeDescription
status
(required)
integerOverride the status for selected object.

Possible values:
0 - Create enabled;
1 - Create disabled.
LLD rule override operation discover

LLD rule override operation discover status that is set to discovered object. It has the following properties:

PropertyTypeDescription
discover
(required)
integerOverride 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

LLD rule override operation period is an update interval value (supports custom intervals) that is set to discovered item. It has the following properties:

PropertyTypeDescription
delay
(required)
stringOverride 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

LLD rule override operation history value that is set to discovered item. It has the following properties:

PropertyTypeDescription
history
(required)
stringOverride 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:

PropertyTypeDescription
trends
(required)
stringOverride 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

LLD rule override operation severity value that is set to discovered trigger. It has the following properties:

PropertyTypeDescription
severity
(required)
integerOverride 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

LLD rule override operation tag object contains tag name and value that are set to discovered object. It has the following properties:

PropertyTypeDescription
tag
(required)
stringNew tag name.
valuestringNew tag value.
LLD rule override operation template

LLD rule override operation template object that is linked to discovered host. It has the following properties:

PropertyTypeDescription
templateid
(required)
stringOverride the template of host prototype linked templates.
LLD rule override operation inventory

LLD rule override operation inventory mode value that is set to discovered host. It has the following properties:

PropertyTypeDescription
inventory_mode
(required)
integerOverride the host prototype inventory mode.

Possible values are:
-1 - disabled;
0 - (default) manual;
1 - automatic.