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

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

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

Для успешного развертывания VictoriaMetrics на этом сервере необходимо выполнить следующие требования к среде:

  • На сервере должны быть установлены и работать Docker и Docker Compose.

  • Для создания томов, управления сервисами и настройки сетевых параметров требуются привилегии администратора (root или доступ sudo).

  • Сервер должен иметь сетевое подключение для разрешения внешних доменных имен и загрузки образов контейнеров из Docker Hub.

  • Развертывание предполагает использование операционной системы на базе Linux, совместимой с предоставленной конфигурацией Docker.

FQDN финальной панели

Доступ к панели VictoriaMetrics осуществляется по следующему полному доменному имени (FQDN) в домене hostkey.in:

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

  • Порт доступа: 443 (HTTPS)

Примечание: Замените <Server ID> на фактический идентификатор, назначенный конкретному экземпляру сервера. Сервис доступен через корневой путь /.

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

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

Директория/Путь Описание
/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 (управляется контейнером прокси).

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

Приложение развертывается с помощью Docker Compose. Процесс включает генерацию необходимых файлов конфигурации и запуск контейнеризированных сервисов:

  1. Развертывание создает директорию /root/victoria-metrics-data с правами владения root.

  2. Файл Docker Compose (compose.yml) генерируется в /root/victoria-metrics-data/compose.yml.

  3. Файл конфигурации аутентификации (authconfig.yml) генерируется в /root/victoria-metrics-data/authconfig.yml.

  4. Создается Docker-том с именем victoriametrics для сохранения данных приложения.

  5. Сервисы запускаются путем выполнения команды docker compose up -d в директории /root/victoria-metrics-data.

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

В процессе развертывания используются три различных контейнера, определенных в файле compose.yml:

  • nginx:

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

  • Назначение: Обратный прокси с терминацией SSL/TLS и управлением сертификатами.

  • Порты: Открывает внешние порты 80 и 443.

  • Окружение: Конфигурируется с электронной почтой hkadm@hostkey.com для Certbot.

  • Тома: Монтирует nginx_secrets для сертификатов Let's Encrypt и отображает /data/nginx/user_conf.d.

  • victoriametrics:

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

  • Назначение: Основной сервер VictoriaMetrics.

  • Порты: Открывает порт 8428 для внутреннего доступа.

  • Тома: Монтирует /root/victoria-metrics-data и именованный том victoriametrics.

  • Политика перезапуска: unless-stopped.

  • vmauth:

  • Образ: victoriametrics/vmauth

  • Назначение: Слой аутентификации для VictoriaMetrics.

  • Порты: Открывает порт 8427 для внутреннего доступа.

  • Команда: Запускается с флагом конфигурации -auth.config=/root/victoria-metrics-data/authconfig.yml.

  • Зависимости: Должен запускаться после сервиса victoriametrics.

  • Тома: Монтирует /root/victoria-metrics-data.

  • Политика перезапуска: unless-stopped.

Серверы прокси

Доступ к панели VictoriaMetrics управляется через обратный прокси Nginx, настроенный с Certbot для автоматического управления SSL-сертификатами:

  • ПО: Nginx (через jonasal/nginx-certbot:latest).

  • SSL/TLS: Включено через Let's Encrypt. Сертификаты хранятся в томе nginx_secrets в пути /etc/letsencrypt внутри контейнера.

  • Конфигурация: Прокси слушает стандартные порты HTTP (80) и HTTPS (443).

  • Картирование доменов: Прокси настроен на пересылку запросов для конкретного FQDN на внутренний сервис VictoriaMetrics.

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

Ключевые файлы и расположения данных на хост-сервере включают:

  • Определение Compose: /root/victoria-metrics-data/compose.yml

  • Конфигурация аутентификации: /root/victoria-metrics-data/authconfig.yml

  • Данные приложения: Сохраняются внутри Docker-тома с именем victoriametrics, отображенного в /victoria-metrics внутри контейнера.

  • Секреты сертификатов: Хранятся в Docker-томе nginx_secrets, отображенном в /etc/letsencrypt внутри контейнера Nginx.

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

Следующие порты доступны для подключения к развернутым сервисам:

  • Порт 443: Доступ HTTPS к панели VictoriaMetrics через публичный FQDN.

  • Порт 80: Доступ HTTP, используется в основном для валидации SSL-сертификатов Let's Encrypt.

  • Порт 8428: Прямой внутренний доступ к сервису VictoriaMetrics (привязан к localhost или внутренней сети).

  • Порт 8427: Прямой внутренний доступ к сервису vmauth.

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

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

  • Директория: /root/victoria-metrics-data

  • Владелец: root

  • Группа: root

  • Режим: 0644

  • Файлы:

  • compose.yml: Владелец root, Группа root, Режим 0644.

  • authconfig.yml: Владелец root, Группа root, Режим 0644.

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

Управление сервисами осуществляется с помощью команд Docker Compose, выполняемых из директории /root/victoria-metrics-data:

  • Запуск сервисов:

    cd /root/victoria-metrics-data
    docker compose up -d
    

  • Остановка сервисов:

    cd /root/victoria-metrics-data
    docker compose down
    

  • Обновление сервисов: Для применения изменений в compose.yml или загрузки новых версий образов:

    cd /root/victoria-metrics-data
    docker compose pull
    docker compose up -d
    

Примечание: Файл authconfig.yml содержит ссылку на пароль SSH ({{ ansible_ssh_pass }}) для пользователя root, который используется для аутентификации во внутреннем endpoint VictoriaMetrics.

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