Настройка Prometheus Long-term Storage через VictoriaMetrics

Когда Prometheus начинает потреблять терабайты диска на коротком сроке хранения, а стандартные решения кажутся избыточными, мы настраиваем долгосрочное хранение метрик через VictoriaMetrics. Наша команда реализует проект под ключ — от аудита и настройки remote write до внедрения и последующей поддержки, обеспечивая надёжное и масштабируемое решение для вашей инфраструктуры.
Часто задаваемые вопросы

Отметим: когда Prometheus начинает потреблять терабайты диска на коротком retention, а Thanos или Cortex кажутся избыточными, приходит время VictoriaMetrics. Этот TSDB принимает remote_write от любого числа Prometheus, хранит данные годами и тратит в 5–10 раз меньше памяти, чем родной TSDB. По данным официального репозитория на GitHub, сжатие данных в VictoriaMetrics достигает 0.4–0.8 байта на точку — для кластера с 500 000 активных серий это экономия диска до 80% по сравнению с нативным Prometheus. MetricsQL полностью совместим с PromQL, так что ваши дашборды Grafana продолжат работать без изменений.

Мы уже разворачивали VictoriaMetrics для инфраструктур с 2 млн активных серий и запросной нагрузкой 3000 QPS. После перехода время запроса к хранилищу сократилось с 3 с до 50 мс, а затраты на диск упали в 5 раз. Свяжитесь с нами, чтобы получить аналогичные результаты.

Как настроить remote_write между Prometheus и VictoriaMetrics?

Конфигурация сводится к двум шагам. Запускаем VictoriaMetrics:

services:
  victoriametrics:
    image: victoriametrics/victoria-metrics:v1.101.0
    ports:
      - "8428:8428"
    volumes:
      - vm-data:/storage
    command:
      - -storageDataPath=/storage
      - -retentionPeriod=12
      - -httpListenAddr=:8428
      - -dedup.minScrapeInterval=15s

Добавляем remote_write в Prometheus:

remote_write: - url: http://victoriametrics:8428/api/v1/write queue_config: max_samples_per_send: 10000 max_shards: 8 

Всё. Никаких Sidecar, Store Gateway, Distributor, Compactor. VictoriaMetrics сразу получает данные, сразу хранит, сразу отвечает на запросы. Один процесс, один volume. В Grafana — datasource типа Prometheus, URL http://victoriametrics:8428.

Почему VictoriaMetrics эффективнее Prometheus по хранению?

VictoriaMetrics использует свой формат хранения с лучшей компрессией: данные временных рядов с маленькой дельтой между точками сжимаются до 0.4–0.8 байт на точку против 1–2 байт у Prometheus TSDB. На год метрик с 200k активных серий это несколько сотен гигабайт против терабайтов у Prometheus. Дополнительно включена дедупликация duplicate-данных при HA-сборе. Как говорит одна из документаций, VictoriaMetrics достигает таких показателей за счёт битовой компрессии и алгоритма Gorilla.

Single-node или кластер: что выбрать?

Параметр Single-node Кластер (victoriametrics/cluster)
Макс. ingestion ~1M samples/sec >1M samples/sec
Отказоустойчивость Нет встроенной Да (replicationFactor)
Сложность развёртывания Минимальная Средняя (4 компонента)
Рекомендуемый сценарий До 5 Prometheus, on-premise Высоконагруженные системы, облако

Single-node подходит для большинства on-premise инфраструктур малого и среднего масштаба. Кластер нужен когда ingestion превышает ~1M samples/sec или требуется горизонтальная масштабируемость хранилища.

Кластерная версия

Архитектура кластера:

vmagent (scraping / remote_write forwarding) |
vminsert (ingestion, stateless, N replicas) |
vmstorage (хранение, StatefulSet, шардинг по label hash) |
vmselect (query, stateless, N replicas)

Развёртывается через Helm:

helm repo add vm https://victoriametrics.github.io/helm-charts/
helm install victoria-metrics-cluster vm/victoria-metrics-cluster \
  -f values.yaml \
  --namespace monitoring

Ключевые параметры values.yaml:

vmstorage:
  replicaCount: 2
  persistentVolume:
    size: 500Gi
  extraArgs:
    retentionPeriod: "12"
    dedup.minScrapeInterval: "15s"
vminsert:
  replicaCount: 2
  extraArgs:
    replicationFactor: "2"
vmselect:
  replicaCount: 2
  extraArgs:
    dedup.minScrapeInterval: "15s"

replicationFactor: 2 — каждая точка данных записывается на 2 vmstorage ноды. dedup.minScrapeInterval должен совпадать на insert и select.

Типичные ошибки при внедрении VictoriaMetrics
  • Не настроена дедупликация. Если два экземпляра Prometheus скрейпят одни и те же таргеты, дубликаты накапливаются. Обязательно укажите -dedup.minScrapeInterval на storage и select.
  • Неправильный retention. Задайте -retentionPeriod в месяцах, иначе по умолчанию данные хранятся всего 30 дней.
  • Отсутствие мониторинга самой VictoriaMetrics. Установите официальный Grafana dashboard ID 10229, отслеживайте vm_rows_ignored_total (out-of-order точки) и vm_slow_row_inserts_total.
  • Игнорирование параметров очереди remote_write. При большом потоке увеличьте max_shards и max_samples_per_send, чтобы избежать задержек.

Что входит в работу по внедрению?

  1. Аудит текущей системы мониторинга (Prometheus, таргеты, retention, нагрузка).
  2. Проектирование архитектуры: single-node или кластер, расчёт storage.
  3. Развёртывание VictoriaMetrics (docker-compose, Helm или bare metal).
  4. Настройка remote_write на всех Prometheus-инстансах.
  5. Мониторинг VictoriaMetrics: дашборды Grafana, алерты (например, низкий free disk).
  6. Миграция исторических данных из Prometheus с помощью vmctl.
  7. Обучение команды администрированию и типовым операциям.
  8. Передача документации: схемы, runbook по инцидентам, конфигурации.

Сроки и стоимость

Сроки: от 2 до 5 рабочих дней в зависимости от сложности (количество инстансов, объём данных, необходимость миграции). Стоимость рассчитывается индивидуально после аудита. Закажите консультацию — мы оценим вашу инфраструктуру и подберём оптимальное решение. Наш опыт: 5+ лет на рынке, десятки внедрений VictoriaMetrics в production. Сертифицированные инженеры гарантируют надёжность и производительность.

Пример расчёта экономии

Метрика Prometheus TSDB (год) VictoriaMetrics (год) Экономия
500 000 серий, 15s scrape 4.5 TB 0.9 TB 80%
2 млн серий, 30s scrape 10 TB 2 TB 80%

Критерии выбора VictoriaMetrics

Для большинства on-premise инфраструктур малого и среднего масштаба (до 5–10 Prometheus инстансов, до нескольких миллионов активных серий) single-node VictoriaMetrics — самый простой и эффективный путь. Кластер рекомендуется при необходимости горизонтального масштабирования или высокой отказоустойчивости. VictoriaMetrics также отлично работает как замена Thanos в облачных средах (AWS, GCP, Yandex Cloud).

Получите консультацию — мы поможем выбрать конфигурацию, развернём систему и настроим мониторинг от начала до конца.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139