New trigger functions have been added allowing to compare data from absolute periods (hour, day, week, month, year) and notify user if there is a significant difference. The new functions are:
Note that the new functions return a result based on trend values, not history.
For example, you may want to know if there was a significant increase of server load last month (a 10% increase over the previous month):
You may also use the new "Event name" parameter in trigger configuration to build a meaningful alert message, for example to receive something like:
"Load of Exchange server increased by 24% in July (0.69) comparing to June (0.56)"
The new expression macros and new macro functions ('fmttime' and 'fmtnum') are used to build this message. For more details on configuring the event name, see a trigger configuration example.
For more details see Script item type.
The frontend time zone, previously set by the 'date.timezone' setting of php.ini, now can be set globally in the frontend and adjusted for individual users.
The default global time zone:
User-level time zone:
See also: Time zones
It is now possible to store some sensitive information from Zabbix secretly in HashiCorp Vault KV Secrets Engine - Version 2. Secrets can be saved for:
Zabbix provides read-only access to the secrets in Vault.
See also: Storage of secrets
It is now possible to define user roles for granular control on what parts of UI, which API methods, and which functionality (such as the ability to acknowledge problems) are available to end-users.
Active agent checks can now be requested from multiple Zabbix hosts, by specifying these hosts in the Hostname agent parameter as a comma-delimited list. This is useful, for example, when several Zabbix hosts exist for one physical host.
Note that if several host names are specified in the Hostname parameter, active agent autoregistration will also create all of these hosts. In network discovery, however, only the first host listed in the Hostname parameter will be considered.
The same changes also apply to the content returned by the Hostnameitem parameter.
Zabbix now supports Modbus out-of-the-box using the new modbus.get agent and agent 2 item.
Zabbix now supports receiving values of MQTT topics using the new mqtt.get agent 2 item.
Host screens configured on the template level have been converted to host dashboards.
Zabbix configuration elements now can also be exported and imported in the YAML format, which is easy to read and edit.
Custom handling for item errors has been introduced in the new version on the basis of an individual item. If previously any item error resulted in the item becoming unsupported, now it is possible to use a new preprocessing rule called "Check for not supported value" to handle this situation. This preprocessing rule has standard Custom on fail options allowing to:
This preprocessing step can be used only once and it makes sense to have it as the first preprocessing step.
The main use cases for this functionality are as follows:
Two new options can now be set on a host prototype level, making low-level discovery even more flexible.
Host prototype configuration form now allows to select with which interfaces a discovered host should be created:
Additionally, support of tags with a possibility to use LLD macros as tag values has been added to the host prototypes. This functionality allows assigning each discovered host own set of tags with valuable information (datacenter, instance type, resource type, etc.), which can be useful, for example, in the discovery of cloud resources.
A new optional parameter UserParameterDir has been added to the Zabbix agent and agent 2 configuration files. The parameter specifies a custom directory to execute UserParameter commands from. If UserParameterDir is present, the agent will change its working directory to the one specified by this parameter before executing a UserParameter command. Thereby UserParameter commands can have a relative
./ prefix instead of a full path.
When testing SNMP items, it is now possible to specify version-specific details:
|New fields in SNMPv2 item testing:
||New fields in SNMPv3 item testing:
This is useful because, when testing SNMP items, problems are often associated with a wrong SNMPv2 community or SNMPv3 security credentials.
The values of these fields are pre-filled by the values of the corresponding SNMP interface as defined on the host. Note that if the field value is a macro with a text value, the field will be filled with the resolved macro value, however, if the value (or part of the value) is a secret or Vault macro, the field will be empty and will need to be filled manually. To be able to tell that a secret macro value is hidden, the following warning message will be displayed: "Item contains user-defined macros with secret values. Values of these macros should be entered manually."
SNMP items can be tested as an item, a low-level discovery rule and an item prototype. All these entities can be tested on template level as well.
A separate setting for refreshing unsupported items has been removed from Administration → General → Other. Instead, the item update interval is now used for each unsupported item. This has been done to remove a potential performance bottleneck in the scenario when a lot of items turn unsupported and the global refresh interval has been set to a short value.
The minimum required PHP version has been upped from 7.2.0 to 7.2.5.
Tabs in many frontend forms now indicate the number of defined elements or if the functionality is enabled. To illustrate let's compare a host configuration form with two linked templates, one host tag, one host-level macro, enabled inventory and two-way encryption enabled now and before:
|<| |<| |-| |<|
Informative tabs allow to debug problems easier, for example, when an item has preprocessing steps defined they are now clearly indicated with a number even when the tab is not opened:
Informative tabs have been added to the configuration forms for:
Zabbix session data is now stored in a user cookie.
It is now possible to choose the default language for the Zabbix frontend during the installation process. After the installation, the system default language can be changed in the Administration→General→GUI section. If a user has not specified another language in the profile settings, the system-wide setting is used. Login page for all users is displayed in the chosen default language.
Several parameters, that previously could only be modified through editing
defines.inc.php file, can now be configured directly via the frontend. This makes Zabbix frontend configuration more flexible and ensures that custom changes will be preserved after an upgrade.
Administration → General frontend section has been modified to accommodate more parameters:
It is now possible to add a host without interfaces, which may be useful for hosts with only trapper items or web checks.
For a new host now no interfaces are defined by default. To add a new interface, click on Add in the Interfaces block and select the interface type from a dropdown.
Switching to the required dashboard has become easier with these new features:
Additionally, it is now immediately visible, which dashboards are shared with other users. If a dashboard is public or is privately shared with any user or user group - a tag "Shared" next to the dashboard name will indicate that.
In Monitoring→Hosts and Monitoring→Problems sections, it is now possible to save multiple filters and switch between saved sets of filter parameters in a single click, similar to the way of switching tabs in web browsers.
The Maintenance periods configuration form now has a simpler single-tab look. All configuration parameters previously located on the tabs Periods and Hosts and groups have been moved to the primary tab.