With Zabbix 5.0 LTS version we hosted Zabbix meetups all over the world in different languages to find out what’s new in Zabbix 5.0. Explore Zabbix founder and CEO Alexei Vladishev’s brief overview of the 30+ features and improvements made in Zabbix 5.0 LTS.
Contents
I. Zabbix 4.2 and Zabbix 4.4 (00:19)
II. Zabbix 5.0 (03:01)
1. Zabbix Agent 2 for Windows and Linux (06:53)
2. Secure by design (08:41)
3. Usability improvements in Zabbix 5.0 (14:08)
VI. Conclusion (48:08)
Today we are talking about Zabbix 5.0 LTS — a new major release, which was introduced a few days ago. My name is Alexei Vladyshev. I’m a founder and the CEO of Zabbix, I’m working on Zabbix for over 20 years already. I will give you a brief overview of the features and improvements we’ve made in Zabbix 5.0 LTS
Zabbix 4.2 and Zabbix 4.4
First, let’s have a quick recap of Zabbix 4.2 and 4.4 releases. In Zabbix 4.2 released in April 2019, we introduced:
- High-frequency monitoring with throttling for large-scale monitoring and for detecting problems as fast as possible.
- Data collection with HTTP agent so that Zabbix was able to collect data over HTTP protocol and communicate directly to external APIs.
- Prometheus support.
- Improved preprocessing thanks to validation rules and support of JavaScript, which is able to transform data in any possible way and to use it for monitoring purposes.
- Preprocessing by Proxy for better scalability.
- Enhanced tag management so that events and problems received metadata using tags.
In Zabbix 4.4 released in September 2019, we introduced:
- New Zabbix agent.
- Webhooks for notification and alerting.
- TimescaleDB support.
- Built-in knowledge base for metrics and triggers so that information about metrics and triggers became visible in Zabbix UI and users could see how to solve problems generated by triggers.
- New Zabbix templates.
Zabbix 5.0 LTS
On the Zabbix integration page, you can see that Zabbix is able to monitor different applications, devices, services, including cloud services. It can be integrated with a number of different solutions.
At the moment you may use a template, a box agent plugins to enhance data collection. On the other hand, Zabbix 5.0 offers Webhook integrations with external systems, including ticketing systems, ITSM systems, or third-party tools.
In Zabbix 5.0 LTS, we’ve extended the number of integrations with different ticketing and alerting systems.
Zabbix 5.0 also extended applications monitoring thanks to out-of-the-box templates and plugins.
We continue to increase the number of officially supported templates, plugins, and Webhook integrations, which will be available in our Git repository.
If you have your own plugin or a template, it’s very easy to share and to contribute to Zabbix:
- Sign Zabbix Contributor Agreement (ZCA) on https://www.zabbix.com.developers
- Make Zabbix Pull Request at https://git.zabbix.com
- Zabbix Dev Team will review and accept if everything is fine, and we’ll extend our official support.
Zabbix is free and open-source software, we don’t do any proprietary versions. We provide packages for various Linux distributions and container platforms and Linux appliance images for virtualization platforms. At the moment Zabbix is available as one-click deployment in different public clouds, such as Red Hat Openshift или OpenStack.
Zabbix Agent 2 for Windows and Linux
Zabbix 5.0 provides official support of Zabbix Agent 2 for Linux and Windows. I really believe that the new Zabbix agent is one of the most advanced monitoring agents on the market. The new Agent offers many useful features.
In addition, in Zabbix 5.0 we’ve introduced persistent storage for the new agent. That means that the metrics collected by Zabbix Agent 2 that can’t be transferred to the Zabbix server can be optionally stored in a local file system.
It’s a useful feature for unstable communications, for monitoring critical data, or satellite connections between Zabbix agent and Zabbix server.
Secure by design
1. Webhook over HTTP proxy. You don’t have to enable a direct connection with an external system, for instance, JIRA running in the cloud anymore.
Now you may set up and use your internal proxy which ensures better security.
2. In Zabbix 5.0 you can restrict available checks on the Agent side. This allows for defining Blacklists and Whitelists on a specific agent to limit remote commands, to restrict access to some metrics, specific files or file systems.
- Whitelist for MySQL related checks
AllowKey=mysql[*] DenyKey=*
- Blacklist to deny all shell scripts
DenyKey=system.run[*]
- Blacklist to deny access to /etc/password
DenyKey=vfs.file.contents[/etc/passwd,*]
3. New configurable ciphers are now supported, which may be useful for some sensitive environments running in compliance with security standards, for disabling weak ciphers, and creating whitelists of ciphers to be used for TLS communication.
4. In Zabbix 5.0, we now support encrypted connection to databases (MySQL and PostgreSQL for now).
5. Zabbix 5.0 supports SHA256 for stronger encryption of user password hashes.
6. Zabbix 5.0 supports secret macros. Now you can mark a user macro as secret not to expose some sensitive information. The secret macro value is not visible anywhere, it cannot be retrieved in UI, and cannot be exposed by the end-user in any way.
7. All connections inside Zabbix are now secure — we use HTTPS protocols, pre-shared key encryption for connections with Agents and proxy, and support whitelist and blacklist for agent metrics, etc.
8. SAML authentication for single sign-on is now supported, which is an enterprise-grade feature.
SAML enables Zabbix integration with various local and cloud identity providers such as Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, as well as Azure, AWS, or Google Cloud Platform.
Usability improvements in Zabbix 5.0
1. Zabbix 5.0 frontend is now optimized for wide screens. We’ve moved the top menu to the left side. You can have a full or minimized display or hide it.
2. You can now build dashboards faster with the copy/paste functionality for Zabbix widgets. Now, if you need to select a widget, press Copy
and Paste the widget to the same or any other dashboard.
3. In Zabbix 5.0, it is also possible to export graphs as PNG images from graph widgets. You only need to select a widget, then click Download image, and share it with your team.
4. We now have a filter by tags for some widgets, for instance, for Problem by severity or Problem hosts widgets. For instance, you can group some data for a host or a data center.
5. In Zabbix 5.0, UI modules allow for creating new menu entries or new pages, for extending existing frontend functionality or managing permission control.
The UI modules are fully independent and are shareable with other Zabbix users who can enable or disable them.
6. Now you can see the list of monitored devices in Monitoring > Hosts: the hosts and servers, interface, associated tags, problems, and quick navigation to specific host-related information as Latest data, Problems, Graphs, Screens, and Web monitoring.
We don’t have Monitoring > Web and Monitoring > Graphs tabs anymore. The data displayed in Monitoring > Hosts can be filtered by tags so that disabled devices can be displayed, for instance.
Monitoring > Hosts offers advanced filtering options. For instance, if you need a list of hosts encountering problems, you can filter by Problem severity or if you need a list of devices associated with a specific service, you may filter by the ‘Service’ tag.
7. Zabbix 5.0 offers a new preprocessing operator — Replace, which can be used instead of regular expressions, for instance. It can be also used for mapping, removing or replacing characters and strings.
8. We’ve also introduced a new operator for JSONPath, which returns property names of matching elements.
9. Threading for email notifications is now possible in your Inbox. All emails associated with a problem will be grouped by event ID.
10. User macros for IPMI user name and password or even secret macros for extra security can be used in Zabbix 5.0.
11. We’ve introduced a mass update for user macros for hosts and templates as it’s much easier to manage user macros on a host or a template level. You can Add, Update, Remove a macro for a set of hosts or Remove all macros.
12. Message templates for Media types are now supported. In Zabbix 5.0, you can define message parameters in a new Message templates tab.
You can also define different templates for different Media types.
In earlier versions, you had to manage message formats on an Action level, which was not easy in case of multiple actions.
Now you can manage them globally on a Media type level.
In case of Zabbix integration with some external system, it comes with predefined templates.
13. New CLI tool to test JS scripts was implemented as JavaScript is used for Webhooks, integrations, data transformation rules, preprocessing, etc.
To troubleshoot all those scripts, you may use a new CLI utility — zabbix_js, which executes JavaScript.
14. In Zabbix 5.0, there is triggers support of the text operations which allows for comparing with text constants,
{host:zabbix.version.last()}="5.0.0" {host:zabbix.version.last()}="{$ZABBIX.VERSION}
comparing the last value with the previous one,
{host:text.last()}<>{host.text.prev()}
or
{host:text.last(#1)}<>{host.text.prev(#2)}
or comparing the values of different items.
{hostA:textA.last()}={hostB:textB.last()}
15. Automation & discovery.
- Discovery for JMX counters is now available for Java machines monitoring with new JMX check operators:
jmx.get[]
and
jmx.discovery[]
- Discovery for Windows perf counters is used to return a list of discovered performance counters, for instance, when discovering processors, file systems, or applications on the Windows server.
- Better ODBC monitoring. In earlier versions, to use ODBC monitoring you had to define data sources in /etc/odbc.ini file, which cannot be accessed from the Zabbix frontend. In Zabbix, 5.0 everything can be templated and be a part of the item key: server name, driver name, port, user ID, password, or database.
Here, you can also use a secret macro for user name and password for extra security.
- Discovery of IPMI sensors. Zabbix 5.0 provides for simple templates for hardware monitoring with IPMI protocol.
16. Testing items from UI — a new feature used for host items and for templated items.
Any problems are now visible in Zabbix UI.
The same is true for items templates. In addition, to find out why an element is not supported, you need just to click Test.
17. Media type testing support introduced in Zabbix 4.x is maintained. It is important for Zabbix integrations with external systems, for instance, ticketing systems.
18. User macros for host prototypes. We’ve implemented user macros support so you can define user macros for host prototypes and even use LLD macros in values in the description. So, you can use any value received in JSON in user macros.
19. Support of Float64 data type, which is normally used for very large values. The benefit of Float64 support is compatibility with Float64 data returned by Prometheus.
In Zabbix, historical tables will not be migrated to Float64 automatically. The upgrade is optional and can be launched manually by executing double.sql patch. Upgrade will require some downtime depending on the size of your database.
20. We’ve implemented scalability improvements and now Zabbix UI is ready to handle millions of devices.
- Drop-downs for host selections replaced with host search control.
- Hardcoded maximum size of Overview grid introduced.
- Redesigned Monitoring > Hosts > Graphs (multiselection of graphs, all graphs display, or pattern matching).
- Paging introduced whenever possible (Monitoring > Hosts > Web).
21. Compression for efficiency and lower cost. We’ve implemented TimescaleDB experimental support by installing TimescaleDB extension to our PostgreSQL in Zabbix 4.x. Advantages of TimescaleDB involve automatic partitioning and automatic removal of old data by Zabbix.
In Zabbix 5.0 you just need to configure settings in Administration > General > Housekeeping and Zabbix will do it for you. TimescaleDB is a performance-oriented database disregarding the size of your database.
Now you can also configure compression parameters in Administration > General > Housekeeping. Compression allows us to save disk space (almost tenfold as user experience suggests).
22. SNMP settings on the host interface level, which is very useful for network monitoring. There is only one item type — SNMP agent, only one template, and you can specify all security-related settings on the host-interface level, and easily switch between SNMPv2 and SNMPv3.
23. In Zabbix 5.0, availability monitoring will respect proxy availability, that is, Zabbix 5.0 will display a root cause of availability problems when monitoring is performed with nodata trigger:
{HostA:item.nodata(1m)}=1
Now the nodata function respects proxy availability, and if you need strict results to warn users of no data available regardless of proxy availability, you can use strict function:
{HostA:item.nodata(1m,strict)}=1
24. In Zabbix 5.0, it’s possible to manage LLD rules globally. Now we have advanced filtering options for discovery rules to manage, for instance, Not supported discovery rules and to update them. This feature can be efficiently used for troubleshooting and mass operations.
25. Ability to unacknowledge events can be used to fix mistakes and to manage workflows dependent on this acknowledgment. In addition, the unacknowledge screen is displayed in the acknowledge window now, which improves usability.
26. Override for LLD rules is now supported. This feature allows for setting special processing rules, overriding triggers severity, discovering temporary file systems or not, setting different update intervals for different items, different history storage periods, etc.
For instance, you can change triggers priority for Oracle file systems only.
27. Zabbix 5.0 supports new macros:
28. Other improvements in Zabbix 5.0:
29. Removing legacy to make a better product
Conclusion
Upgrade is easy as always! Just install the new server binaries and frontend files, execute them, and Zabbix will update your database. Visit our upgrade notes page for more information.
UPGRADE NOTES!
1. Upgrade to Float64 is optional.
2. TimescaleDB compressed data are read-only
3. Minimum supported version — PHP7.2.
4. DB2 is not supported anymore.