Zabbix is enterprise open source monitoring software for networks and applications, created by Alexei Vladishev. It is designed to monitor and track the status of various network services, servers, and other network hardware.
Zabbix uses MySQL, PostgreSQL, SQLite, Oracle or IBM DB2 to store data. Its backend is written in C and the web frontend is written in PHP. Zabbix offers several monitoring options:
- Simple checks can verify the availability and responsiveness of standard services such as SMTP or HTTP without installing any software on the monitored host.
- A Zabbix agent can also be installed on UNIX and Windows hosts to monitor statistics such as CPU load, network utilization, disk space, etc.
- As an alternative to installing an agent on hosts, Zabbix includes support for monitoring via SNMP, TCP and ICMP checks, as well as over IPMI, JMX, SSH, Telnet and using custom parameters. Zabbix supports a variety of near-real-time notification mechanisms, including XMPP.
The following guide will help you setup and configure Zabbix 3.2 on Debian Jessie
Add the repository
dpkg -i zabbix-release_3.2-1+jessie_all.deb
apt-get install zabbix-server-mysql zabbix-frontend-php
Initialize database user with a password 12345(please change the password)
Then create the zabbix database and zabbixuser
shell> mysql -uroot -p<root_password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
Then import initial schema and data. You will be prompted to enter your newly created password.
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
Database configuration for Zabbix server
Edit server host, name, user and password in zabbix_server.conf as follows, where DBPassword is the password you've set creating initial database::
Starting Zabbix server process
Now you may start Zabbix server process and make it start at system boot
service zabbix-server start
update-rc.d zabbix-server enable
PHP configuration for Zabbix frontend
Apache configuration file for Zabbix frontend 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 always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
After that you need to restart Apache web server:
service apache2 restart
Installing using Docker Containers
Run zabbix mysql container using volumes option so that the database is saved on the host
docker run -d -v /var/lib/mysql:/var/lib/mysql --name zabbix-db --env="MARIADB_USER=zabbix" --env="MARIADB_PASS=zabbix" -p 3306:3306 monitoringartist/zabbix-db-mariadb
Then run the zabbix container which connect to the database container
docker run -d --name zabbix -p 80:80 -p 10051:10051 -v /etc/localtime:/etc/localtime:ro --link zabbix-db:zabbix.db --env="ZS_DBHost=zabbix.db" --env="ZS_DBUser=zabbix" --env="ZS_DBPassword=zabbix" --env="XXL_zapix=true" --env="XXL_grapher=true" monitoringartist/zabbix-xxl:latest
You can then simply do database backups and restores using the following commands from host
mysqldump -uzabbix -h172.17.0.1 -pzabbix zabbix > /srv/zabbix_db_dump.sql
mysql -uzabbix -h172.17.0.1 -pzabbix zabbix < /srv/zabbix_db_dump.sql