Обзор развертывания VictoriaMetrics на сервере¶
Предварительные требования¶
Для корректной работы системы необходимо наличие следующих компонентов и условий:
-
Операционная система с установленным Docker Engine и Docker Compose.
-
Права доступа пользователя
rootдля создания директорий и запуска контейнеров. -
Открытые порты
80и443для работы веб-сервера и получения SSL-сертификатов. -
Открытые порты
8427и8428для доступа к компонентам VictoriaMetrics. -
Наличие внешнего тома
nginx_secretsдля хранения сертификатов Let's Encrypt.
Структура файлов и каталогов¶
Все файлы конфигурации и данные приложения размещаются в следующей структуре:
-
/root/victoria-metrics-data— основная директория для хранения конфигурационных файлов и данных. -
/root/victoria-metrics-data/compose.yml— файл описания контейнеров Docker Compose. -
/root/victoria-metrics-data/authconfig.yml— файл конфигурации аутентификации дляvmauth. -
/data/nginx/user_conf.d— директория для пользовательских конфигураций Nginx (монтируется в контейнер). -
/etc/letsencrypt— директория для хранения SSL-сертификатов (монтируется через томnginx_secrets).
Контейнеры Docker и их запуск¶
Развертывание приложения осуществляется с использованием Docker Compose. Система состоит из трех контейнеров:
-
nginx:
-
Образ:
jonasal/nginx-certbot:latest. -
Назначение: работа в качестве обратного прокси-сервера и автоматическое получение SSL-сертификатов через Certbot.
-
Электронная почта для сертификатов:
hkadm@hostkey.com. -
Порты:
80и443. -
Тома:
nginx_secretsдля сертификатов,/data/nginx/user_conf.dдля конфигурации. -
victoriametrics:
-
Образ:
victoriametrics/victoria-metrics:latest. -
Назначение: основной сервер метрик.
-
Порт:
8428. -
Тома:
/root/victoria-metrics-dataдля конфигурации,victoriametricsдля хранения данных. -
vmauth:
-
Образ:
victoriametrics/vmauth. -
Имя контейнера:
vmauth. -
Назначение: аутентификация и авторизация запросов.
-
Порт:
8427. -
Команда запуска:
-auth.config=/root/victoria-metrics-data/authconfig.yml. -
Тома:
/root/victoria-metrics-dataдля доступа к файлу конфигурации. -
Зависимость: запускается после контейнера
victoriametrics.
Все контейнеры настроены с политикой перезапуска unless-stopped.
Прокси серверы¶
В качестве прокси-сервера используется контейнер nginx на базе образа jonasal/nginx-certbot.
-
Сервер обрабатывает входящий трафик на портах
80и443. -
Автоматическое получение и обновление SSL-сертификатов осуществляется через Certbot.
-
Конфигурация Nginx загружается из директории
/data/nginx/user_conf.d, которая монтируется в контейнер по пути/etc/nginx/user_conf.d. -
Секреты и сертификаты хранятся во внешнем томе
nginx_secrets, монтируемом в/etc/letsencrypt.
Настройки прав¶
Права доступа к файлам и директориям на хосте настроены следующим образом:
-
Директория
/root/victoria-metrics-dataпринадлежит пользователюrootи группеrootс правами0644. -
Файлы
compose.ymlиauthconfig.ymlвнутри директории также принадлежатroot:rootс правами0644. -
Доступ к данным контейнеров осуществляется через Docker-тома, права внутри контейнеров управляются образами.
Запуск, остановка и обновление¶
Управление контейнерами осуществляется через Docker Compose из директории /root/victoria-metrics-data.
Для запуска всех сервисов в фоновом режиме используется команда:
Для остановки всех сервисов:
Для обновления образов и перезапуска контейнеров:
Перед запуском необходимо убедиться в наличии внешних томов nginx_secrets и victoriametrics. Если они не созданы, их можно создать вручную командой:
nginx_secrets должен быть создан заранее как внешний том.