FIXME This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)

4 Proxy

Visão geral

Zabbix proxy is a process that may collect monitoring data from one or more monitored devices and send the information to the Zabbix server, essentially working on behalf of the server. All collected data is buffered locally and then transferred to the Zabbix server the proxy belongs to.

Deploying a proxy is optional, but may be very beneficial to distribute the load of a single Zabbix server. If only proxies collect data, processing on the server becomes less CPU and disk I/O hungry.

A Zabbix proxy is the ideal solution for centralized monitoring of remote locations, branches and networks with no local administrators.

Zabbix proxy requires a separate database.

The databases that are supported with Zabbix proxy are SQLite, MySQL and PostgreSQL. Using Oracle or IBM DB2 is at your own risk and may contain limitations as is the case with low-level discovery rules.

See also: Using proxies in a distributed environment

Proxy process

Zabbix proxy runs as a daemon process. The proxy can be started by executing:

shell> cd sbin
       shell> ./zabbix_proxy

You can use the following command line parameters with Zabbix proxy:

-c --config <file>              absolute path to the configuration file
       -R --runtime-control <option>   perform administrative functions
       -h --help                       give this help
       -V --version                    display version number

Runtime control is not supported on OpenBSD and NetBSD.

Examples of command line parameters:

shell> zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf
       shell> zabbix_proxy --help
       shell> zabbix_proxy -V
Runtime control

Runtime control options:

Option Description Target
config_cache_reload Reload configuration cache. Ignored if cache is being currently loaded.
Active Zabbix proxy will connect to the Zabbix server and request configuration data.
log_level_increase[=<target>] Increase log level, affects all processes if target is not specified. pid - Process identifier (1 to 65535)
process type - All processes of specified type (e.g., poller)
process type,N - Process type and number (e.g., poller,3)
log_level_decrease[=<target>] Decrease log level, affects all processes if target is not specified.

Allowed range of PIDs for changing the log level of a single Zabbx process is from 1 to 65535. On systems with large PIDs <process type,N> target option can be used for changing the log level of a single process.

Example of using runtime control to reload the proxy configuration cache:

shell> zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R config_cache_reload

Examples of using runtime control to change log level:

Increase log level of all processes:
       shell> zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase
       
       Increase log level of second poller process:
       shell> zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=poller,2
       
       Increase log level of process with PID 1234:
       shell> zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase=1234
       
       Decrease log level of all http poller processes:
       shell> zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_decrease="http poller"
Process user

Zabbix proxy is designed to run as a non-root user. It will run as whatever non-root user it is started as. So you can run proxy as any non-root user without any issues.

If you will try to run it as 'root', it will switch to a hardcoded 'zabbix' user, which must be present on your system. You can only run proxy as 'root' if you modify the 'AllowRoot' parameter in the proxy configuration file accordingly.

Configuration file

See the configuration file options for details on configuring zabbix_proxy.