Обзор развертывания 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. Процесс установки включает следующие шаги:
-
Настройка репозитория: Система добавляет репозиторий Zabbix версии
7.0. -
Установка пакетов:
-
При использовании SQLite: устанавливаются
zabbix-proxy-sqlite3иzabbix-sql-scripts. -
При использовании MySQL: устанавливается
zabbix-proxy-mysql. -
При использовании PostgreSQL: устанавливается
zabbix-proxy-pgsql.
-
-
Инициализация сервиса: Сервис
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)