Sidebar

manual:introduction:whatsnew540

5 What's new in Zabbix 5.4.0

Zabbix 5.4.0 is not released yet.

Host availability on interface level

All data about host availability have been moved from the host level to the level of individual interfaces. If a host has several interfaces of the same type and one interface becomes unavailable, it does not affect the availability of any other interface of the same type.

The way that host availability is displayed has been changed:

  • Availability icons in the frontend are now only displayed for those interfaces (Zabbix agent, SNMP, IPMI, JMX) that have been configured on the host
  • If you position the mouse over the availability icon, a popup list of all interfaces of this type appears with each interface details, status and errors
  • Yellow has been added as a new status color for the availability icon
  • The meaning of the availability icon colors has been updated as follows:
    • green - all interfaces of this type are available
    • yellow - at least one interface of this type available and at least one unavailable; others can have any value including 'unknown'
    • red - no interfaces of this type available
    • gray - at least one interface of this type unknown (none unavailable)
  • The zabbix[host,<type>,available] internal item now reports availability of the main interface of a particular type of checks
  • The logic of counting host availability has also been updated in the Host availability dashboard widget (see details)

JavaScript objects

Naming

The 'CurlHttpRequest' object has been renamed to 'HttpRequest' for simplicity. The previous object naming is now deprecated and its support will be discontinued after Zabbix 6.0.

Methods also have been renamed for greater consistency with JavaScript:

New namingOld naming
log Log
addHeader AddHeader
clearHeader ClearHeader
getHeaders GetHeaders
get Get
put Put
post Post
delete Delete
setProxy SetProxy
getStatus Status

The previous method names are now deprecated and their support will be discontinued after Zabbix 6.0.

New, convenient aliases have been added for logging methods:

New aliasAlias to
console.log(object) Zabbix.log(4, JSON.stringify(object))
console.warn(object) Zabbix.log(3, JSON.stringify(object))
console.error(object) Zabbix.log(2, JSON.stringify(object))

XML object

New JavaScript object XML has been added to provide an ability to extract data by XPath and convert XML to JavaScript object (JSON) and vice versa.

See also: Additional JavaScript objects.

XML to JSON preprocessing option

New option XML to JSON has been added in item preprocessing and low-level discovery preprocessing.

Trend function cache

Previously, trend-based trigger functions (trendavg, trendcount, etc) would always use database queries to obtain the required data. In the new version, a trend function cache has been implemented allowing to cache the result of calculated trend functions. Zabbix server, when processing trend functions, will check the trend cache for the cached result. In case of failure the server will read data from database and cache the result.

The trend function cache may help to decrease the database server load when triggers contain trend functions mixed with history or timer-based functions.

The trend function cache size may be adjusted using the new TrendFunctionCacheSize server parameter. A new zabbix[tcache,cache,<parameter>] internal item has been implemented to monitor the trend function cache effectiveness.

Direct connections to database removed from pollers

Direct connections to database have been removed from pollers, unreachable pollers and JMX pollers on Zabbix server/proxy.

Previously these connections were required for:

  • Calculated items, aggregate checks and several internal items
  • Host availability updates in case of Zabbix agent, SNMP, JMX items. Pollers, unreachable pollers, JMX pollers and the IPMI manager would update host availability directly in the database with a separate transaction for each host.
  • Additionally host availability would be updated by the proxy poller thread and trapper when receiving host availability from Zabbix proxy and the configuration syncer when resetting host availability (host status changed, host moved to a new proxy, Zabbix proxy not available for too long)

Now, to handle calculated, aggregate and internal checks a new poller type history poller has been introduced. A new StartHistoryPollers configuration parameter allows to customize the needed history poller instances. As each history poller requires a database connection, it is recommended to keep the number of instances as low as possible.

To deal with host availability updates, a new availability manager process has been introduced. All processes queue host availability updates to the availability manager and that queue is flushed by the availability manager to the database every 5 seconds.

You can monitor the new processes using the zabbix[process,<type>] internal item.

New LLD rule filter condition operators

In low-level discovery, it is now possible to set up filtering by the specified macro presence (or absence). Two new filter condition operators have been added: “exists” and “does not exist”.

Oracle database creation

When creating an Oracle database, it is no longer required to copy images to the Oracle host.

Items

VMware cluster performance counters

A new vmware.cl.perfcounter[<url>,<id>,<path>,<instance>] item allows to retrieve VMware cluster performance counter metrics.

Macros

  • A new {ITEM.VALUETYPE} macro has been added returning the value type of the item. Possible values: 0 - numeric float, 1 - character, 2 - log, 3 - numeric unsigned, 4 - text.
  • Time period handling of the fmttime macro function has become more flexible.

Frontend

Unified global event correlation form

The form for configuring global event correlation is now a single page where the fields from, previously, two tabs have been combined onto one page.

Separated host and template entities

Items, triggers, graphs, low-level discovery rules, and web scenarios belonging to templates are now separated from the items, triggers, graphs, low-level discovery rules, and web scenarios belonging to hosts. Configuration section has been updated to reflect this change.

For template entities:

  • the Host column and Hosts filter field are renamed to Template and Templates respectedly;
  • the Info column is no longer displayed;
  • filters have been updated to offer only options that are relevant to templates (State, Discovery, and some other selectors have been removed);
  • Execute now and Clear history buttons have been removed;
  • Host group selector now allows selecting only host groups that contain at least one template.

For host entities, some drop-down filter selectors have been replaced with buttons, not affecting the functionality; Host group selector now allows selecting only host groups that contain at least one host; Hosts selector now allows selecting hosts only.

Hidden PSK data for hosts and proxies

PSK identity and PSK fields in host and proxy configuration are now write-only. Once saved, these values cannot be viewed again in the frontend or retrieved through API but can be replaced with new values. For hosts, PSK identity and PSK will no longer be exported.

Miscellaneous

  • Mass update pages for hosts, templates, items, etc have been replaced by popup windows.
  • Import pages for importing templates, hosts, maps, etc have been replaced by import popup windows.
  • In global search results, all links are now visually separated under the Configuration and Monitoring headings.