This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

2 Debian/Ubuntu/Raspbian

Overview

Official Zabbix packages are available for:

Debian 10 (Buster) Download
Debian 9 (Stretch) Download
Debian 8 (Jessie) Download
Ubuntu 20.04 (Focal Fossa) LTS Download
Ubuntu 18.04 (Bionic Beaver) LTS Download
Ubuntu 16.04 (Xenial Xerus) LTS Download
Ubuntu 14.04 (Trusty Tahr) LTS Download
Raspbian (Buster) Download
Raspbian (Stretch) Download

Adding Zabbix repository

Install the repository configuration package. This package contains apt (software package manager) configuration files.

For Debian 10, run the following commands:

Note! For Debian 9, substitute 'buster' with 'stretch' in the commands. For Debian 8, substitute 'buster' with 'jessie' in the commands.

# wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+buster_all.deb
       # dpkg -i zabbix-release_4.4-1+buster_all.deb
       # apt update

For Ubuntu 20.04 (focal), run the following commands:

# 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
  • For Ubuntu 18.04, substitute 'focal' with 'bionic' in the commands.
  • For Ubuntu 16.04, substitute 'focal' with 'xenial' in the commands.
  • For Ubuntu 14.04, substitute 'focal' with 'trusty' in the commands.

For Raspbian, run the following commands:

# wget https://repo.zabbix.com/zabbix/4.4/raspbian/pool/main/z/zabbix-release/zabbix-release_4.4-1+buster_all.deb
       # dpkg -i zabbix-release_4.4-1+buster_all.deb
       # apt update

Server/proxy/frontend installation

To install Zabbix server with MySQL support:

# apt install zabbix-server-mysql

To install Zabbix proxy with MySQL support:

# apt install zabbix-proxy-mysql

Substitute 'mysql' in the commands with 'pgsql' to use PostgreSQL, or with 'sqlite3' to use SQLite3 (proxy only).

To install Zabbix frontend:

# apt install zabbix-frontend-php zabbix-apache-conf

Substitute 'apache' in the command with 'nginx' if using the Nginx web server.

Creating database

For Zabbix server and proxy daemons a database is required. It is not needed to run Zabbix agent.

Separate databases are needed for Zabbix server and Zabbix proxy; they cannot use the same database. Therefore, if they are installed on the same host, their databases must be created with different names!

Create the database using the provided instructions for MySQL or PostgreSQL.

Importing data

Now import initial schema and data for the server with MySQL:

# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

You will be prompted to enter your newly created database password.

With PostgreSQL:

# zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -u zabbix psql zabbix

With TimescaleDB, in addition to the previous command, also run:

# zcat /usr/share/doc/zabbix-server-pgsql*/timescaledb.sql.gz | sudo -u zabbix psql zabbix

TimescaleDB is supported with Zabbix server only.

For proxy, import initial schema:

# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uzabbix -p zabbix

For proxy with PostgreSQL (or SQLite):

# zcat /usr/share/doc/zabbix-proxy-pgsql/schema.sql.gz | sudo -u zabbix psql zabbix
       # zcat /usr/share/doc/zabbix-proxy-sqlite3/schema.sql.gz | sqlite3 zabbix.db

Configure database for Zabbix server/proxy

Edit zabbix_server.conf (and zabbix_proxy.conf) to use their respective databases. For example:

# vi /etc/zabbix/zabbix_server.conf
       DBHost=localhost
       DBName=zabbix
       DBUser=zabbix
       DBPassword=<password>

In DBPassword use Zabbix database password for MySQL; PosgreSQL user password for PosgreSQL.

Use DBHost= with PostgreSQL. You might want to keep the default setting DBHost=localhost (or an IP address), but this would make PostgreSQL use a network socket for connecting to Zabbix. Refer to the respective section for RHEL/CentOS for instructions.

Starting Zabbix server process

It's time to start Zabbix server process and make it start at system boot:

# service zabbix-server apache2 php-fpm start
       # update-rc.d zabbix-server apache2 php-fpm enable

Substitute 'zabbix-server' with 'zabbix-proxy' to start Zabbix proxy process. Substitute 'apache2' with 'nginx' for Nginx web server.

SELinux configuration

Refer to the respective section for RHEL/CentOS.

As frontend and SELinux configuration is done, you need to restart Apache web server:

# service apache2 restart

Frontend configuration

Depending on the web server used (Apache/Nginx) edit the corresponding configuration file for Zabbix frontend:

  • For Apache the configuration file is located in /etc/zabbix/apache.conf. Some PHP settings are already configured. But it's necessary to uncomment the "date.timezone" setting and set the right timezone for you.
php_value max_execution_time 300
       php_value memory_limit 128M
       php_value post_max_size 16M
       php_value upload_max_filesize 2M
       php_value max_input_time 300
       php_value max_input_vars 10000
       php_value always_populate_raw_post_data -1
       # php_value date.timezone Europe/Riga
  • The zabbix-nginx-conf package installs a separate Nginx server for Zabbix frontend. Its configuration file is located in /etc/zabbix/nginx.conf. For Zabbix frontend to work, it's necessary to uncomment and set listen and/or server_name directives.
# listen 80;
       # server_name example.com;
  • Zabbix uses its own dedicated php-fpm connection pool with Nginx:

Its configuration file is located in /etc/zabbix/php-fpm.conf. Some PHP settings are already configured. But it's necessary to set the right date.timezone setting for you.

php_value[max_execution_time] = 300
       php_value[memory_limit] = 128M
       php_value[post_max_size] = 16M
       php_value[upload_max_filesize] = 2M
       php_value[max_input_time] = 300
       php_value[max_input_vars] = 10000
       ; php_value[date.timezone] = Europe/Riga

Now you are ready to proceed with frontend installation steps which will allow you to access your newly installed Zabbix.

Note that a Zabbix proxy does not have a frontend; it communicates with Zabbix server only.

Agent installation

To install the agent, run

# apt install zabbix-agent

To start the agent, run:

# service zabbix-agent start

Substitute 'zabbix-agent' with 'zabbix-agent2' in these commands if using Zabbix agent 2 (only Debian 9/10, Ubuntu 18.04/20.04).

If you want to run Zabbix agent as root, see here https://www.zabbix.com/documentation/4.4/manual/appendix/install/run_agent_as_root.

Java gateway installation

It is required to install Java gateway only if you want to monitor JMX applications. Java gateway is lightweight and does not require a database.

Once the required repository is added, you can install Zabbix Java gateway by running:

# apt install zabbix-java-gateway

Proceed to setup for more details on configuring and running Java gateway.