Обзор развертывания 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 должен быть создан заранее как внешний том.