Implementing Zabbix Proxy for Distributed Monitoring

Overview

Zabbix Proxy acts as an intermediary, collecting performance metrics and availability data from monitored nodes and forwarding them to the central Zabbix Server. This architecture effectively reduces the processing burden on the primary server, facilitates monitoring across isolated network segments, and allows for massive horizontal scaling in environments with thousands of hosts. Note that a proxy buffers data locally and does not perform trigger calculations, event processing, or alert dispatching.

Architectural Setup

  • Primary Server: 192.168.1.100
  • Proxy Node: 192.168.1.20 (Public/Management) and 10.10.10.20 (Internal Segment)
  • Target Host: 10.10.10.30

The Primary Server communicates with the Proxy, while the Proxy communicates with the Target Host in the internal network.

Configuring the Proxy Node

Database Initialization

Ensure a database service is active, then execute the following commands:

CREATE DATABASE zabbix_proxy_db CHARACTER SET utf8mb4;
GRANT ALL PRIVILEGES ON zabbix_proxy_db.* TO 'zabbix_user'@'localhost' IDENTIFIED BY 'secure_password';
FLUSH PRIVILEGES;

Installation and Compilation

Install the necessary dependencies and build the proxy from source:

yum install -y gcc gcc-c++ libcurl-devel libevent-devel net-snmp-devel
# Download and extract the source archive
tar -xf zabbix-source.tar.gz && cd zabbix-source
./configure --prefix=/opt/zabbix_proxy --enable-proxy --with-mysql --with-net-snmp --with-libcurl
make && make install
# Populate the database schema
mysql -u zabbix_user -p secure_password zabbix_proxy_db < database/mysql/schema.sql

Proxy Service Configuraton

Edit /opt/zabbix_proxy/etc/zabbix_proxy.conf:

Server=192.168.1.100
Hostname=ZabbixProxy_01
DBHost=localhost
DBName=zabbix_proxy_db
DBUser=zabbix_user
DBPassword=secure_password
ConfigFrequency=60

Start the binary using /opt/zabbix_proxy/sbin/zabbix_proxy. Verify status with ss -tulnp | grep 10051.

Configuring the Target Host

On the client machine (10.10.10.30), install the Zabbix agent and update /etc/zabbix/zabbix_agentd.conf to communicate with the proxy:

Server=10.10.10.20
ServerActive=10.10.10.20

Restart the agent via systemctl restart zabbix-agent.

Zabbix Server Integration

  1. Navigate to Administration > Proxies in the Zabbix Web UI and select Create proxy.
  2. Enter the exact Hostname defined in the proxy configuration file.
  3. Configure the specific host (10.10.10.30) under Configuration > Hosts.
  4. In the host settings, set the Monitored by proxy field to the newly created proxy entity.

Verification and Troubleshooting

If monitoring data does not appear, verify connectivity from the proxy node to the host using the zabbix_get utility found in the proxy's bin directory:

/opt/zabbix_proxy/bin/zabbix_get -s 10.10.10.30 -k agent.ping

If the command returns 1, the proxy is successfully reaching the agent. If values are missing in the dashboard, confirm that the Proxy configuration matches the Zabbix Server's registration name precisely.

Tags: Zabbix monitoring infrastructure Linux

Posted on Sat, 11 Jul 2026 16:37:35 +0000 by Naki-BoT