This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

8 Upgrade notes for 2.4.0

Node-based distributed monitoring removed

In Zabbix 2.4.0 the support of node-based distributed monitoring has been discontinued due to existing limitations and potential problems with reliability in large environments. While a new version of distributed monitoring may be considered and developed in the future, for the time being using proxies becomes the main distributed monitoring option in Zabbix.

For the remaining node-based DM users, during an upgrade to Zabbix 2.4.0, each upgraded node will be switched to a standalone Zabbix server keeping all configuration and history information from the local node and from the child nodes as well.

To maintain uniqueness of data from non-local nodes, all the fields will be prefixes with N<nodeid>_. If the length of the new value exceeds max field size, it will be trimmed. Highly unlikely, but if the new value already exists in the database, the situation will be caught by a check on duplicates. Global macros will be processed in a special way by adding N<nodeid>_ after the dollar sign, for example, {$N123_MACRO}.

Support of the "node watcher" second parameter has been removed from the zabbix[process] internal item. This item has also been removed from Template App Zabbix Server. In order to fix it, either manually delete the item or import the new template and mark Delete missing option for items.

Case-sensitive MySQL database

A case-sensitive MySQL database is required for proper server work. It is recommended to create a case-sensitive MySQL database during new installations. If you created a MySQL database with the utf8 character set previously, in order to support case sensitiveness of stored data, you need to convert the charset to utf8_bin.

Handling automatically discovered hosts

Hosts created by a network discovery rule will be deleted automatically if a discovered entity is not in the rule's IP range anymore. Hosts are deleted immediately.

Internal items always processed

Internal items previously were not processed if a host went into maintenance with 'no data collection'. Now internal items are always processed by server or proxy regardless of host maintenance status.

Item changes

zabbix[proxy,<proxyname>,"lastaccess"] internal item is now always processed by Zabbix server regardless of host location (on server or proxy).

JSON formatting

The formatting of JSON objects (with tabs and new lines) has been removed, which allows the traffic to be reduced by 20-30% when data is sent between Zabbix services. Additionally, the escaping of forward slash or solidus (/) has also been removed. JSON, formatted as in the previous versions of Zabbix, would still be accepted as valid.

Log file handling

Now, at DebugLevel=0 only basic information is printed to the logfile/syslog. For agents it is Zabbix version, used config file, started/stopped Zabbix processes. For proxy and server - Zabbix version, enabled features, used config file, DB version, started/stopped Zabbix processes. The logging for Zabbix agent is also consistent on Unix and Windows machines now.

Daemon changes

Disabled hosts, items and triggers are stored in configuration cache now. Adjusting CacheSize configuration parameter might be needed due to increased memory usage.

Server and proxy now refuse to start if StartPollersUnreachable configuration parameter is 0, but regular, IPMI or Java pollers are started. Otherwise, hosts that become unreachable would never be checked again.

Proxy now refuses to start with a server database. In some older versions a proxy could be started with a server database (e.g. by mistake) and somehow it worked. After upgrading to Zabbix 2.4 this is not the case anymore. Follow instructions to create a new, valid proxy database, if necessary. A similar check has been added to server to prevent starting it with a proxy database.

Support for PHP mutexes has been removed on the server side due to licensing issues. While it was not recommended to use Zabbix server and frontend with SQLite3 database before, this change makes it even less recommended, because simultaneous database access with Zabbix server and frontend may now corrupt the database. Note that using Zabbix proxy with SQLite3 database is still a perfectly valid solution.

Carriage return symbols (CR) are not stripped from notification messages anymore. Any custom scripts used to process action messages must be updated to support the new newline format (CRLF).

Housekeeper changes

On zabbix_server and zabbix_proxy startup housekeeping is postponed for 30 minutes instead of running at once. This will lower startup load for both these processes.

Script result changes

User parameters, global scripts, system.run[] items and external checks will now return standard error along with standard output. In the corner case of standard error as numeric value a numeric item will change state from NOTSUPPORTED to normal.
Note: Windows agent has this functionality since 1.8.5

Empty result is now allowed for system.run[]. system.run item configured with textual value type (character, log or text) will change state from unsupported to normal if the command returns empty result.

Changes regarding multibyte string support

Zabbix frontend now displays fatal error if mbstring PHP functions are not enabled. There are no string wrapper functions anymore; they have been replaced by string and/or mbstring functions accordingly. Additionally, the mbstring.func_overload option from php.ini is required to be off, and a warning will be displayed in Status of Zabbix if it is enabled.

Unified date and time format

Date and time format has been unified across Zabbix frontend according to the ISO 8601 standard of YYYY-MM-DD hh:mm:ss. The new format is implemented everywhere except graphs.

Changes in latest data page

The latest data section no longer has the host and host group selection dropdowns. Instead, those two choices can be made within an expanded filter section, which can be used flexibly for displaying the exact set of items you want.

Dropping green status icons in item list

Previously, green status icons were displayed in the last Error column of the item list, for error-free items, which could be misunderstood as if, on the contrary, the items had errors. Now the green icons are displayed no more and, additionally, the column is renamed to Info. For items with problems, as before, a red square icon is displayed in this column.

The same change is applied to the trigger list as well.

Graph palette changes

The default colour palette for graphs has been changed to use green colour first instead of red. Red will be used second. The bar report palette nr. 4 has also been slightly changed. This won't change existing custom graphs, but the colours will be different when creating new custom graphs.

Converting triggers to the new syntax

The database upgrade patches will automatically convert the existing triggers to the new syntax.

Note that along with the syntax change, unary - operator associativity has changed from right-associative to non-associative, meaning that -(-1) should now be used instead of --1.

Dropped support of round-off constants

The descriptions of ZBX_UNITS_ROUNDOFF_THRESHOLD, ZBX_UNITS_ROUNDOFF_UPPER_LIMIT, ZBX_UNITS_ROUNDOFF_MIDDLE_LIMIT and ZBX_UNITS_ROUNDOFF_LOWER_LIMIT definitions have been removed from the documentation since their functionality no longer matches their intended purpose. They are still present in the code and any changes made to them will remain, but their modification may cause unexpected results.