Перейти к содержанию

Обзор развертывания Zabbix Proxy и Nginx-Certbot на сервере

Предварительные требования

Для корректной работы системы необходимо наличие сервера с операционной системой Ubuntu 22.04. Требуется наличие прав суперпользователя (root) для установки пакетов и управления службами.

Система использует следующие сетевые порты и протоколы:

  • Порт 8083 для внутреннего проксирования запросов к приложению.

  • Стандартные порты HTTP и HTTPS для работы веб-сервера Nginx и получения SSL-сертификатов.

Структура файлов и каталогов

Конфигурационные файлы и данные приложения размещаются в следующих директориях:

  • /root/nginx/ — каталог для запуска контейнеров Nginx и Certbot.

  • /root/nginx/compose.yml — файл конфигурации Docker Compose для веб-сервера.

  • /data/nginx/user_conf.d/ — директория с пользовательскими конфигурациями Nginx.

  • /data/nginx/nginx-certbot.env — файл переменных окружения для сервиса Nginx-Certbot.

  • /etc/zabbix/zabbix_proxy.conf — основной файл конфигурации прокси Zabbix.

  • /var/lib/zabbix/ — каталог для хранения базы данных SQLite (при использовании).

Процесс установки приложения

Установка выполняется в два этапа: настройка прокси-сервера Zabbix и развертывание веб-сервера с поддержкой SSL.

Установка Zabbix Proxy

  1. Устанавливаются зависимости системы: ca-certificates, curl, gnupg, apt-transport-https.

  2. Скачивается и устанавливается пакет репозитория zabbix-release для версии Ubuntu 22.04.

  3. В зависимости от выбранной базы данных устанавливается соответствующий пакет:

  4. zabbix-proxy-sqlite3 и zabbix-sql-scripts для SQLite.

  5. zabbix-proxy-mysql для MySQL.

  6. zabbix-proxy-pgsql для PostgreSQL.

  7. Создается каталог /var/lib/zabbix с правами доступа для пользователя zabbix.

  8. Конфигурируется файл /etc/zabbix/zabbix_proxy.conf с параметрами подключения к базе данных и серверу Zabbix.

  9. Сервис zabbix-proxy активируется и запускается.

Развертывание Nginx и Certbot

  1. Создается каталог /root/nginx.

  2. Генерируется файл compose.yml в директории /root/nginx.

  3. Обновляется конфигурация Nginx в файле /data/nginx/user_conf.d/{{ prefix }}{{ server_id }}.hostkey.in.conf:

  4. Удаляется существующая строка proxy_pass.

  5. Добавляется новая строка proxy_pass http://127.0.0.1:8083; внутри блока location /.

  6. Запускаются контейнеры через команду docker compose up -d в директории /root/nginx.

Базы данных

Настройка базы данных зависит от выбранного бэкенда:

  • SQLite:

  • База данных хранится в файле /var/lib/zabbix/zabbix_proxy.db.

  • В конфигурации /etc/zabbix/zabbix_proxy.conf параметр DBName указывает путь к этому файлу.

  • MySQL / PostgreSQL:

  • Подключение осуществляется по сети.

  • В конфигурации /etc/zabbix/zabbix_proxy.conf задаются параметры:

    • DBName — имя базы данных.

    • DBUser — имя пользователя.

    • DBPassword — пароль.

    • DBHost — адрес хоста базы данных.

Контейнеры Docker и их запуск

Для работы веб-сервера и получения SSL-сертификатов используется Docker Compose.

Файл конфигурации /root/nginx/compose.yml описывает следующий сервис:

  • nginx:

  • Образ: jonasal/nginx-certbot:latest.

  • Политика перезапуска: unless-stopped.

  • Режим сети: host.

  • Переменные окружения:

    • CERTBOT_EMAIL=hkadm@hostkey.com.

    • Дополнительные переменные из файла /data/nginx/nginx-certbot.env.

  • Подключенные тома:

    • nginx_secrets (внешний том) монтируется в /etc/letsencrypt для хранения сертификатов.

    • /data/nginx/user_conf.d монтируется в /etc/nginx/user_conf.d для пользовательских конфигов.

Запуск контейнеров выполняется командой:

docker compose up -d
в директории /root/nginx.

Прокси серверы

Веб-сервер Nginx работает в режиме прокси-сервера с поддержкой автоматического получения и обновления SSL-сертификатов через Certbot.

  • Доменные имена и конфигурации размещаются в /data/nginx/user_conf.d/.

  • В конфигурационном файле хоста ({{ prefix }}{{ server_id }}.hostkey.in.conf) настроена маршрутизация запросов:

  • Все запросы к корневому пути / перенаправляются на локальный адрес http://127.0.0.1:8083.

  • Сертификаты Let's Encrypt хранятся в томе nginx_secrets по пути /etc/letsencrypt внутри контейнера.

Настройки прав

Права доступа к файлам и директориям настроены следующим образом:

  • Директория /root/nginx принадлежит пользователю root с правами 0755.

  • Файл /root/nginx/compose.yml имеет права 0644 и принадлежит root.

  • Директория /var/lib/zabbix принадлежит пользователю zabbix с правами 0750.

  • Файлы конфигурации Nginx в /data/nginx/user_conf.d/ доступны для чтения и записи в соответствии с правами владельца контейнера.

Запуск, остановка и обновление

Управление сервисами осуществляется через стандартные команды системы и Docker.

Zabbix Proxy

  • Запуск и активация при загрузке:

    systemctl start zabbix-proxy
    systemctl enable zabbix-proxy
    

  • Перезапуск сервиса:

    systemctl restart zabbix-proxy
    

Nginx и Certbot

  • Запуск контейнеров:

    cd /root/nginx
    docker compose up -d
    

  • Остановка контейнеров:

    cd /root/nginx
    docker compose down
    

  • Обновление конфигурации и перезапуск: После изменения файлов в /data/nginx/user_conf.d/ или /root/nginx/compose.yml необходимо выполнить команду docker compose up -d для применения изменений.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×