Zabbix proxy offloads the server or allows monitoring hosts that are unavailable for some reason (for example if they are located in a local network - its sometimes easier to forward a port for the proxy than to make the same for all hosts or make a VLAN), or it may be used as a backup system for maintenance. Proxy works pretty much similar to the server, minus the web server part: it has its own database, each period of time (specified in config) it asks the server what hosts it must look after, then it gets data from them and sends it further for processing.
Installation
Commands may vary for different systems, we are using a 20.04 Ubuntu with Mysql database, and commands for other OS are listed here.
Install everything needed (with root or sudo):
dpkg -i zabbix-release_6.4-1+ubuntu20.04_all.deb
apt update
apt install zabbix-proxy-mysql zabbix-sql-scripts
MySQL
Let's build a DB and get it ready for work:
CREATE DATABASE zabbix_proxy CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *zabbix_proxy.* TO 'zabbix'@'localhost';
set global log_bin_trust_function_creators = 1;
exit;
Add the schemes and starting data:
Log into MySQL again:
Configuring proxy
- Modify / etc/zabbix/zabbix_proxy.conf uncomment and fill in these lines if required:
- Server= type here its address
- Hostname= call it somethingDBName=, DBUser= - stays the same unless anything changed
- DBPassword= the one made formerly
Get proxy up:
service zabbix-proxy enable
Check if it's working fine via:
Configuring host
Open the control panel and go to Administration > Proxies > Create. Type its hostname, and choose active mode unless you change it.
After that, when adding hosts you can make them monitored via proxy or change the existing ones. While creating new hosts don't forget to add them to the agent's config, otherwise, it won’t work.
Conclusion
We looked into the reasons to use a proxy, how it can be done, and how to get it installed and ready for use.