Differences between revisions 19 and 20
Revision 19 as of 2021-01-31 20:37:53
Size: 8017
Editor: ?JacquesDeBroin
Revision 20 as of 2021-02-01 07:49:00
Size: 7875
Editor: PaulWise
Comment: drop apt-get invocations, use service instead of systemctl
Deletions are marked like this. Additions are marked like this.
Line 53: Line 53:
Install the [[DebianPkg:zabbix-server-mysql]] package:

apt-get install zabbix-server-mysql
Install the [[DebianPkg:zabbix-server-mysql]] package.
Line 114: Line 110:
systemctl reload zabbix-server service zabbix-server reload
Line 118: Line 114:
Line 119: Line 116:

apt-get install zabbix-frontend-php
Line 130: Line 123:
systemctl reload apache2 service apache2 reload
Line 180: Line 173:
Line 181: Line 175:

apt-get install zabbix-agent
Line 201: Line 191:
systemctl restart zabbix-agent service zabbix-agent restart

Translation(s): none

Zabbix and Debian


Zabbix is a server/client monitoring system and it's also packaged in Debian. Its most relevant features are:

  • web-based monitoring and administration
  • performance, security and service availability checks
  • distributed monitoring, up to thousands of nodes
  • autodiscovery
  • charting, trending, SLA reporting
  • sending alerts via e-mail, SMS and Jabber
  • data stored in a relational database

Documentation and informations

You can find informations about Zabbix here:

Debian packages

Debian splits Zabbix functionalities in few packages.

Look at the related descriptions in order to understand which of these packages fit your needs.

Most of these Zabbix packages are available in Debian jessie, jessie-backports, stretch, stretch-backports, and above.


The following instructions will try to be as generic as possible and should work in Debian jessie, jessie-backports, stretch, and above.

Installing Zabbix server using MySQL/MariaDB

You should already have a MySQL server. If you have not, first install the default-mysql-server package.

All the below commands should be run as root.

Install the zabbix-server-mysql package.

Now open a MySQL shell as administrator:

mysql --defaults-extra-file=/etc/mysql/debian.cnf

If you are using Buster, the table creation script will fail with a row size error. As a workaound, temporarily disable INNODB strict mode:

set global innodb_strict_mode='OFF';

Create a new database (e.g. "zabbix"), create a related MySQL/MariaDB username (e.g. "zabbix") with a strong password, and grant permissions to that username:

mysql --defaults-extra-file=/etc/mysql/debian.cnf
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'here-an-example-password-but-please-change-me';
GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'localhost';

Do not forget the password you just entered for your Zabbix username because you have to write it down also in the configuration:

nano /etc/zabbix/zabbix_server.conf


Now it's the time to populate your Zabbix database. Decompress the SQL files provided in /usr/share and import them:

cd /usr/share/zabbix-server-mysql
zcat schema.sql.gz images.sql.gz data.sql.gz | mysql zabbix --user=zabbix --password=here-an-example-password-but-please-change-me

Note that it may need a couple of minutes to create and populate all the ~113 MySQL tables in your zabbix database. In the meanwhile you can entertain yourself with a Debian game.

For Buster, fix the table columns and re-enable INNODB strict mode:

alter table `host_inventory` modify `name` varchar(128) default '' not null, modify `alias` varchar(128) default '' not null, modify `os` varchar(128) default '' not null, modify `os_short` varchar(128) default '' not null;

set global innodb_strict_mode='ON';

Reload your server:

service zabbix-server reload

Installing Zabbix PHP frontend

After installing the server, you can install the zabbix-frontend-php package that provides an user interface to administer your Zabbix instance. You can see some Zabbix frontend screenshots.

If you use the Apache HTTP server and you just want to use the default Zabbix configuration, just remember to specify a PHP date.timezone in /etc/apache2/conf-available/zabbix-frontend-php.conf. If you want some additional PHP restrictions, you may want to set the open_basedir restriction to /usr/share/zabbix/:/var/lib/zabbix:/etc/zabbix:/usr/share/javascript.

Then you can enable that Apache configuration and you can reload the webserver:

a2enconf zabbix-frontend-php
service apache2 reload

At this point you can follow the installation instructions for your http://your-host/zabbix. It may asks you of populating manually the /etc/zabbix/zabbix.conf.php configuration file. After that you should see something as «Congratulations! You have successfully installed Zabbix frontend. Configuration file "/etc/zabbix/zabbix.conf.php" created.» and you can do the login into your Zabbix frontend.

Anyway you can just create the file /etc/zabbix/zabbix.conf.php manually with the following minimal content:

// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'here-an-example-password-but-please-change-me';

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';

$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'My Server Name';


Now try visiting again your http://your-host/zabbix page, and you should see a login page instead of the installation process.

The default username/password credentials for you Zabbix frontend will be:

  • Admin

  • zabbix

Note: never expose your Zabbix frontend to the world before changing these default credentials! You should quickly change your password visiting the /profile.php page of your Zabbix frontend.

Have fun with your Zabbix frontend! Now you should know what you have to do with Zabbix. In any case you can explore the official documentation.

Securing Zabbix PHP frontend

You may want to restrict the directories allowed to be read by your Zabbix PHP frontend, setting a PHP open_basedir directive.

As example, put this in your /etc/apache2/conf-available/zabbix-frontend-php.conf, near the other php_values:

php_admin_value open_basedir /usr/share/zabbix/:/var/lib/zabbix:/etc/zabbix:/usr/share/javascript:/usr/share/fonts

Installing a Zabbix agent

To monitor your Debian hosts, install the zabbix-agent package. In the default passive mode, the Zabbix server connects to the agent to obtain status information about the host.

Edit /etc/zabbix/zabbix_agentd.conf to allow access to the Zabbix server by specifying it's hostname or IP address in the Server option:


The Zabbix agent listens for requests from the Zabbix server on TCP port 10050. Add required rules to the agent host firewall. For example:

$IPT -A INPUT -i eth0 -p tcp --dport 10050 -j ACCEPT

Restart the agent:

service zabbix-agent restart

(These instructions are released under the CC BY-SA 4.0 / GNU GFL / GNU GPL v3+ at your opinion by Valerio Bozzolan - 2018)