Welcome to Hawatel's blog!
June 4, 2024 | Infrastructure management / General / Monitoring
Zabbix 7.0 released! What's new? Discover the key features and improvements
Zabbix 7.0, the latest version of the popular IT monitoring tool, has just been released. It brings a number of new features and improvements that significantly enhance the capabilities of IT infrastructure monitoring and management. Enterprise companies can be particularly pleased with the new version. Why? Read our article to learn more about the most important changes and enhancements in Zabbix 7.0.
If you are interested in Zabbix, you may also like our presentation with an introduction to Zabbix monitoring. The presentation is available here.
Synthetic end-user web monitoring
Synthetic network user monitoring is a monitoring technique that simulates the actions of real users on websites or web applications using scripts, which is particularly useful for testing.
Zabbix 7.0 brings a number of new features in this area, including:
- Simulating real user interaction using a real browser.
- Testing various aspects of a website or web application - availability, performance, transaction statuses and more.
- Using Selenium WebDriver for synthetic network monitoring (Selenium WebDriver uses a headless browser for testing).
- New item type - browser, the browser item uses JavaScript to collect network monitoring data in JSON format. Dependent items are created to collect various metrics from the main browser item.
- The new Binary information type can be used to collect and store images.
Asynchronous data polling in Zabbix 7.0
Data polling is the regular collection of data (e.g. collecting data from the server every 30 seconds). Asynchronous data polling in Zabbix 7.0 means that it is possible to independently collect multiple data from multiple sources. This is especially important for large environments, as it significantly increases system performance and scalability.
Zabbix collects data through various data collectors, such as pollers, trappers, pingers, and others.
Zabbix 7.0 introduces specific types of pollers:
- SNMP poller: Collects data using SNMP over UDP, optimized to work with network devices (SNMPGET, SNMPBULKGET).
- Zabbix Agent poller: Collects data from Zabbix passive agents using the Zabbix communication protocol, optimized for communicating with agents in passive mode.
- HTTP check poller: Collects data from websites using the libcurl library, optimized to work with web queries.
Each poller type is now an asynchronous process, allowing each process to collect up to 1000 values in a single cycle. The value of the maximum number of simultaneous checks can be determined by the MaxConcurrentChecksPerPoller parameter, the default value of which is 1000. Asynchronous processes allow tasks to be performed independently of each other, without blocking the main program, which significantly increases the efficiency and speed of the system.
High availability (HA) and load balancing (LB) in Zabbix 7.0
Zabbix 7.0 focuses on high availability and load balancing, which translates into more reliable and scalable monitoring of IT infrastructure, minimizing downtime and ensuring business continuity of key services.
What's new in proxy groups:
- Minimum number of online proxies: You can configure the minimum number of online proxies for a proxy group to be considered online.
- Excluding older proxy versions: Older version proxies (and the hosts assigned to them) will be excluded from host rebalancing.
- Proxy group offline status: If a proxy group is offline (less than the minimum number of proxies online), hosts assigned to this group will no longer be monitored.
Host assignment is triggered by:
- Changing the proxy status
- Changing the host status
Hosts are balanced between proxies based on the number of hosts monitored by each proxy in the group.
To prevent constant rebalancing of hosts, the following logic will be implemented:
- No load rebalancing if some of the hosts monitored by the proxy go offline.
- If a host comes online, it will be assigned to the proxy with the fewest hosts.
The agent must be configured to accept connections from the proxy in the proxy group:
- Active agent mode: The ServerActive parameter must contain the IP of at least one (preferably several) group proxy nodes.
- Passive agent mode: The Server parameter must contain the IP addresses of all proxy nodes in the proxy group.
Proxy memory buffer in Zabbix 7.0
Zabbix 7.0 introduces new proxy cache modes:
- Drive: Current operation
- Memory: Data is stored only in shared memory
- Hybrid: The cache runs in memory mode with the database as a backup
Each value collected by the Zabbix proxy passes through the database. A database (MySQL, Postgres or SQLITE) is required on each proxy. For large proxies, this can cause a bottleneck.
Historical data is stored in and transferred directly from shared memory. If the buffer runs out of memory, old data will be discarded.
Data is sent directly to the Zabbix server. The buffer normally runs in memory mode and is flushed to the database if there is not enough space.
Centralized control of data collection timeouts
In Zabbix 7.0 it will be possible to centrally control data collection timeouts. The current general timeout specified in the configuration file will affect all data collection on the server or proxy. However, Zabbix 7.0 will introduce a timeout at the item level for most checks, which will allow you to adjust the waiting time individually for each item.
Timeout can be defined via the Zabbix user interface in the range from 1 to 600 seconds. It will also be possible to define a timeout at the server level globally for all items, at the proxy for items monitored by them, and for each item individually. This new solution will allow for better control and adjustment of waiting times to the specific needs of monitored resources.
Additionally, a timeout at the proxy level will affect all items collected by that proxy, but each item type can be tuned individually, and timeouts will act as default values, with the possibility of forced overrides. Thanks to this, Zabbix users will have greater flexibility in managing timeouts and better control over the data collection process.
Concurrent network discovery
Zabbix 7.0 introduces concurrent network discovery, which will speed up the discovery process on large network segments.
As part of the Zabbix 7.0 update, new processes will appear, such as discovery manager and discovery worker (previously known as discoverer process).
The ability to process concurrently will be configured at the discovery rule level. Additionally, new internal items will be introduced, such as the number of network checks in the discovery queue and the use of the discovery manager and worker. With these new features, administrators will be able to better manage the network discovery process, especially for large and complex networks.
Sending metrics via HTTP
Zabbix 7.0 introduces a new API method - history.push:
- Data received by the history.push method can only be accepted by Zabbix trapper (trapping) and HTTP Agent items when the trapping option is enabled.
- The sender IP address will be verified according to the Allow hosts configuration parameter.
- Permissions to execute an API method can be added/removed in the user role configuration.
Passing custom input to frontend scripts
Scripts can use {MANUALINPUT} macros to reference custom input. The input can be specified as a comma-separated list of options or can be any string of characters that matches a pattern.
New ways of visualizing data
Zabbix 7.0 introduces a variety of new widgets:
- Honeycomb
- Gauge
- Pie chart
- Host and item navigator
- Top triggers
Dynamic dashboard widget navigation
A new communication framework for widgets has been introduced, enabling communication between them:
- A widget can behave as a data source for other widgets
- The information displayed in dashboard widgets is dynamically updated based on the data source
- Widgets can serve as a data source for a host or item.
Multi-factor authentication
Zabbix 7.0 offers support for two-factor authentication (MFA). Authorization is based on one-time time passwords (TOTP) and performed using Duo Universal Prompt.
Other features and improvements
- Zabbix's licensing model has been updated to GNU Affero General Public License version 3 (AGPLv3)
- An optional Zabbix server and frontend update check has been introduced via the System information section/widget
- New net.dns.perf and net.dns.get items
- Support for user macros in item prototypes and item names
- Ability to customize media for JIT users
- Major performance improvements in frontend permission checking
- HTTP Connector for native Kafka topics
- Improved behavior when the same host group is discovered by multiple LLDs
- Faster recalculation of host maintenance status
- Possibility to execute remote commands by an active Zabbix agent
- Remote command execution via active checks
- Improved not supported item handling in aggregation calculations
- Expanded aggregation calculation value matching and other improvements
- Ability to assign tags during automatic host registration
- Support for generating PDF reports
- Enhanced handling of item error messages via validation preprocessing
- Testing/validating configuration files via command line
- New jsonpath and xmlpath trigger functions
- ...And a lot more!