# 4 Proxy

#### Overview

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.

::: noteimportant
Note that databases supported with Zabbix proxy
are SQLite, MySQL and PostgreSQL. Using Oracle or IBM DB2 is at your own
risk and may contain some limitations as, for example, in [return
values](/manual/discovery/low_level_discovery#overview) of low-level
discovery rules.
:::

See also: [Using proxies in a distributed
environment](/manual/distributed_monitoring/proxies)

#### 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

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|
|------|-----------|
|config\_cache\_reload|Reload configuration cache. Ignored if cache is being currently loaded.<br>Active Zabbix proxy will connect to the Zabbix server and request configuration data.|

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

::: noteclassic
Runtime control is not supported on OpenBSD and
NetBSD.
:::

##### 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.

These settings currently cannot be user configured, neither during
compilation nor in the configuration file.

##### Configuration file

See the [configuration file](/manual/appendix/config/zabbix_proxy)
options for details on configuring zabbix\_proxy.

#### Supported platforms

Zabbix proxy runs on the same list of
[server\#supported platforms](/manual/concepts/server#supported platforms)
as Zabbix server.
