Сервер Zabbix используется для сбора и анализа информации о состоянии сетевых узлов. В этой статье будет рассмотрен процесс установки и развертывания веб-интерфейса для его управления. Мы будем использовать MariaDB/MySQL в качестве сервера базы данных. Версия операционной системы, которая была использована для написания инструкций, — 20.04 LTS (также протестирована на 22.04), версия устанавливаемого Zabbix — 6.
Подготовка сервера
- Время
- Брандмауэр
Установка веб-сервера
- MariaDB
- nginx
- PHP + PHP-FPM
- NGINX + PHP
Установка сервера Zabbix
- Установка
- Настройка базы данных
- Настройка zabbix
- Запуск zabbix-server
- Настройка nginx
- Установка службы управления
Настройка агента Zabbix на сервере
Другие инструкции для Zabbix
Подготовка сервера
Перед установкой Zabbix мы выполняем подготовительные процедуры.
Для начала сделаем следующее
1. Точное время
Для получения актуальной информации необходимо, чтобы сервер имел точное время.
Для этого сначала установите точный часовой пояс:
timedatectl set-timezone europe/berlin
* В этом примере установлено время Берлина.
Затем установите и запустите службу синхронизации времени:
apt install chrony
systemctl enable chrony
systemctl start chrony
2. Настройка брандмауэра
Для доступа к серверу Zabbix откройте следующие порты:
iptables -I INPUT -p tcp —match multiport —dports 80,443 -j ACCEPT
iptables -I INPUT -p tcp —match multiport —dports 10050,10051 -j ACCEPT
iptables -I INPUT -p udp —match multiport —dports 10050,10051 -j ACCEPT
* где 80 — порт для http-запросов (веб-интерфейс); 443 — для https-запросов (веб-интерфейс); 10050 — порты для получения информации от агентов Zabbix.
Чтобы сохранить правила, используйте
apt install iptables-persistent
netfilter persistent save
3. Обновите список пакетов в репозитории:
apt update
Если наша система чистая и на ней не работают критические службы, стоит обновить установленные пакеты:
apt upgrade
Подготовка системы завершена.
Установка веб-сервера
Сервер Zabbix будет управляться через веб-интерфейс. Для этого нужно установить и настроить веб-сервер, БД и PHP.
MariaDB
В этом руководстве мы будем использовать сервер баз данных MariaDB. Для Zabbix версии 6 требуется MariaDB версии 10.05.00 и выше. Но слишком новая версия также может не поддерживаться сервером zabbix. Необходимо уточнить системные требования на официальной странице.
Репозиторий Ubuntu может не содержать необходимую версию MariaDB, поэтому мы подключим репозиторий разработчика. Для этого перейдите по ссылке downloads.mariadb.org/mariadb/repositories и выберите нашу версию операционной системы, последнюю стабильную и поддерживаемую версию MariaDB и географическое расположение репозитория, например:

Ниже вы увидите инструкции по добавлению репозитория и установке MariaDB
sudo apt-get install apt-transport-https curl
sudo curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc «https://mariadb.org/mariadb_release_signing_key.asc»
sudo sh -c «echo «deb https://mirror.creoline.net/mariadb/repo/10.10/ubuntu focal main» >>/etc/apt/sources.list»
Обновите кэш пакетов:
apt update
Установите MariaDB:
apt install mariadb-server
Разрешите автозапуск сервера базы данных и запустите MariaDB:
systemctl enable mariadb
systemctl start mariadb
Установите пароль для суперпользователя БД:
mysqladmin -u root password
* после ввода команды система потребует ввести пароль дважды.
Веб-сервер
Мы будем использовать веб-сервер NGINX.
Чтобы установить его, введите команду:
apt install nginx
Запустите nginx и разрешите ему автоматический запуск:
systemctl enable nginx
systemctl start nginx
Открываем веб-браузер и переходим по ссылке http://<IP-адрес сервера>/ — мы должны увидеть окно приветствия:

VPS Linux
VPS-хостинг с виртуализацией KVM
Удаленный доступ/управление
Готовое решение
Виртуализация KVM
Поддержка 24 часа в сутки
PHP и PHP-FPM
Интерфейс Zabbix разработан на PHP. Наш веб-сервер должен обрабатывать скрипты, написанные на этом языке. Для Zabbix версии 6 требуется версия PHP 7.2 или выше.
Установите php и необходимые компоненты:
apt install php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-bcmath
Чтобы настроить php, откройте файл:
vi /etc/php/7.4/fpm/php.ini
* где 7.4 — версия PHP. В вашем случае это может быть другая версия. Вы можете проверить это с помощью команды php -v.
Отредактируйте следующие параметры:
date.timezone = «Europe/Berlin»
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
max_input_vars = 10000
* Где:
date.timezone — часовой пояс. В нашем примере установлено московское время.
max_execution_time — разрешенное время выполнения скрипта. Если скрипт выполняется дольше, система его прервет.
post_max_size — максимальный объем передачи данных с помощью метода POST.
max_input_time — время в секундах, которое PHP должен потратить на анализ входных данных GET и POST.
max_input_vars — ограниченное количество входных переменных, которые могут быть переданы серверу в одном запросе.
Разрешите php-fpm работать и перезапустите его:
systemctl enable php7.4-fpm
systemctl restart php7.4-fpm
NGINX + PHP
Чтобы NGINX мог обрабатывать PHP, откройте файл конфигурации:
vi /etc/nginx/sites-enabled/default
В разделе location добавьте параметр index:
index index.php;
В разделе server добавьте следующее:
location ~ \.php$ {
set $root_path /var/www/html;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
}
* где /var/www/html — корневой путь для хранения скриптов; /run/php/php7.4-fpm.sock — путь к файлу сокета php-fpm (точное расположение файла можно найти в файле конфигурации /etc/php/7.4/fpm/pool.d/www.conf).
Проверка настроек nginx:
nginx -t
И перезагрузите его:
systemctl restart nginx
Создайте index.php со следующим содержанием:
vi /var/www/html/index.php
<?php phpinfo(); ?>
Откройте веб-браузер и перейдите по ссылке http://<IP-адрес сервера>/ — теперь мы должны увидеть итог PHP и его настройки.
Веб-сервер готов к работе с Zabbix Web.
Установка и настройка сервера Zabbix
Перейдем к установке самого сервера Zabbix.
Установка
Сначала установим репозиторий последней версии Zabbix. Для этого перейдите на страницу https://repo.zabbix.com/zabbix/ и перейдите к разделу с последней версией пакета — затем перейдите к ubuntu/pool/main/z/zabbix-release/ — скопируйте ссылку на последнюю версию релиза:

Обратите внимание, что вам нужно скопировать ссылку на файл для вашей версии Ubuntu — в нашем примере это 20.04. Вы можете посмотреть свою версию операционной системы с помощью команды:
cat /etc/os-release | grep VERSION_ID
Загрузите файл репозитория с помощью команды:
wget https://repo.zabbix.com/zabbix/6.3/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.3-3%2Bubuntu18.04_all.deb
Установите его:
dpkg -i zabbix-release_*.deb
Обновите списки пакетов:
apt update
Установите сервер, введя команду:
apt install zabbix-server-mysql zabbix-frontend-php zabbix-get zabbix-sql-scripts
Настройка базы данных
Мы вводим оболочку для ввода команд sql:
mysql -uroot -p
Создаем базу данных:
> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;
* мы создали базу данных zabbix.
Создаем пользователя для подключения и работы с созданной базой данных:
> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY “zabbixpassword”;
* в этом примере мы создали пользователя zabbix с доступом к базе данных zabbix и паролем zabbixpassword.
Выйдите из оболочки sql:
> \q
Как часть zabbix, существует готовая схема для MySQL / MariaDB или postgreSQL DB. В нашем случае нам нужна MySQL.
Чтобы применить схему, перейдите в каталог:
cd /usr/share/zabbix-sql-scripts/mysql
В предыдущих версиях Zabbix путь к дампу базы данных был /usr/share/doc/zabbix-sql-scripts/mysql. Если мы не смогли найти нужный каталог с дампом, можно попробовать выполнить поиск с помощью команды:
find / -type f -iname server.sql.gz
Распакуйте архив с дампом базы данных:
gunzip server.sql.gz
Восстановление базы из их дампа:
mysql -u root -p zabbix <server.sql
* после ввода команды система запросит пароль. Вы должны ввести пароль, который мы установили после установки MariaDB.
Настройка zabbix
Откройте файл конфигурации zabbix
vi /etc/zabbix/zabbix_server.conf
Добавляем строку
DBPassword=zabbixpassword
* настраиваем сервер на подключение к базе данных с паролем zabbixpassword, который был установлен при создании базы данных для zabbix.
И проверяем следующие строки:
DBName=zabbix
DBUser=zabbix
* база данных и имя пользователя должны быть zabbix (как мы создали в MariaDB).
Создаем каталог для размещения файлов конфигурации (по каким-то причинам он может не быть создан во время установки):
mkdir /etc/zabbix/zabbix_server.conf.d
Запуск zabbix-server
Разрешаем автозапуск сервера мониторинга
systemctl enable zabbix-server
После этого запускаем сам сервер zabbix
systemctl start zabbix-server
Настройка nginx
Во время установки zabbix-web файлы копируются в каталог /usr/share/zabbix. Наш веб-сервер работает с каталогом /var/www/html.
Чтобы изменить это, откройте файл конфигурации nginx:
vi /etc/nginx/sites-enabled/default
Отредактируйте root и установите параметры $root_path:
root /usr/share/zabbix
location ~ \.php$ {
set $root_path /usr/share/zabbix;
}
Перезапустите nginx
systemctl restart nginx
Завершение установки сервера Zabbix
Откройте браузер и перейдите по адресу http://<IP-адрес сервера>/ — откроется страница установки Zabbix Web.
Выберите желаемый язык установки и нажмите «Следующий шаг»
Если список языков не содержит нужный нам, установите локали:
dpkg-reconfigure locales
И перезапустите обработчик PHP, в нашем случае:
systemctl restart php7.4-fpm
Перезагрузите страницу установки и выберите желаемый язык.
В следующем окне внимательно просмотрите результаты проверки веб-сервера — справа должно быть все в порядке. Если это не так, проверьте настройки и исправьте предупреждения и ошибки, а затем перезапустите страницу F5, чтобы проверить настройки еще раз.
Когда все результаты в порядке, нажмите «Следующий шаг».
В следующем окне мы оставляем настройки подключения к базе данных без изменений — дополнительно вводим пароль, который был установлен при создании пользователя zabbix. Затем нажимаем «Следующий шаг»:

Введите пароль для пользователя Zabbix
* в нашем случае пароль был zabbixpassword;
В следующем окне оставьте все как есть:

… и нажмите Следующий шаг.
В последнем окне проверяем настройки и нажимаем Следующий шаг.
Установка завершена — нажмите Готово
В открывшемся окне введите логин Admin и пароль zabbix (по умолчанию).
Агент Zabbix
В качестве примера установим агент zabbix на наш сервер. Также настроим зашифрованное соединение между сервером и агентом.
Установка и подключение агента
Поскольку мы уже установили репозиторий, агент устанавливается с помощью команды:
apt install zabbix agent
Откроем файл конфигурации:
vi /etc/zabbix/zabbix_agentd.conf
Отредактируем следующий параметр:
Server=127.0.0.1
* в этом примере мы указываем агенту сервер Zabbix — можно указать его имя или IP-адрес.
Разрешаем автозапуск агента и перезапускаем его:
systemctl enable zabbix-agent
systemctl restart zabbix-agent
Переходим к панели управления сервером. Открываем Monitoring — Hosts. Мы должны увидеть один узел Zabbix Server.
А справа должен быть статус доступности ZBX:

Агент запущен и работает.
Включите шифрование
Чтобы обеспечить безопасность передачи данных между сервером и агентом, настройте шифрование с помощью ключа PSK.
На агенте откройте файл конфигурации:
vi /etc/zabbix/zabbix_agentd.conf
Измените 4 параметра:
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK 001
TLSPSKFile=/etc/zabbix/agent_key.psk
Создайте ключ:
openssl rand -hex 32 > /etc/zabbix/agent_key.psk
Просмотрим его содержимое:
cat /etc/zabbix/agent_key.psk
Сохраните его, так как он нам понадобится.
Перезапустите агент:
systemctl restart zabbix-agent
Перейдите в веб-панель управления Zabbix. В списке Хосты нажмите на наш сервер, на котором установлен агент.

Перейдите на вкладку «Шифрование». Выберите соединение с PKS, установите флажок «Только PSK», введите идентификатор (который был установлен при настройке агента в параметре TLSPSKIdentity), введите сам ключ, который был сгенерирован в консоли агента.
Нажмите «Обновить», чтобы применить настройки.
Через несколько минут состояние нашего соединения с агентом должно выглядеть примерно так:
Шифрование настроено.