10 Upgrade notes for 6.4.0

These notes are for upgrading from Zabbix 6.2.x to Zabbix 6.4.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 6.2.0;
  • Upgrading HA cluster for instructions on upgrading servers in a high-availability (HA) cluster.

Upgrade process

To complete successful Zabbix server upgrade on MySQL/MariaDB, you may require to set GLOBAL log_bin_trust_function_creators = 1 in MySQL if binary logging is enabled, there are no superuser privileges and log_bin_trust_function_creators = 1 is not set in MySQL configuration file.

To set the variable using the MySQL console, run:

mysql> SET GLOBAL log_bin_trust_function_creators = 1;

Once the upgrade has been successfully completed, this option can be disabled:

mysql> SET GLOBAL log_bin_trust_function_creators = 0;

Breaking changes

MySQL version

MySQL versions below 8.0.30 are no longer supported. The minimum required MySQL version has been raised from 8.0.0 to 8.0.30.

libssh version

The minimum required libssh version has been raised from 0.6.0 to 0.9.0.

SLES versions

For SUSE Linux Enterprise Server (SLES) 15 the minimum supported service pack version is now SP4.

SLES 12 with SP4 and newer are also still supported, but due to the older libssh library, support for the SSH checks for this OS version has been discontinued.

Optimized proxy configuration update

Incremental update of the proxy configuration has been introduced in the new version.

As a result the ConfigFrequency parameter for active proxies is now deprecated; instead the ProxyConfigFrequency parameter must be used on both server (for passive proxies) and proxy (for active proxies). Note that if both ProxyConfigFrequency and ConfigFrequency are used, the proxy will log an error and terminate.

The default value of ProxyConfigFrequency has been lowered from 3600 to 10 seconds. Also, the default value of CacheUpdateFrequency on the server has been lowered from 60 to 10 seconds.

The server now uses the configuration cache to track proxy configuration changes using revision numbers, so the amount of cached data will increase and it might be necessary to increase the configuration cache size.

Note that the server configuration must be synced before any changes are synced to proxy. So if a user makes some changes and wants them to be synced to the proxy - the server configuration cache must be reloaded first.

Other

Automated database upgrade on proxies with SQLite

Upon the first launch after an upgrade, Zabbix proxy with SQLite3 now automatically dumps the existing older version of the database file and creates a new one for the current version. History data that has been stored in the SQLite database file is not preserved. Previously, the SQLite database file had to be recreated manually.

If Zabbix proxy version is older than the database file version, the proxy will log an error and terminate.

CSRF tokens

For enhanced security against CSRF (Cross Site Request Forgery) attacks, Zabbix frontend now uses randomly generated CSRF tokens instead of static session-based tokens. If your installation uses an IDS/IPS that checks for specific token names, it may be necessary to update its configuration to recognize the new token name, _csrf_token, in order to avoid false positive detections.

Thread-based preprocessing workers

As the item value preprocessing has been rewritten to use thread-based preprocessing workers, a new library is now required for Zabbix server/proxy - libevent_pthreads.

Non-mandatory fields in user configuration

The user group and user role fields are no longer mandatory in user configuration. However, if an internal Zabbix user is created without a user role, the user will not be able to log into Zabbix, using internal authentication.

Instant refresh of active checks

Previously, Zabbix agent (in active mode) received from Zabbix server or Zabbix proxy a full copy of the configuration once every two minutes (default). By introducing incremental configuration sync, full configuration is no longer sent when there are no changes to host or global regular expressions, thus the default sync interval has been reduced to 5 seconds.

'RefreshActiveChecks' parameter supported in Zabbix agent configuration file default value is changed to 5 seconds (previously 120). This can make connections more frequent and increase network usage especially if encryption is used.

JSON protocol for active agent checks has been updated to include config_revision and session ID. For more information, see Passive and active agent checks.

User macros also affect the incremental configuration sync. It is advisable to use host macros instead of global macros because adding, updating or deleting global macros forces incremental configuration update for all hosts.

Heartbeat support is deprecated

Starting from Zabbix 6.4 heartbeat sender is removed from the proxy, and therefore, Zabbix proxy item zabbix [process,heartbeat sender] is not supported and is removed from templates. HeartbeatFrequency parameter has been deprecated.

Autoregistration heartbeat for Zabbix server

The active agent autoregistration heartbeat for Zabbix server has been set to 120 seconds (the same as for Zabbix proxy). So in case a discovered host is deleted, the autoregistration will be rerun in 120 seconds.

Old numeric (float) value type is deprecated

Since Zabbix 5.0, numeric (float) data type has been switched to the new format to support precision of approximately 15 digits and extended value range from approximately -1.79E+308 to 1.79E+308. Now the old numeric type, which has been disabled, but remained supported, is deprecated and will be removed in an upcoming version.

If your installation is not upgraded to the numeric values of extended range, System information in the frontend will display a warning: "Database history tables upgraded: No. Support for the old numeric type is deprecated. Please upgrade to numeric values of extended range". In this case, see instructions for enabling the extended range of numeric values.

Date removed from export

The date element has been removed from the export format when exporting objects (hosts, templates, etc.).

Template versioning

To improve management and upgrade of templates, template versioning has been introduced.

In Data collection → Templates you can now see the template vendor and version, as well as filter templates by vendor and/or version.

Importing updated templates

Please note that templates must be upgraded manually if you are upgrading from previous versions. This can be done by importing the updated templates. You can find the updated templates in the zabbix/templates directory of the downloaded latest Zabbix version. While in Data collection → Templates you can import them from this directory.

It is also possible to download templates from Zabbix git repository directly.

Updating custom template vendor and version

For existing custom templates, template vendor and version can also be modified through the Template API.