These notes are for upgrading from Zabbix 6.4.x to Zabbix 7.0.0.
All notes are grouped into:
See also:
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:
Once the upgrade has been successfully completed, this option can be disabled:
The default location where Zabbix agent on Windows looks for the configuration file has been changed. Now the agent searches for it in the directory where the agent binary zabbix_agentd.exe is located (instead of C:\zabbix_agentd.conf
, as previously).
Zabbix agent 2 on Windows already searched for the default configuration file in the directory where the binary zabbix_agent2.exe is located. However, in the new version the agent 2 expects the configuration file to be named zabbix_agent2.conf
(instead of zabbix_agent2.win.conf
)
See also: Installing Zabbix agent on Windows.
Empty values are now allowed in plugin-related configuration parameters on Zabbix agent 2.
Prior to upgrading to Zabbix 7.0.0, it is necessary to manually upgrade TimescaleDB to use double precision data types if TimescaleDB is used with compression. You can tell if TimescaleDB is not using double precision data types by the warning in the System information frontend section or Zabbix server log: "Database is not upgraded to use double precision values. Support for the old numeric type will be removed in future versions."
For more information, see Old numeric (float) value type dropped.
The auditlog
table has been converted to hypertable on TimescaleDB in new installations.
To successfully upgrade existing installations, you must rerun the timescaledb.sql
script, located in database/postgresql, before starting Zabbix server. Zabbix server will log a warning, if started without running this script first.
See also:
Proxy records have been moved out of the hosts
table and are now stored in the new proxy
table.
Also, operational data of proxies (such as last access, version, compatibility) have been moved out of the host_rtdata
table and is now stored in the new proxy_rtdata
table.
There is also a new proxy object in API. All operations with proxies should be updated to be done via this new proxy object.
Based on the changes to item timeout configuration, both ODBC login timeout and query execution timeout for database monitor items are now limited to the Timeout parameter value set in the item configuration form.
wmi.get
and wmi.getall
, when used with Zabbix agent 2, now return a JSON with boolean values represented as strings (for example, "RealTimeProtectionEnabled": "True"
instead of "RealTimeProtectionEnabled": true
returned previously) to match the output format of these items on Zabbix agent;oracle.ts.stats
has a new conname parameter to specify the target container name. The JSON format of the returned data has been updated. When no tablespace, type, or conname is specified in the key parameters, the returned data will include an additional JSON level with the container name, allowing differentiation between containers.net.dns.*
items can no longer be configured without the name parameter. Although always listed as mandatory, the name parameter, if omitted, would previously resolve to a default value (zabbix.com), which is no longer the case.For the list of item changes that do no break compatibility, see What's new in Zabbix 7.0.0.
Zabbix now can read SNMP trap files from the correct place in case the active node is switched in a high-availability setup.
However, for this functionality to work it is required to update the time format in any bash, perl and SNMPTT scripts to "%Y-%m-%dT%H:%M:%S%z" (i.e. 2024-01-10T11:56:14+0300
).
See the list of API changes in Zabbix 7.0.0.
The minimum required PHP version has been raised from 7.4.0 to 8.0.0.
The support for Oracle as a backend database has been deprecated in Zabbix 7.0 and is expected to be completely removed in future versions.
Now, if a floating point value is received for an unsigned integer item, the value will be trimmed from the decimal part and saved as an integer. Previously a floating point value would make an integer item unsupported.
Time and date displays in the frontend now conform to the US standard time/date display when the default (en_US) frontend language is used.
Before | Now |
---|---|
After the upgrade all agent, HTTP agent and walk[OID]
SNMP checks will be moved to asynchronous pollers.
Previously cURL library features were detected at build time of Zabbix server, proxy or agent. If cURL features were upgraded, to make use of them the respective Zabbix component had to be recompiled.
Now only a restart is required for upgraded cURL library features to become available in Zabbix. Recompilation is no longer required. This is true for Zabbix server, proxy or agent.
In addition:
Upon upgrade, global timeouts for all supported item types will be set based on the Timeout
parameter value from the server configuration file. If a proxy is configured, then, by default, it will use the server's global timeout settings.
When using an upgraded server (version 7.0.0 or newer) with an older proxy or agent, the proxy or agent will work as before:
Timeout
parameter from the proxy configuration file;Timeout
parameter from the agent configuration file.The timeout parameters have been removed from the configuration files of Modbus and MQTT plugins. The request execution timeouts can now be set using the item configuration form.
In the new version the network discovery process has been reworked to allow concurrency between service checks. A new discovery manager process has been added along with a configurable number of discovery workers (or threads). The discovery manager processes discovery rules and creates a discovery job per each rule with tasks (service checks). The service checks are picked up and performed by the discovery workers.
The StartDiscoverers parameter now determines the total number of available discovery workers for discovery. The default number of StartDiscoverers has been upped from 1 to 5, and the range from 0-250 to 0-1000. The discoverer
processes from previous Zabbix versions have been dropped.
Additionally, the number of available workers per each rule is now configurable in the frontend. This parameter is optional. During the upgrade it will be set to "One" as in previous Zabbix versions.
All icons in the frontend have been switched from icon image sheets to fonts.
The default value for several configuration parameters has been changed:
These changes do not affect existing installations where these parameters are explicitly set.
Several aggregate functions have been updated. Now:
Since Zabbix 5.0.0, numeric (float) data type supports precision of approximately 15 digits and range from approximately -1.79E+308 to 1.79E+308. This is implemented by default in new installations. When upgrading existing installations that had been created before Zabbix 5.0, a database upgrade patch is applied automatically, except for TimescaleDB with compression.
For Oracle databases, older versions of MySQL databases, and large installations, the patch execution can take a lot of time. For this reason it is recommended to update the data type manually before starting the upgrade.
The patch alters data columns of history and trends tables, which usually contain lots of data, therefore it is expected to take some time to complete. Since the exact estimate cannot be predicted and depends on server performance, database management system configuration and version, it is recommended to first test the patch outside the production environment. With MySQL 8.0 and MariaDB 10.5 configured by default, the patch is known to be executed instantly for large tables due to efficient algorithm and the fact that previously the same double type was used but with limited precision, meaning that data itself does not need to be modified.
Please execute the patch (SQL files) for your database, as described on the Database upgrade to primary keys and double precision data types page.
Note that with TimescaleDB, compression support must only be turned on after applying this patch.
Important! Run these scripts for the server database only.
To apply a patch: