Обзор развертывания Zabbix на сервере¶
Предпосылки и предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu 22.04. Требуется доступ к серверу с правами суперпользователя (root) или возможность выполнения команд через sudo.
Необходимо обеспечить доступность следующих портов: - Порт 8080 для веб-интерфейса Zabbix (Apache). - Порты 80 и 443 для работы прокси-сервера Nginx и получения SSL-сертификатов.
Структура файлов и каталогов¶
Конфигурационные файлы и данные приложения размещаются в следующих директориях:
- Конфигурация прокси-сервера Nginx и переменные окружения:
/root/nginx/. - Файл конфигурации Docker Compose:
/root/nginx/compose.yml. - Конфигурация сервера Zabbix:
/etc/zabbix/zabbix_server.conf. - Конфигурация веб-сервера Apache:
/etc/apache2/ports.conf. - Данные и сертификаты Let's Encrypt:
/data/nginx/(включая поддиректориюuser_conf.d). - Скрипты инициализации базы данных:
/usr/share/zabbix-sql-scripts/mysql/.
Процесс установки приложения¶
Установка производится на операционной системе Ubuntu 22.04 с использованием пакетного менеджера apt и контейнеризации для прокси-сервера.
- Установка репозитория Zabbix версии 7.0:
- Скачивается пакет
zabbix-release_latest+ubuntu22.04_all.debв директорию/root. -
Пакет устанавливается командой
apt. -
Установка необходимых компонентов:
- Устанавливаются пакеты:
zabbix-server-mysql,zabbix-frontend-php,zabbix-apache-conf,zabbix-sql-scripts,zabbix-agent,python3-mysqldb. - Устанавливается база данных
mariadb-server. -
Устанавливается локаль
en_US.UTF-8. -
Развертывание прокси-сервера Nginx с Certbot:
- Устанавливается Docker.
- Создается директория
/root/nginx. - Генерируется файл
compose.ymlв директории/root/nginx. - Запускаются контейнеры через Docker Compose.
Базы данных¶
В качестве базы данных используется MariaDB. Процесс настройки включает следующие шаги:
- Запуск и включение сервиса
mariadb. - Удаление анонимных пользователей и тестовой базы данных
test. - Установка пароля для пользователя
rootв MariaDB. - Создание базы данных
zabbixс кодировкойutf8mb4. - Создание пользователя
zabbixс правами доступа только к базеzabbix. - Импорт начальной схемы базы данных из файла
/usr/share/zabbix-sql-scripts/mysql/server.sql.gz. - Настройка параметра
log_bin_trust_function_creatorsв глобальной конфигурации MariaDB. - Установка пароля базы данных в конфигурационном файле
/etc/zabbix/zabbix_server.confв параметрDBPassword.
Контейнеры Docker и их запуск¶
Для работы прокси-сервера используется Docker Compose. Конфигурация описана в файле /root/nginx/compose.yml.
Используемый образ контейнера: jonasal/nginx-certbot:latest.
Параметры запуска контейнера: - Режим сети: host. - Политика перезапуска: unless-stopped. - Переменная окружения CERTBOT_EMAIL установлена на hkadm@hostkey.com. - Файл переменных окружения: /data/nginx/nginx-certbot.env. - Монтирование тома nginx_secrets в /etc/letsencrypt. - Монтирование директории /data/nginx/user_conf.d в /etc/nginx/user_conf.d.
Запуск контейнеров выполняется командой:
в директории/root/nginx. Прокси серверы¶
В качестве прокси-сервера используется Nginx в контейнере Docker с поддержкой автоматического получения SSL-сертификатов через Certbot.
- Доменное имя настраивается через внешний механизм (роль
invapi-pdns), добавляя A-запись. - Сертификаты хранятся в томе
nginx_secrets, который монтируется в/etc/letsencryptвнутри контейнера. - Пользовательские конфигурации Nginx размещаются в директории
/data/nginx/user_conf.d.
Настройки прав¶
Права доступа к файлам и директориям устанавливаются следующим образом:
- Директория
/root/nginxсоздается с правами0644, владельцемrootи группойroot. - Файл
/root/nginx/compose.ymlсоздается с правами0644, владельцемrootи группойroot. - Пакет репозитория Zabbix в
/rootимеет права0644.
Запуск, остановка и обновление¶
Управление сервисами Zabbix и Apache осуществляется через systemd.
Для запуска и включения сервисов используются следующие команды:
systemctl restart zabbix-server
systemctl enable zabbix-server
systemctl restart zabbix-agent
systemctl enable zabbix-agent
systemctl restart apache2
systemctl enable apache2
Веб-сервер Apache настроен на прослушивание порта 8080 вместо стандартного порта 80 через изменение файла /etc/apache2/ports.conf.
Для управления контейнерами прокси-сервера используются команды Docker Compose в директории /root/nginx: