These notes are for upgrading from Zabbix 4.0.x to Zabbix 4.2.0. All notes are grouped into:
Critical
- the most critical information related to the upgrade process and the changes in Zabbix functionalityInformational
- all remaining information describing the changes in Zabbix functionalityIt is possible to upgrade to Zabbix 4.2.0 from versions before Zabbix 4.0.0. See the upgrade procedure section for all relevant information about upgrading from previous Zabbix versions.
For hosts monitored by proxies, all item (including low-level discovery rules, dependent items) value preprocessing will now be done on the proxy.
Given new preprocessing options such as Javascript, extensive validation and throttling options, preprocessing may become a server bottleneck thus preprocessing by proxies offers the necessary scalability. Note that since this is not a configurable setting the affected proxies will require more resources after the upgrade, especially if heavier preprocessing is involved.
Because of this change, keeping proxies running during the server upgrade process will bring no benefit as during proxy upgrade their old data will be discarded and no new data will be gathered until proxy configuration is synced with server.
It is also no longer possible to use the officially unsupported possibility to start the upgraded server and have older, yet unupgraded proxies report data to a newer server. This approach now is officially disabled when upgrading to 4.2 (or later) from any version before 4.2, as the server will ignore data from unupgraded proxies.
In order to support discovery item value preprocessing and custom paths to low-level discovery (LLD) macro values in a JSON document, the format of the JSON returned by low-level discovery rules has been changed: it is no longer expected that the JSON will contain the "data" object. Instead, low-level discovery will now accept a normal JSON containing an array.
While the "data" element has been removed from all native items related to discovery, for backward compatibility Zabbix will still accept the JSON notation with a "data" element, though its use is discouraged. If the JSON contains an object with only one "data" array element, then it will automatically extract the content of the element using JSONPath $.data
.
As a result of the changes above, newer agents no longer will be able to work with an older Zabbix server.
PHP GD library minimum version has been upped from 2.0 to 2.0.28 to support animated GIFs in maps.
Processing low-level discovery has been split from data gathering processes into its own processing. Due to this, depending on how heavy low-level discovery is in your environment, you may:
The new zabbix[lld_queue]
internal item can be used to monitor if the default number of StartLLDProcessors is enough.
Several API features that have been deprecated since Zabbix 3.4, are now completely removed:
httptest.create
, httptest.update
methods: support of string format for 'headers' and 'variables' fields in both web scenario and web scenario step objects has been dropped;map.create
, map.update
methods: support of 'elementid' in map element object has been dropped.As the global search page has been moved to MVC, its URL has changed from https://localhost/zabbix/search.php?search=Zabbix
to https://localhost/zabbix/zabbix.php?action=search&search=Zabbix
.
Host sorting if the 'Host group' map option is selected, is now done non-casesensitively.
Zabbix sender response messages have been changed from:
info from server: "processed: 100; failed: 0; total: 100; seconds spent: 0.013683"
sent:100; skipped: 0; total: 100
to:
Response from "127.0.0.1:10051": "processed: 100; failed: 0; total: 100; seconds spent: 0.000247"
sent: 100; skipped: 0; total: 100
or, when sent to multiple servers:
Response from "127.0.0.1:10051": "processed: 100; failed: 0; total: 100; seconds spent: 0.000247"
Response from "192.168.0.1:10052": "processed: 100; failed: 0; total: 100; seconds spent: 0.000391"
Response from "localhost:10053": "processed: 100; failed: 0; total: 100; seconds spent: 0.000086"
sent: 100; skipped: 0; total: 100