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

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

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

Для развертывания Zabbix Proxy требуются следующие системные характеристики и конфигурации:

  • Операционная система: Ubuntu 22.04 (подразумевается путем репозитория пакетов ubuntu22.04).

  • Привилегии: Требуется доступ root для установки пакетов, настройки сервисов и управления контейнерами Docker.

  • Зависимости: На системе должны быть установлены ca-certificates, curl, gnupg и apt-transport-https для доступа к репозиторию Zabbix.

  • Сеть: Сервер должен иметь исходящий доступ в интернет для загрузки пакетов и сертификатов.

FQDN конечной панели

Приложение доступно через домен hostkey.in в следующем формате:

  • Формат: zabbixproxy<Server ID>.hostkey.in:443

  • Протокол: HTTPS (порт 443)

  • Внутренний путь: /

  • Внешний путь: /

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

Развертывание использует следующую структуру каталогов для конфигурации, данных и сертификатов:

  • Файлы конфигурации:

  • /etc/zabbix/zabbix_proxy.conf: Основная конфигурация Zabbix Proxy.

  • /root/nginx/compose.yml: Определение Docker Compose для обратного прокси-сервера.

  • /data/nginx/user_conf.d/zabbixproxy<Server ID>.hostkey.in.conf: Конфигурация Nginx для конкретного сайта.

  • /data/nginx/nginx-certbot.env: Переменные окружения для контейнера Nginx-Certbot.

  • Хранилище данных:

  • /var/lib/zabbix/: Каталог для данных Zabbix Proxy и файлов базы данных SQLite.

  • /etc/letsencrypt: Точка монтирования тома для SSL-сертификатов, управляемых Docker.

  • Тома Docker:

  • nginx_secrets: Внешний том для хранения SSL-сертификатов.

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

Zabbix Proxy устанавливается с использованием официального репозитория Zabbix для Ubuntu. Процесс установки включает следующие шаги:

  1. Настройка репозитория: Система добавляет репозиторий Zabbix версии 7.0.

  2. Установка пакетов:

    • При использовании SQLite: устанавливаются zabbix-proxy-sqlite3 и zabbix-sql-scripts.

    • При использовании MySQL: устанавливается zabbix-proxy-mysql.

    • При использовании PostgreSQL: устанавливается zabbix-proxy-pgsql.

  3. Инициализация сервиса: Сервис zabbix-proxy включается и запускается автоматически.

Базы данных

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

Параметр Значение для SQLite Значение для MySQL/PostgreSQL
DBName /var/lib/zabbix/zabbix_proxy.db zabbix_proxy
DBUser N/A zabbix
DBPassword N/A zabbix
DBHost N/A 127.0.0.1

Контейнеры Docker и их развертывание

Обратный прокси-сервер развертывается с использованием Docker Compose для обработки SSL-терминации и маршрутизации.

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

  • Расположение файла Compose: /root/nginx/compose.yml

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

  • Тома:

  • nginx_secrets монтируется в /etc/letsencrypt внутри контейнера.

  • /data/nginx/user_conf.d монтируется в /etc/nginx/user_conf.d внутри контейнера.

  • Окружение:

  • CERTBOT_EMAIL: Установлено значение hkadm@hostkey.com.

  • Конфигурация загружается из /data/nginx/nginx-certbot.env.

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

Контейнер Nginx действует как обратный прокси-сервер для приложения Zabbix Proxy.

  • SSL/TLS: Управляется автоматически контейнером nginx-certbot с использованием Let's Encrypt.

  • Маршрутизация:

  • Файл конфигурации Nginx, расположенный по адресу /data/nginx/user_conf.d/zabbixproxy<Server ID>.hostkey.in.conf, обновляется для включения директивы proxy_pass.

  • Трафик перенаправляется с внешнего порта 443 на внутренний экземпляр Zabbix Proxy по адресу http://127.0.0.1:8083.

  • Обновление конфигурации: Строка proxy_pass динамически вставляется в блок location конфигурации Nginx.

Настройки разрешений

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

  • Каталог данных Zabbix:

  • Путь: /var/lib/zabbix

  • Владелец: zabbix

  • Группа: zabbix

  • Режим: 0750

  • Каталог конфигурации Nginx:

  • Путь: /root/nginx

  • Владелец: root

  • Группа: root

  • Режим: 0755

  • Файл Docker Compose:

  • Путь: /root/nginx/compose.yml

  • Владелец: root

  • Группа: root

  • Режим: 0644

Расположение файлов конфигурации и данных

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

  • Конфигурация Zabbix Proxy: /etc/zabbix/zabbix_proxy.conf

  • База данных SQLite: /var/lib/zabbix/zabbix_proxy.db

  • Nginx Compose: /root/nginx/compose.yml

  • Конфигурация сайта Nginx: /data/nginx/user_conf.d/zabbixproxy<Server ID>.hostkey.in.conf

  • Окружение Nginx: /data/nginx/nginx-certbot.env

Доступные порты для подключения

В развертывании используются следующие порты:

  • Порт 443: HTTPS-трафик для веб-интерфейса (внешний доступ через Nginx).

  • Порт 8083: Внутренний HTTP-трафик для Zabbix Proxy (доступен через Nginx).

  • Порт 8080: Определен в переменных конфигурации, но в настоящее время маршрутизируется через Nginx на порт 8083.

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

Команды управления сервисами для Zabbix Proxy и контейнеров Docker следующие:

Сервис Zabbix Proxy:

  • Запуск: systemctl start zabbix-proxy

  • Остановка: systemctl stop zabbix-proxy

  • Перезапуск: systemctl restart zabbix-proxy

  • Включение при загрузке: systemctl enable zabbix-proxy

Обратный прокси-сервер Docker:

  • Запуск/Обновление: docker compose up -d (выполняется из /root/nginx)

  • Остановка: docker compose down (выполняется из /root/nginx)

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