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:
Currently the support of Zabbix agent 2 is experimental.
Agent 2 is written in Go (with some C code of Zabbix agent reused). A configured Go version 1.12+ environment is required for building Zabbix agent 2.
Agent 2 does not support daemonization.
Passive checks work similarly to Zabbix agent. Active checks support scheduled/flexible intervals and check concurrency within one active server.
** 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.<Plugin name>.Capacity=N
setting in the Plugins configuration parameter.
Agent 2 is supported for Linux and Windows platforms.
Agent 2 for Windows is supported since Zabbix 4.4.4. Currently, only a limited number of items is available on Windows.
If installing from packages, 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. This option is supported since Zabbix 4.4.7. |
-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 |
---|---|
loglevel increase | Increase log level. |
loglevel 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. |
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.