*КУБ — полный комплекс облачных услуг!
Сервер Zabbix используется для сбора и анализа информации о состоянии сетевых узлов. В этой статье будет рассмотрен процесс установки и развертывания веб-интерфейса для управления им. В качестве сервера базы данных мы будем использовать MariaDB/MySQL. Версия операционной системы, которая была использована для написания инструкций, — 20.04 LTS (также протестирована на 22.04), устанавливаемая версия Zabbix — 6.
Подготовка сервера
Установка веб-сервера
Установка сервера Zabbix
Настройка агента Zabbix на сервере
Другие инструкции по Zabbix
Перед установкой Zabbix необходимо подготовить сервер и выполнить базовые системные настройки. Для развертывания системы мониторинга можно использовать Linux VPS с Ubuntu 20.04 или 22.04, достаточным объёмом оперативной памяти и доступом с правами root.
Для начала выполним следующее
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. Для 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://

Интерфейс 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, откройте файл конфигурации:
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
Откройте веб-браузер и перейдите по ссылке http://
Веб-сервер готов к работе с Zabbix Web.
Перейдём к установке самого сервера 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+ubuntu18.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. В нашем случае нам нужна 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
* после ввода команды система запросит пароль. Вы должны ввести пароль, который мы установили после установки MariaDB.
Откройте файл конфигурации Zabbix
vi /etc/zabbix/zabbix_server.conf
Добавляем строку
DBPassword=zabbixpassword
* настраиваем сервер на подключение к базе данных с паролем zabbixpassword, который был установлен при создании базы данных для Zabbix.
И проверяем следующие строки:
DBName=zabbix
DBUser=zabbix
* база данных и имя пользователя должны быть zabbix (как мы создали в MariaDB).
Создаём каталог для размещения файлов конфигурации (по каким-то причинам он может не быть создан во время установки):
mkdir /etc/zabbix/zabbix_server.conf.d
Включаем автозапуск сервера мониторинга
systemctl enable zabbix-server
После этого запускаем сам сервер Zabbix
systemctl start zabbix-server
При установке 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
Откройте браузер и перейдите по адресу http://
Выберите желаемый язык установки и нажмите «Следующий шаг»
Если в списке языков нет нужного нам, установите локали:
dpkg-reconfigure locales
И перезапустите обработчик PHP, в нашем случае:
systemctl restart php7.4-fpm
Обновите страницу установки и выберите нужный язык.
В следующем окне внимательно просмотрите результаты проверки веб-сервера — справа должно быть всё в порядке. Если это не так, проверьте настройки и исправьте предупреждения и ошибки, а затем обновите страницу (F5), чтобы проверить настройки ещё раз.
Когда все результаты в порядке, нажмите «Следующий шаг»
В следующем окне мы оставляем настройки подключения к базе данных без изменений — дополнительно вводим пароль, который был установлен при создании пользователя zabbix. Затем нажимаем «Следующий шаг»:

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

… и нажмите «Следующий шаг».
В последнем окне проверяем настройки и нажимаем «Следующий шаг».
Установка завершена — нажмите «Готово»
В открывшемся окне введите логин Admin и пароль 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), введите сам ключ, который был сгенерирован в консоли агента.
Нажмите «Обновить», чтобы применить настройки.
Через несколько минут состояние нашего соединения с агентом должно выглядеть примерно так:
Шифрование настроено.