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
- Navigate to Administration > Proxies in the Zabbix Web UI and select Create proxy.
- Enter the exact
Hostnamedefined in the proxy configuration file. - Configure the specific host (10.10.10.30) under Configuration > Hosts.
- 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.