Установка сервера Zabbix 4.0 в Debian
С установкой Zabbix на сервер с Debian.
Подключаем репозитории zabbix 4.0.
Debian 9:
sudo wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+stretch_all.deb
sudo dpkg -i zabbix-release_4.0-3+stretch_all.deb
Debian 10:
sudo wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-3+buster_all.deb
sudo dpkg -i zabbix-release_4.0-3+buster_all.deb
Обновляем информацию о репозиториях, а заодно и последние обновления поставим:
sudo apt-get update && apt-get upgrade
Устанавливаем zabbix сервер:
sudo apt-get install zabbix-server-mysql zabbix-frontend-php
Он по-умолчанию ставится с apache, который сразу же запускается. Остановим его и отключим:
sudo systemctl stop apache2
sudo systemctl disable apache2
Ставим отдельно nginx и php-fpm:
sudo apt-get install nginx php-fpm
Запускаем скрипт начальной конфигурации mysql и задаем пароль для root. Все остальное можно оставить по-умолчанию.
sudo /usr/bin/mysql_secure_installation
Отредактируем некоторые параметры Mariadb в конфиге /etc/mysql/mariadb.conf.d/50-server.cnf. Добавляем туда в секцию [mysqld]:
sudo mcedit /etc/mysql/mariadb.conf.d/50-server.cnf
innodb_file_per_table=1
innodb_buffer_pool_size = 768M # внимание на параметр! установить примерно в 2 раза меньше объема оперативной памяти сервера
innodb_buffer_pool_instances=1 # увеличивать на 1 каждый GB innodb_buffer_pool_size
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
Перезапустите mariadb и убедитесь, что она запустилась.
# systemctl restart mariadb
# netstat -tulnp | grep mysqld
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 16753/mysqld
Cоздадим базу данных, пользователя zabbix, и заполним базу.
sudo mysql -uroot -p
Enter password:
> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'zabpassword';
exit
sudo zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
Теперь редактируем файл конфигурации сервера заббикс. Прописываем данные для подключения к БД, отключаем ipv6 и увеличиваем стандартный timeout.
sudo mcedit /etc/zabbix/zabbix_server.conf
Изменяем указанные строки, остальные не трогаем:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabpassword
ListenIP=0.0.0.0
Timeout=10
Этих минимальных настроек достаточно, для работы сервера. Я рекомендую увеличивать параметр Timeout, так как он отвечает за время ожидания ответа от агента, snmp устройства или внешней проверки. Иногда стандартного значения в 4 секунды бывает недостаточно. В частности, когда используется какой-то скрипт, который долго выполняется, для получения метрики. Поставьте секунд 10.
Запускаем zabbix и добавляем в автозагрузку.
sudo service zabbix-server start
sudo service zabbix-server enable
Проверяем запустился ли.
# netstat -tulnp | grep zabbix_server
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 16847/zabbix_server
Все в порядке. Запускаем nginx, который у нас будет выступать в качестве web сервера.
# systemctl start nginx
# systemctl enable nginx
Убедимся, что в качестве web сервера работает nginx.
netstat -tulnp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17075/nginx: master
tcp6 0 0 :::80 :::* LISTEN 17075/nginx: master
Нам нужно сделать конфиг nginx для работы web интерфейса zabbix. Если у вас nginx работает на том же сервере, где сам zabbix, и других виртуальных хостов нет и не будет, то правьте сразу дефолтный — /etc/nginx/sites-available/default.conf. Приводим его к следующему виду:
sudo mcedit /etc/nginx/sites-available/default.conf
server {
listen 80;
server_name localhost;
root /usr/share/zabbix;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock; # проверьте этот путь, для разных версий php он будет разный
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param PHP_VALUE "
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = Europe/Moscow
always_populate_raw_post_data = -1
";
fastcgi_buffers 8 256k;
fastcgi_buffer_size 128k;
fastcgi_intercept_errors on;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
Проверим конфиг на ошибки и если все в порядке, перезапустим nginx.
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
sudo nginx -s reload
С серверной частью закончили. Для продолжения установки zabbix сервера переходим к настройке Zabbix Frontend.
Идем в браузер и открываем адрес http://192.168.13.117. Вы должны увидеть установщик Zabbix 4.0

Нажимаем Next step и начинаем настройку web интерфейса. На следующей странице будет проверка требований. У вас должны быть выполнены все требования. В зависимости от системы и версии php, информация будет в каждом случае разниться.

На следующем этапе указываем параметры доступа к базе данных, потом Zabbix server details. Там можно ничего не указывать, а оставить дефолтные параметры.
Потом будет страница с проверкой введенных данных. Если все в порядке, то заканчивайте установку. В конце увидите сообщение: Congratulations! You have successfully installed Zabbix frontend.

После нажатия на Finish увидите окно авторизации Zabbix сервера.

Стандартная учетная запись для входа в web интерфейс zabbix следующая:
- Пользователь Admin
- Пароль zabbix
После логина увидите стандартный dashboard.

На этом установка бесплатного сервера мониторинга zabbix окончена.