On this page

What's new in Zabbix 8.0

Zabbix 8.0.0 continues from Zabbix 7.4.0, adding new features and enhancements. See also upgrade notes for this version, which may include breaking changes.

ClickHouse support

You can now use ClickHouse as a Zabbix backend database to store item value history.

For setup details and requirements, see ClickHouse setup. If you want to migrate your history data from an existing Zabbix database (MySQL or PostgreSQL) to ClickHouse, see the ClickHouse schema and history migration scripts.

This feature also changes how you set history storage providers in Zabbix configuration files. This change affects both ClickHouse and Elasticsearch setups. For details, see Upgrade notes.

Scatter plot widget

The Scatter plot widget has been added to dashboard widgets. It displays the relationship between two metrics by plotting individual data points along an X and Y axis. This helps reveal patterns, clusters, correlations, and outliers in the data set.

Y-axis inversion for graph widget

Graphs in the Graph widget can now be displayed with inverted Y-axis values. A new Invert values setting allows you to multiply Y-axis values by −1 without altering the original data.

See also: Graph widget enhancements.

JSON data type

Zabbix now supports JSON as a data type for item values.

Previously, JSON values were collected by text items and stored as strings with a limit of 64KB. Now, Zabbix can store JSON values natively with a limit of 128MiB, and also reject invalid JSON values (e.g., containing unquoted keys, trailing commas, mismatched brackets).

The JSON data type is supported by all item and item prototype types, except Calculated, and is available in real-time data export and connectors. JSON values can be stored in all supported databases and Elasticsearch. If you're using TimescaleDB, please see upgrade notes.

Note that items with the JSON data type cannot be used in triggers; however, you can extract JSON fields with dependent items that have a non-JSON data type and use them in triggers.

Items that return a JSON string (net.if.discovery, vfs.file.get, etc.) are still text items; however, you can change them to JSON if needed.

For more details and JSON data limits, see item configuration.

Custom layouts for tables

In a number of frontend tables you can now hide/show, reorder, and resize columns. It is also possible to add a Custom text column with custom text, macro values, or both.

Custom layouts are available in these locations:

For example, the default table layout in Monitoring > Latest data:

Example of a custom layout:

Some columns also have the Options button that provides additional controls over how that column displays data. Because of this, some filter parameters have been moved from the filter tab to column options. If you're using tabs for favorite filters, please see Upgrade notes.

Global regular expressions

The global regular expressions feature has been enhanced with the following usability improvements:

  • The regular expressions configuration form now opens in a modal window.
  • The Expression type items have been renamed.
  • The regular expressions configuration form now includes a Description field.
  • The regular expressions list can now be filtered by name and description.
  • Global regular expressions can now be exported and imported.

Templates

New templates have been added, and many templates have been updated.

New templates

Updated templates

Items

Type parameter for S.M.A.R.T disk discovery

The smart.disk.discovery item (Zabbix agent 2 S.M.A.R.T. plugin) now accepts an optional type parameter to specify a value to scan for the disks.

Default value for trapper item allowed hosts

The Allowed hosts field for Zabbix trapper items and for HTTP agent items with Enable trapping enabled, now uses the user macro {$TRAPPER.ALLOWED_HOSTS} by default. If this value is empty, incoming connections are denied from all hosts. To allow data submission, specify one or more IP addresses or DNS names.

Trend function cache utilization monitoring

The paccessed parameter has been added to the zabbix[tcache,cache,<parameter>] internal item. It returns the percentage of trend function cache entries accessed within the last 24 hours.

Plugins

Ceph plugin

The Zabbix agent 2 Ceph plugin now operates in two modes:

  • native - This mode uses the go-ceph library to communicate directly with the Ceph cluster using the native Ceph API (msgr2 protocol). This is the recommended mode for modern Ceph installations, but is only supported on Linux and starting with Ceph 16.
  • restful (deprecated) - This mode uses the Ceph RESTful API for communication. It is the default mode for backward compatibility but will not work with Ceph version 20 (Tentacle) or newer due to the removal of the mgr/restful module.

Important: When monitoring Ceph 20 (Tentacle) and newer versions with the Ceph plugin for Zabbix agent 2, use native mode, as the restful mode is no longer supported.

Which mode to use is determined by the value of the mode parameter (native/restful):

  • Plugins.Ceph.Default.Mode=native - set the native mode for the plugin
  • Plugins.Ceph.Sessions.<SessionName>.Mode=native - set the native mode for the named session

Note that the user credential set differs for each mode and they are not compatible with each other. The Plugins.Ceph.InsecureSkipVerify parameter is ignored in native mode because connection security is defined on the Ceph cluster side by msgr2 protocol (secure by default).

Note that the Ceph plugin for Zabbix agent 2 is now a loadable plugin and requires additional installation steps. This is due to the librados package requirement (for the native mode). See the Ceph plugin readme for details.

MongoDB plugin

The Zabbix agent 2 MongoDB plugin offers multiple enhancements:

  • Full support for conventional MongoDB URI parsing, with support for both mongodb:// and mongodb+srv:// schemes.
  • Automatic discovery of MongoDB replica set nodes, enhancing the ability to monitor MongoDB clusters.
  • Support for x509 authentication, enabling secure connections to MongoDB using client certificates.

Oracle plugin

The Zabbix agent 2 Oracle plugin now supports encrypted connections to Oracle databases using the TCPS (TLS) protocol. This adds the ability to monitor Oracle instances over TLS-secured sockets, improving security for remote monitoring.

Redis plugin — TLS support and startup-time validation

TLS support has been added to the Zabbix agent 2 Redis plugin.

Startup-time validation of the plugin TLS configuration was implemented and validation/error messages improved. An invalid configuration logic (for example: using connection type verify_full without specifying TLSCAFile) can prevent Zabbix agent 2 from starting.

Test execution mode for loadable plugins

Loadable plugins can now be launched in test mode using the -t (--test) flag, passing an item key as argument. In this mode, the plugin runs for debugging and development purposes, and plugin configuration files are ignored.

Low-level discovery

Convert to JSON checkbox in discovery forms

A new Convert to JSON checkbox was added to the low-level discovery rule form and discovery prototype form, which is shown if "HTTP agent" is selected in the Type dropdown. This option allows to mark retrieved data for automatic conversion to JSON before further processing.

Macro support for nested low-level discovery

Low-level discovery macros are now supported in nested low-level discovery rules, in:

Editable tags for triggers created by low-level discovery

Triggers created from trigger prototypes can now have tags added manually. Tags inherited from trigger prototypes are still applied automatically. Tags added manually may be modified on discovered triggers and will be included in event tag arrays and available to tag-aware features such as filters, dashboard widgets and notification macros.

Block device discovery on Linux and AIX

The new vfs.dev.get item key was added for block device discovery on Linux and AIX. It can be used in low-level discovery for block devices. The vfs.dev.discovery item key remains available for compatibility.

Network interfaces discovery on Linux

The new net.if.get item key has been added to Zabbix agent and Zabbix agent 2 on Linux. It can be used in low-level discovery of network interfaces to return a list of network interfaces with detailed information. The net.if.discovery item key remains available for compatibility.

Databases

Support for multiple PostgreSQL database hosts

Zabbix now supports specifying multiple PostgreSQL database hosts as a comma-separated list of host:port values, leveraging PostgreSQL connection failover support. The hosts are tried in order until a read-write connection is established. This behavior is available during frontend installation in the Database host field and in DBHost in zabbix_server.conf and zabbix_proxy.conf.

Optimized Zabbix server startup

Zabbix server now starts up significantly faster. It does so by loading history data from the database for multiple items at once instead of one at a time. This improvement applies to all database types supported by Zabbix server.

Optimized Elasticsearch performance

Zabbix server now works better with Elasticsearch. The server retrieves data more efficiently without using Elasticsearch's scroll feature, and reuses existing connections to Elasticsearch instead of opening a new one for every request. The server also no longer hangs when sending multiple requests to Elasticsearch at the same time (using cURL's multi-handle).

Processes

SNMPv3 EngineID caching and reuse

Zabbix now caches SNMPv3 EngineID → IP mappings and will attempt to reuse cached EngineIDs for subsequent SNMPv3 checks, reducing probe traffic and improving poller performance. If a reused EngineID does not respond, the poller falls back to an EngineID probe and may remove stale entries after interface changes or persistent failures.

Refined proxy throttling during history cache recovery

Proxy throttling logic has been refined to improve server stability during history cache recovery. When history cache usage reaches the throttling threshold, the server continues to stop accepting proxy data as before. When cache usage falls to 60%, the server begins processing the throttling list but may still reject proxy uploads that contain very large batches (approximately more than 10k records) until cache pressure decreases further. This change reduces the risk of repeated cache overloads while the server recovers.

Increased maximum timeout for the zabbix_get and zabbix_js

The maximum value for the timeout parameter of the zabbix_get and zabbix_js command-line utilities has been increased to 600 seconds.

Optimized housekeeping

Housekeeping has been optimized by moving the creation of housekeeper tasks to database triggers. When items (including low-level discovery rules), triggers, services, or network discovery rules are deleted, database triggers (instead of explicit application-level calls) now populate the housekeeper table with cleanup tasks. For details, see the housekeeping procedure.

The housekeeper now also removes network discovery events generated from discovered hosts or services that have since been deleted, as well as all events associated with problems of triggers that have since been deleted (previously, only the problems themselves were removed; associated events were only removed after the housekeeper Trigger data storage period expired).

Manual close — trigger tags inherited by recovery events

Recovery events created after a manual close inherit trigger tags in addition to item and host tags. These tags are present in the event tags array and are available to notification macros such as {EVENT.RECOVERY.TAGS} and {EVENT.RECOVERY.TAGSJSON}.

DNS query caching for Zabbix daemons

Zabbix server, Zabbix proxy and Zabbix agent received support for using the c-ares resolver for all DNS requests, providing DNS query caching and improved resolver failover when Zabbix is built with --with-ares. DNS query caching requires c-ares 1.26.0 or later.

Build support for c-ares on Windows

Zabbix agent can now be built with the c-ares resolver on Microsoft Windows. c-ares may be installed via vcpkg, and the agent build supports either ARES=<vcpkg prefix> or separate ARESINCDIR/ARESLIBDIR paths for include and library directories.

Count-based trigger functions improved

The operation of count-based functions (count(), item_count(), changecount(), etc.) in trigger expressions has been improved, allowing more values to be processed faster.

Runtime control target updates

The list of available runtime control targets in Zabbix server and proxy help messages and manpages has been updated to match the supported process types.

The supervisor target has been added, while the unsupported discovery worker and preprocessing worker targets have been removed.

Security

New AllowKeyRegexp and DenyKeyRegexp parameters in Zabbix agent and Zabbix agent 2 configuration

The new AllowKeyRegexp and DenyKeyRegexp parameters have been added to the Zabbix agent and Zabbix agent 2 configuration. These parameters allow you to define regular expression-based patterns for more precise and flexible matching of keys and their parameters.

Authentication

Importable SAML certificates for single sign-on

Super admin users can now import certificates and private keys directly in the frontend for SAML configuration. Three new fields were added to Users > Authentication > SAML settings:

  • IdP certificate - X.509 certificate presented by the identity provider
  • SP certificate - service provider certificate used for SAML exchanges
  • SP private key - private key corresponding to the SP certificate

These controls allow adding new values or modifying existing ones from the SAML settings tab. Certificates and private keys are validated before being saved to the chosen storage backend; invalid or malformed values are rejected with an explanatory error.

HashiCorp vault authentication with AppRole method

HashiCorp vault authentication now supports the AppRole method:

  • In server/proxy configuration, using the new VaultAppRoleID and VaultAppSecretID parameters (see example).
  • In frontend configuration, by supplying authentication role ID and secret ID values.

Widgets

Geomap host marker clustering

The Geomap widget now supports a Clustering parameter to control how nearby host markers are combined into a single marker with a count. By setting the map zoom level for clustering, you can keep large maps readable and maintain precise visibility when zoomed in.

Aggregate columns in Top items

The Top items widget can now group item patterns into a single aggregated column or row, making it easy to present combined metrics (for example: total incoming traffic across all network interfaces of a host). Three new options were added when configuring item columns:Aggregate columns, Column aggregation function, and Combined column name.

Graph widget enhancements

The Graph widget offers multiple usability enhancements:

  • Items in the graph data tooltip that appears when hovering over the graph are sorted by value in descending order.
  • Hovering over an item in the tooltip highlights its graph while dimming others.
  • Selecting an item in the tooltip broadcasts its data to other widgets that support listening to it.
  • The limit on the number of items displayed in the tooltip has been removed.
  • A new Host names in labels setting allows you to choose whether host names are displayed in the tooltip and graph legend.

  • A new Invert values setting allows you to flip a graph.

Increased character limit for widget description fields

The character limit for the Description field in the Gauge and Item value widgets has been increased from 2048 to 65535 characters.

Frontend

Dashboard export and import

Dashboards can now be exported and imported, making it easier to migrate dashboards between Zabbix instances or reuse them in different environments.

A new Export option allows saving selected dashboards to YAML, JSON, or XML files. These files can later be imported through the Import functionality to recreate the dashboards with their pages, widgets, and configuration.

New and embedded fonts

Zabbix now includes new and embedded fonts that improve readability, load faster, and render additional frontend languages with minimal layout impact. Being embedded, these fonts also ensure a consistent appearance across systems.

New fonts:
Legacy fonts:

The new fonts are used in almost all themes. If needed, the newly added Blue (classic) and Dark (classic) themes are available with legacy fonts.

The font family for monospace content and graphs remains unchanged.

Zabbix UI enhancements

The Zabbix user interface has been modernized to improve accessibility and usability.

Before After

Accessibility enhancement

The Skip to main content link has been added to improve keyboard navigation and accessibility.

The link allows keyboard and screen reader users to skip repetitive sidebar navigation and move directly to the main content. It remains hidden during normal use and appears only when focused, such as when the Tab key is pressed after the page loads or when it is accessed using a screen reader.

Inline validation

The following forms in the frontend have been added to the set of forms that support inline validation:

Input errors are displayed immediately after filling in the fields, improving usability and reducing configuration mistakes.

In low-level discovery setup, the host prototype configuration form is now opened in a modal (pop-up) window.

Inherited tags visible in hosts, templates, items, and triggers

Inherited tags are now displayed and returned consistently across templates, hosts, items, web scenarios, and triggers. Tags inherited from template/host chains are visible in Monitoring > Latest data. Filtering by inherited tags is available wherever tag filtering is supported — including the Monitoring > Latest data and Data collection sections, and all dashboard widgets that allow filtering by host, item, trigger, or web scenario tags — so tag-based selection and subfiltering behave the same regardless of where a tag was defined.

The Tags tab on template, host and host prototype configuration forms now exposes a radio element to choose how tags are presented: templates show Template tags / Inherited and template tags, and hosts and host prototypes show Host tags / Inherited and host tags. Inherited tags are visually distinguished by a new outlined document icon next to the tag label.

Graph and Pie chart widgets include a new Item tags setting.

Tooltips positioning

Tooltips can now be repositioned by dragging them to a new location. This applies, for example, to the Graph tooltip, as well as to tooltips with descriptions in the Latest Data or Problems sections.

New $ZBX_FEATURE_FLAGS variable in frontend configuration

The new $ZBX_FEATURE_FLAGS[] variable has been implemented in the frontend configuration to control access to user HTTP authentication, modules, and media types configurations. The following feature flags have been added to the zabbix.conf.php configuration file:

  • $ZBX_FEATURE_FLAGS['http_auth_enabled'] = false disables access to the configuration of user HTTP authentication (replaces the $ALLOW_HTTP_AUTH variable).
  • $ZBX_FEATURE_FLAGS['modules_config_enabled'] = false disables access to the modules configuration.
  • $ZBX_FEATURE_FLAGS['media_type_denylist'] = [<value1>, <value2>, ...] restricts editing of media types that use the specified delivery methods ('email', 'script', 'sms', or 'webhook'; one or more values can be specified).
    Access to setup.php is restricted if the zabbix.conf.php configuration file exists.

Event details show suppression reason

The event details page, opened from Monitoring > Problems, now shows whether an event was suppressed because of host maintenance or suppressed manually by a user.

Orange icons icon_suppression_maintenance.png and icon_unsuppressed_maintenance.png indicate maintenance-related suppression/unsuppression, while grey icons icon_suppression.png and icon_unsuppressed.png indicate manual suppression/unsuppression.

In problem and event histories, actions performed by deleted users are now shown as Inaccessible user.

System information report enhancements

The System information report now displays the server ID (UUIDv7).
The system information report is now also available to Zabbix Admin users.

Changes to the Zabbix SELinux policy package

For version 10 of AlmaLinux, CentOS Stream, RHEL, Rocky Linux, and Oracle Linux, the SELinux policy is provided by the new zabbix-selinux-policy-main package, which contains the SELinux policy from the upstream SELinux repository.

The existing zabbix-selinux-policy package now has a dependency on either zabbix-selinux-policy-main or selinux-policy-targeted-extra. The zabbix-selinux-policy-main package conflicts with selinux-policy-targeted-extra; therefore, both packages cannot be installed at the same time.

If you have existing zabbix-selinux-policy installation, no manual changes are required. During package upgrade, zabbix-selinux-policy-main will be installed automatically. If selinux-policy-targeted-extra is already installed, no additional package will be installed.

Dashboard slideshow setting

When creating a dashboard, the Start slideshow checkbox is disabled by default and must be enabled explicitly. A slideshow URL parameter supports the values on or off allowing the dashboard slideshow setting to be overridden quickly. The slideshow=1 parameter is deprecated and will no longer be supported.

Documentation

Consolidated documentation pages for minor releases

Release documentation for minor versions of a major Zabbix release will now be collected in a single documentation page for both new features and upgrade notes.

Upgrade notes

These notes are for upgrading from Zabbix 7.4.x to Zabbix 8.0.0.

All notes are grouped into:

  • Breaking changes - changes that may break existing installations and other critical information related to the upgrade process
  • Other - all remaining information describing the changes in Zabbix functionality

See also:

  • Upgrade procedure for all relevant information about upgrading from versions before Zabbix 8.0.0;
  • Upgrading HA cluster for instructions on upgrading servers in a high-availability (HA) cluster.

Breaking changes

Database versions

The minimum required database versions have been raised:

  • MySQL/Percona: 8.0.30 → 8.4.0
  • MariaDB: 10.5.00 → 10.11.00
  • PostgreSQL: 13.0 → 15.0
  • TimescaleDB: 2.13.0 → 2.20.0

Plugins

The Ceph plugin for Zabbix agent 2 is now a loadable plugin and requires additional installation steps. See the Ceph plugin readme for details.

The tcp:// scheme is deprecated in the MongoDB plugin but is kept for backward compatibility with existing configurations.

The Plugins.Oracle.CallTimeout parameter in the Oracle plugin configuration file no longer has any effect. The maximum wait time is now determined by the item timeout.

Minimum required PHP version

The minimum required PHP version has been raised from 8.0.0 to 8.2.0.

Extended UnsafeUserParameters list

The % character has been added to the UnsafeUserParameters list for Zabbix agent and Zabbix agent 2.

Moved filter parameters

As part of the customizable tables feature, some filter parameters have been moved from the filter tab to column options. If you have saved tabs for favorite filters that use any of the following filter parameters, they will be reset and must be reconfigured manually after the upgrade:

  • Monitoring > Hosts: Show suppressed problems
  • Monitoring > Latest data: Show tags, Tag name, Tag display priority, Show details
  • Monitoring > Problems: Show tags, Tag name, Tag display priority, Show operational data, Compact view, Show details, Show timeline, Highlight whole row

JavaScript preprocessing: built-in object methods are now read-only

Built-in JavaScript object methods in preprocessing scripts are now read-only. If you have already modified built-in methods on JavaScript prototypes in item preprocessing scripts, you may encounter issues, as modifying built-in prototype methods is no longer allowed.

MySQL database character set and collation

If the Zabbix MySQL database was created with the utf8mb3 character set and utf8mb3_bin collation, it is strongly recommended to convert it to utf8mb4 character set and utf8mb4_bin collation before upgrading Zabbix, as described in Repairing Zabbix database character set and collation.

Other

Deprecated macros dropped

The support for the following built-in macros has now been dropped:

Dropped Use instead
{ACK.DATE} {EVENT.UPDATE.DATE}
{ACK.MESSAGE} {EVENT.UPDATE.MESSAGE}
{ACK.TIME} {EVENT.UPDATE.TIME}
{EVENT.ACK.HISTORY} {EVENT.UPDATE.HISTORY}
{HOSTNAME<1-9>} {HOST.HOST}
{IPADDRESS<1-9>} {HOST.IP}
{PROFILE.*} {INVENTORY.*}
{TRIGGER.COMMENT} {TRIGGER.DESCRIPTION}
{TRIGGER.KEY} {ITEM.KEY}
{STATUS} {TRIGGER.STATUS}
{USER.ALIAS} {USER.USERNAME}

Deprecated parameters for history storage providers

The following parameters have now been deprecated:

  • Zabbix server configuration file: HistoryStorageDateIndex, HistoryStorageURL, and HistoryStorageTypes. Please use the new HistoryProviders parameter instead.
  • Zabbix frontend configuration file: $HISTORY. Please use the new $HISTORY_PROVIDERS parameter instead.

Both new parameters let you choose the history storage provider: Elasticsearch, ClickHouse, or SQL (default). Note that you cannot use these new and deprecated parameters together.

Removed JSON and XML validation from HTTP agent items

JSON and XML validation has been removed from the Request body field in HTTP agent items. The field no longer checks whether the value is valid XML or JSON, and selecting XML data as the Request body type no longer requires the libxml2 library.

Disabled Graphs, Dashboards, and Web links are no longer displayed in the list of monitored hosts.

JSON data type

Zabbix now supports JSON as a data type for item values. If you are using TimescaleDB, the new history_json hypertable (used to store JSON values) must be configured manually. If you are using Elasticsearch, the default value of the HistoryStorageTypes Zabbix server configuration parameter now includes json.

Removed radio button in the New tag filter form

The radio button that required choosing between All tags and Tag list when creating a new tag filter has been removed.

Item values displayed as HTML using iframes

Item data in the Item history widget, when displayed as HTML-formatted text, is now isolated in iframes.

Template compatibility with Host Wizard

All out-of-the-box templates are now compatible with the Host Wizard. To upgrade them, see Template upgrade.

Autoresizing for configuration fields

Most configuration fields in the UI now automatically resize to fit their content.

Replaced frontend configuration variable

The $ALLOW_HTTP_AUTH variable has been replaced by the $ZBX_FEATURE_FLAGS['http_auth_enabled'] feature flag in the frontend configuration file (zabbix.conf.php).

Concurrent processing of SNMPv1 and SNMPv2 checks

SNMPv1 and SNMPv2 asynchronous service checks are now processed concurrently by available discovery workers.

Changes to the Zabbix SELinux policy package

For version 10 of AlmaLinux, CentOS Stream, RHEL, Rocky Linux, and Oracle Linux, the existing zabbix-selinux-policy package now has a dependency on either zabbix-selinux-policy-main or selinux-policy-targeted-extra.
If you have existing zabbix-selinux-policy installation, no manual changes are required. During package upgrade, zabbix-selinux-policy-main will be installed automatically. If selinux-policy-targeted-extra is already installed, no additional package will be installed.

Renamed maintenance period state

The maintenance period state has been renamed from Approaching to Upcoming.

Deprecated dashboard slideshow parameter

Support for the slideshow=1 parameter will be removed. New values for the slideshow parameter have been introduced to start and stop the slideshow:

  • slideshow=on - start the slideshow
  • slideshow=off - stop the slideshow

Changes to global regular expressions

Before Now
Character string included Contains string
Any character string included Contains any substring from list
Character string not included Does not contain string
Result is TRUE Matches regular expression
Result is FALSE Does not match regular expression