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

Обзор развертывания 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. Система состоит из трех контейнеров:

  1. nginx:

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

  3. Назначение: работа в качестве обратного прокси-сервера и автоматическое получение SSL-сертификатов через Certbot.

  4. Электронная почта для сертификатов: hkadm@hostkey.com.

  5. Порты: 80 и 443.

  6. Тома: nginx_secrets для сертификатов, /data/nginx/user_conf.d для конфигурации.

  7. victoriametrics:

  8. Образ: victoriametrics/victoria-metrics:latest.

  9. Назначение: основной сервер метрик.

  10. Порт: 8428.

  11. Тома: /root/victoria-metrics-data для конфигурации, victoriametrics для хранения данных.

  12. vmauth:

  13. Образ: victoriametrics/vmauth.

  14. Имя контейнера: vmauth.

  15. Назначение: аутентификация и авторизация запросов.

  16. Порт: 8427.

  17. Команда запуска: -auth.config=/root/victoria-metrics-data/authconfig.yml.

  18. Тома: /root/victoria-metrics-data для доступа к файлу конфигурации.

  19. Зависимость: запускается после контейнера 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.

Для запуска всех сервисов в фоновом режиме используется команда:

docker compose up -d

Для остановки всех сервисов:

docker compose down

Для обновления образов и перезапуска контейнеров:

docker compose pull
docker compose up -d

Перед запуском необходимо убедиться в наличии внешних томов nginx_secrets и victoriametrics. Если они не созданы, их можно создать вручную командой:

docker volume create victoriametrics
Том nginx_secrets должен быть создан заранее как внешний том.

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