Zabbix agent 2 is a new generation of Zabbix agent and may be used in place of Zabbix agent. Zabbix agent 2 has been developed to:
Agent 2 is written in Go (with some C code of Zabbix agent reused). A configured Go environment with a currently supported Go version is required for building Zabbix agent 2.
Agent 2 does not have built-in daemonization support on Linux; it can be run as a Windows service.
Passive checks work similarly to Zabbix agent. Active checks support scheduled/flexible intervals and check concurrency within one active server.
By default, Zabbix agent 2 will schedule the first data collection for active checks at a conditionally random time, which is less than item update interval, to prevent spikes in resource usage. To perform active checks immediately after the agent restart, set ForceActiveChecksOnStart
parameter (all active checks) or Plugins.<Plugin name>.ForceActiveChecksOnStart
(only specified plugin checks) in the confgiuration file. Plugin-level parameter, if set, will override global parameter. Forcing active checks on start is supported since Zabbix 5.4.12 on Unix-like systems only.
Check concurrency
Checks from different plugins can be executed concurrently. The number of concurrent checks within one plugin is limited by the plugin capacity setting. Each plugin may have a hardcoded capacity setting (100 being default) that can be lowered using the Plugins.<PluginName>.Capacity=N
setting in the Plugins configuration parameter.
See also: Plugin development guidelines.
Agent 2 is supported for Linux and Windows platforms.
If installing from packages, Agent 2 is supported on:
On Windows Agent 2 is supported on:
Zabbix agent 2 is available in pre-compiled Zabbix packages. To compile Zabbix agent 2 from sources you have to specify the --enable-agent2
configure option.
The following command line parameters can be used with Zabbix agent 2:
Parameter | Description |
---|---|
-c --config <config-file> | Path to the configuration file. You may use this option to specify a configuration file that is not the default one. On UNIX, default is /usr/local/etc/zabbix_agent2.conf or as set by compile-time variables --sysconfdir or --prefix |
-f --foreground | Run Zabbix agent in foreground (default: true). |
-p --print | Print known items and exit. Note: To return user parameter results as well, you must specify the configuration file (if it is not in the default location). |
-t --test <item key> | Test specified item and exit. Note: To return user parameter results as well, you must specify the configuration file (if it is not in the default location). |
-h --help | Print help information and exit. |
-v --verbose | Print debugging information. Use this option with -p and -t options. |
-V --version | Print agent version number and exit. |
-R --runtime-control <option> | Perform administrative functions. See runtime control. |
Specific examples of using command line parameters:
Runtime control provides some options for remote control.
Option | Description |
---|---|
log_level_increase | Increase log level. |
log_level_decrease | Decrease log level. |
metrics | List available metrics. |
version | Display agent version. |
help | Display help information on runtime control. |
Examples:
The configuration parameters of agent 2 are mostly compatible with Zabbix agent with some exceptions.
New parameters | Description |
---|---|
ControlSocket | The runtime control socket path. Agent 2 uses a control socket for runtime commands. |
EnablePersistentBuffer, PersistentBufferFile, PersistentBufferPeriod |
These parameters are used to configure persistent storage on agent 2 for active items. |
ForceActiveChecksOnStart | Determines whether the agent should perform active checks immediately after restart or spread evenly over time. Supported since Zabbix 5.4.12. |
Plugins | Plugins may have their own parameters, in the format Plugins.<Plugin name>.<Parameter>=<value> . A common plugin parameter is Capacity, setting the limit of checks that can be executed at the same time. |
StatusPort | The port agent 2 will be listening on for HTTP status request and display of a list of configured plugins and some internal parameters |
Dropped parameters | Description |
AllowRoot, User | Not supported because daemonization is not supported. |
LoadModule, LoadModulePath | Loadable modules are not supported. |
StartAgents | This parameter was used in Zabbix agent to increase passive check concurrency or disable them. In Agent 2, the concurrency is configured at a plugin level and can be limited by a capacity setting. Whereas disabling passive checks is not currently supported. |
HostInterface, HostInterfaceItem | Not yet supported. |
For more details see the configuration file options for zabbix_agent2.
Starting from version 4.4.8 Zabbix agent 2 can also be compiled with older OpenSSL versions (1.0.1, 1.0.2).
In this case Zabbix provides mutexes for locking in OpenSSL. If a mutex lock or unlock fails then an error message is printed to the standard error stream (STDERR) and Agent 2 exits with return code 2 or 3, respectively.