Install and Configure Zabbix Proxy
I install Zabbix Proxy to manage communication between the Server and Agents.
It is important to know which operating system you intend to use for your proxy. To find which operating system you are using, at the prompt, type one of these commands,
On my raspberry pi, hostnamectl returns Operating System: Raspbian GNU/Linux 10 (buster)
I will install it on a Raspberry Pi. My Raspberry Pi is running Raspbian Buster Lite (No desktop GUI).
The commands used in this lecture are, (note the buster_all in the commands below)
dpkg -i zabbix-release_5.0-1+buster_all.deb
sudo apt update
sudo apt install -y zabbix-proxy-sqlite3
Edit Proxy Configuration file
Edit the Server, Hostname and DBName parameters.
sudo nano /etc/zabbix/zabbix_proxy.conf
|Proxymode||0||0 = Active. This is the default already|
|Server||zabbix.seanwasere.com||The DNS name of my Zabbix server. You could use IP address if you don't have a DNS name.|
|Hostname||raspberrypi||(see notes below)|
|DBName||/tmp/zabbix_proxy.db||I am using the SQLite3 database option|
I use the actual network hostname for this value to avoid ambiguity between the several different uses of the term Host name in the Zabbix documentation and UI. I just use the same name as is returned from entering the command
hostname on my proxy server. When I enter
hostname on my proxy server, it returns
I save, then I enter
sudo service zabbix-proxy start
Add Proxy to Zabbix Server UI
I then create the proxy in Zabbix Server UI, then after several seconds, I refresh the proxy config screen and it will show that the proxy is now in communication with the server.
Zabbix UI -> Administration -> Proxies
|Proxy name||raspberrypi||(see notes below)|
|Proxy mode||Active||The is the same as is set on the configuration file on the proxy server.|
The Proxy name must be the same name you configured in the Hostname parameter in the proxy configuration file /etc/zabbix/zabbix_proxy.conf on your proxy server. In my example, it doesn't matter that my Zabbix server is on a different network than the proxy. All messages received on the Zabbix Server from the external Proxy will contain this hostname in the payload, so the Zabbix Server process will reject anything that doesn't match.
Also note that the Proxy name is the only required parameter on this form. You don't need anything else to make it work.
For extra security also use PSK encryption, but that is discussed later on the course in the section Enable PSK Encryption. The process is conceptually the same for the Proxy, except, you add your PSK values to the /etc/zabbix/zabbix_proxy.conf on your proxy server, rather than the agent configs /etc/zabbix/zabbix_agentd.conf as discussed in the example. You also configure this on the Zabbix UI in the Administration-->proxies-->[Your proxy]-->Encryption. This method is for communications between the Zabbix server and the Proxy only. I advise doing the Agent example of setting up PSK before trying to do PSK encryption for the Zabbix Server<-->Proxy communications unless you are totally confident you know what you are doing. Make sure all your communications between all your hosts, proxies, server are working before adding encryption to any parts of the communications between any components, since it wil make problem solving much harder. Solve one problem at a time.
Other Operating Systems
First install the repository for your OS.
Ubuntu 20.04 Focal
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb dpkg -i zabbix-release_5.0-1+focal_all.deb apt update
Ubuntu 18.04 Bionic
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb dpkg -i zabbix-release_5.0-1+bionic_all.deb apt update
Ubuntu 16.04 Xenial
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+xenial_all.deb dpkg -i zabbix-release_5.0-1+xenial_all.deb apt update
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm dnf clean all
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all
sudo wget https://repo.zabbix.com/zabbix/5.0/raspbian/pool/main/z/zabbix-release/zabbix-release_5.0-1+buster_all.deb sudo dpkg -i zabbix-release_5.0-1+buster_all.deb sudo apt update
Ubuntu 20.04 Focal
wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+focal_all.deb dpkg -i zabbix-release_4.4-1+focal_all.deb apt update
Ubuntu 18.04 Bionic
wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb dpkg -i zabbix-release_4.4-1+bionic_all.deb apt update
Ubuntu 16.04 Xenial
wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+xenial_all.deb dpkg -i zabbix-release_4.4-1+xenial_all.deb apt update
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm dnf clean all
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm yum clean all
sudo wget https://repo.zabbix.com/zabbix/4.4/raspbian/pool/main/z/zabbix-release/zabbix-release_4.4-1+buster_all.deb sudo dpkg -i zabbix-release_4.4-1+buster_all.deb sudo apt update
Install the Schema
There are 3 choices of package for the Zabbix Proxy.
With the sqlite3 version, you won't need to install the database schema since it will be automatically created when the proxy is first run. Note that it can sometimes take several minutes to first create the sqlite3 db file.
If you do want to create the schema first then
zcat /usr/share/doc/zabbix-proxy-sqlite3/schema.sql.gz | sqlite3 zabbix_proxy.db
zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uzabbix -p zabbix
zcat /usr/share/doc/zabbix-proxy-pgsql/schema.sql.gz | sudo -u zabbix psql zabbix
The zcat command can occasionally take several minutes to complete.
Install the Zabbix Proxy Service
sudo apt install zabbix-proxy-sqlite3 zabbix-agent
sudo apt install zabbix-proxy-mysql zabbix-agent
sudo apt install zabbix-proxy-pgsql zabbix-agent
sudo yum install zabbix-proxy-sqlite3 zabbix-agent
sudo yum install zabbix-proxy-mysql zabbix-agent
sudo yum install zabbix-proxy-pgsql zabbix-agent
sudo dnf install zabbix-proxy-sqlite3 zabbix-agent
sudo dnf install zabbix-proxy-mysql zabbix-agent
sudo dnf install zabbix-proxy-pgsql zabbix-agent
Edit Proxy Configuration File
See #zabbix_proxyconf for Proxymode, Hostname and Server settings.
Update these temp settings below with yours.
DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=<password>
Be aware that the Zabbix Server schema is different from the Zabbix Proxy schema. The Zabbix Proxy should use it's own database and not the Zabbix Servers.
Troubleshooting Proxy Setup
Double check notes above.
Check the output of
sudo service zabbix-proxy status
Check the output of
sudo tail -f /var/log/zabbix/zabbix_proxy.log
A common problem is the name of your proxy in the Zabbix User Interface,
Administration-->Proxies should be the same as your Hostname setting in the Zabbix proxy config in
For more information about installing on Debian/Ubuntu/Raspbian visit, https://www.zabbix.com/documentation/current/manual/installation/install_from_packages/debian_ubuntu
For more information about installing on Red Hat/Centos visit, https://www.zabbix.com/documentation/current/manual/installation/install_from_packages/rhel_centos
PSK Encryption between the Proxy and Server
Later on, you may be tempted to add PSK encryption between your Zabbix server and the Proxy. PSK is discussed more later on in the course.
You may see an error in the Proxy logs, "cannot send proxy data to server at "zabbix.your-domain.tld": connection of type "TLS with PSK" is not allowed for proxy "your-proxy"
When setting up PSK encryption for communications specifically between the Proxy and Server, you should add the PSK Identity and Secret to Administration-->Proxies-->[Your proxy]-->Encryption and also adjust the settings inside the file /etc/zabbix/zabbix_proxy.conf
If you also want Encryption between your Proxy and its local Agent, then create another secret for the agent, set its PSK settings in the Proxy Agents Host configuration at Configuration-->Hosts-->[Your proxy]-->Encryption, and modify the settings in the file /etc/zabbix/zabbix_agentd.conf
Understand that the Proxy process, and the Proxies own Agent process are two different things with there own configurations. The proxies own agent is discussed in the next section.