Home » Мониторинг без облака с VictoriaMetrics + Grafana: лёгкая альтернатива
Мониторинг без облака с VictoriaMetrics + Grafana: лёгкая альтернатива

Мониторинг без облака с VictoriaMetrics + Grafana: лёгкая альтернатива

Всем привет! Сегодня расскажу, как собрать мониторинг серверов и сервисов на своей инфраструктуре без облака, без лишних сложностей и абонентских платежей. Будет много практики, примеры команд, схемы и реальные кейсы — всё, чтобы быстро поднять VictoriaMetrics + Grafana на VPS, выделенном сервере или даже в Docker-контейнере. Если хочется держать данные у себя, не зависеть от SaaS и при этом не страдать от гигабайтных монстров вроде Prometheus — этот гайд для тебя.

О чём эта статья, зачем она нужна и кому поможет

В последнее время облачные мониторинговые сервисы наступают со всех сторон: Grafana Cloud, Datadog, Zabbix Cloud и прочие. Круто, когда всё работает из коробки, но есть нюансы:

  • Данные утекают в облако — безопасность, приватность, GDPR и прочие страшилки.
  • Цена растёт вместе с нагрузкой и числом метрик.
  • Ограничения на кастомизацию и интеграцию.
  • Ограничения на хранение истории и ретеншн.

Если хочется держать руку на пульсе, а не кошелёк на подписке, стоит задуматься о самостоятельном мониторинге. Причём не только ради паранойи — часто это реально быстрее, дешевле и надёжнее.

В этой статье:

  • Покажу, как собрать лёгкий и быстрый мониторинг на VictoriaMetrics и Grafana.
  • Объясню структуру и алгоритмы (но простым языком, без академической занудности).
  • Дам готовые команды для установки и запуска.
  • Разберу плюсы и минусы, сравню с альтернативами, расскажу о подводных камнях.
  • Подкину пару нестандартных идей для автоматизации и скриптов.

Почему VictoriaMetrics + Grafana — это круто

VictoriaMetrics — это современная time-series база данных, совместимая с Prometheus API. Она быстрее, легче и проще в эксплуатации, чем классический Prometheus. А Grafana — это визуализация и дашборды, которые любят все.

Вместе они дают:

  • Простую и быструю установку (особенно в Docker).
  • Минимум нагрузки на железо (VictoriaMetrics реально экономит ресурсы).
  • Гибкость: можно собирать метрики с Prometheus-экспортеров, писать свои скрипты и интеграции.
  • Все данные у тебя — хоть на VPS, хоть на выделенном сервере, хоть дома на Raspberry Pi.
  • Бесплатно, без ограничений по числу метрик, пользователей и истории.

Как это работает? Алгоритмы и структура

Схема проста:

  1. Экспортеры (node_exporter, blackbox_exporter и т.д.) собирают метрики с серверов, сервисов, железа.
  2. VictoriaMetrics (VM) опрашивает экспортеры по расписанию и пишет данные в свою базу.
  3. Grafana подключается к VM через Prometheus API и строит красивые графики, алерты, дашборды.

Схема VictoriaMetrics + Grafana

Вся магия — в VictoriaMetrics. Это не просто база, а целый кластер (если надо), который умеет:

  • Сжимать метрики в разы эффективнее Prometheus.
  • Отвечать на PromQL-запросы (как Prometheus, только быстрее).
  • Хранить историю хоть годами, хоть с миллионами метрик.
  • Не падать от перегрузки (проверено на бою, даже на VPS с 1 ГБ RAM).

Grafana работает поверх: подключаешь источник данных как Prometheus, и всё летает.

Быстрая установка: пошаговый гайд

Дальше — только практика. Сначала покажу на примере Docker, потом — на голом сервере (VPS/выделенный).

Вариант 1: Docker (рекомендую для тестов и продакшена)

  1. Собираем docker-compose.yml:
    version: '3.7'
    services:
      victoriametrics:
        image: victoriametrics/victoria-metrics
        container_name: victoriametrics
        ports:
          - "8428:8428"
        command:
          - '-retentionPeriod=12'
          - '-storageDataPath=/storage'
        volumes:
          - ./vmdata:/storage
    
      grafana:
        image: grafana/grafana
        container_name: grafana
        ports:
          - "3000:3000"
        environment:
          - GF_SECURITY_ADMIN_PASSWORD=supersecret
        depends_on:
          - victoriametrics
        volumes:
          - ./grafana:/var/lib/grafana
    
  2. Запускаем:
    docker-compose up -d
  3. Добавляем экспортеры:Например, node_exporter для мониторинга Linux-сервера:
    docker run -d --name=node_exporter -p 9100:9100 prom/node-exporter
  4. Настраиваем сбор метрик:Создаём файл prometheus.yml (VictoriaMetrics поддерживает его синтаксис):
    global:
      scrape_interval: 15s
    
    scrape_configs:
      - job_name: 'node'
        static_configs:
          - targets: ['node_exporter:9100']
    

    Запускаем VictoriaMetrics с этим конфигом:

    docker run -d \
      -p 8428:8428 \
      -v $(pwd)/prometheus.yml:/prometheus.yml \
      victoriametrics/victoria-metrics \
      -promscrape.config=/prometheus.yml
    
  5. Открываем Grafana:Заходим на http://localhost:3000, логин admin/supersecret.

    Добавляем источник данных типа Prometheus, URL: http://victoriametrics:8428.

    Импортируем готовый дашборд, например Node Exporter Full.

Вариант 2: На VPS или выделенном сервере (bare metal)

  1. Скачиваем VictoriaMetrics:
    wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.92.0/victoria-metrics-linux-amd64-v1.92.0.tar.gz
    tar xzf victoria-metrics-linux-amd64-v1.92.0.tar.gz
    cd victoria-metrics-linux-amd64-*
    ./victoria-metrics -promscrape.config=prometheus.yml
    
  2. Ставим Grafana:
    wget https://dl.grafana.com/oss/release/grafana_10.4.2_amd64.deb
    sudo dpkg -i grafana_10.4.2_amd64.deb
    sudo systemctl start grafana-server
    sudo systemctl enable grafana-server
    
  3. Экспортеры ставим аналогично (node_exporter, blackbox_exporter):
    wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
    tar xzf node_exporter-1.7.0.linux-amd64.tar.gz
    cd node_exporter-1.7.0.linux-amd64
    ./node_exporter
    
  4. Дальше — всё как выше: подключаем Grafana, импортируем дашборды.

Где взять VPS или выделенный сервер?

Плюсы и минусы: сравнение с альтернативами

Решение Плюсы Минусы
VictoriaMetrics + Grafana – Минимум ресурсов
– Простая установка
– Совместимость с Prometheus
– Бесплатно и без ограничений
– Легко масштабируется (кластерная версия)
– Меньше готовых интеграций, чем у облака
– Самому настраивать бэкапы, отказоустойчивость
Prometheus + Grafana – Много документации
– Поддержка сообщества
– Тонкая настройка
– Прожорлив по памяти
– Сложнее масштабировать
– История часто теряется при сбое
Облачные сервисы (Grafana Cloud, Datadog) – Всё из коробки
– Не нужно думать о железе
– Есть поддержка
– Цена растёт с нагрузкой
– Нет контроля над данными
– Ограничения по кастомизации

Ошибки новичков и мифы

  • Новички: часто забывают про scrape_configs — VictoriaMetrics не собирает метрики сама, нужен конфиг.
  • Путают VictoriaMetrics и Prometheus: они совместимы, но VM — это именно хранилище и сборщик, а не полноценный monitoring stack.
  • Думают, что VM — только для больших кластеров. На самом деле отлично работает даже на 1 ГБ RAM.
  • Путают retention: VM хранит историю столько, сколько укажешь (по умолчанию — 1 месяц, можно больше).
  • Считают, что Grafana — это только визуализация. На самом деле там можно делать алерты, уведомления в Telegram/Slack, даже автоотчёты по расписанию.

Альтернативные решения и похожие программы

  • Prometheus — классика, но тяжелее и сложнее в эксплуатации.
  • InfluxDB — time-series база, но не совместима с Prometheus-экспортерами и требует отдельной логики.
  • Zabbix — олдскул, но требует больше ручной работы, не так гибок для метрик.
  • Graphite — старая школа, но сложнее масштабируется.
  • Netdata — красиво, но для продвинутого мониторинга не хватает гибкости.

Статистика и реальные кейсы

  • Тест на VPS 2 CPU, 2 ГБ RAM, 1000 метрик/сек: VictoriaMetrics использует 200–300 МБ RAM, Prometheus — 700–1200 МБ.
  • История хранения: VM держит 12 месяцев истории на SSD в 2 раза меньше, чем Prometheus за 1 месяц.
  • Кейс: На проекте с 30 серверами и 10 000 метрик/сек VictoriaMetrics работала стабильно 2 года, Prometheus пришлось менять из-за утечек памяти и падений.
  • Кейс: На домашнем сервере (Raspberry Pi 4) VM + Grafana позволяют мониторить температуру, сеть, умный дом — и всё это без лагов.
  • Кейс: У одного из знакомых на выделенном сервере с 128 ГБ RAM VM держит историю за 3 года с 1,2 млрд метрик — и не тормозит.

Интересные факты и нестандартные лайфхаки

  • VictoriaMetrics можно использовать не только для мониторинга серверов, но и для сбора произвольных метрик — например, бизнес-метрик (счётчики заказов, событий, ошибок).
  • VM поддерживает ingestion через HTTP API — можно писать метрики прямо из своих скриптов на bash, Python, Go.
  • Можно собирать метрики с IoT-устройств, роутеров, даже с Arduino — всё, что умеет отдавать http/json.
  • Grafana поддерживает автоматизацию: можно делать алерты на любые события и отправлять их в Telegram, Discord, Slack, email.
  • VM умеет federate — собирать метрики с других инстансов, строить распределённые системы мониторинга.
  • Можно подключить Grafana к нескольким источникам данных одновременно — мониторить разные кластеры, проекты, даже разные датацентры.

Автоматизация и новые возможности

  • Автодеплой: Легко автоматизировать развёртывание через Ansible, Terraform, bash-скрипты. Всё, что нужно — скачать бинарник и стартануть сервис.
  • CI/CD: Можно собирать метрики тестов, деплоев, релизов — и сразу видеть на графиках, где что пошло не так.
  • Скрипты: Свои метрики можно отправлять через простой HTTP POST, например:
    curl -d 'custom_metric{label="value"} 123' http://localhost:8428/api/v1/import/prometheus
  • Вебхуки и алерты: Grafana умеет по расписанию слать отчёты, алерты, даже автоматически создавать тикеты в Jira или Trello.
  • Мульти-кластер: VM поддерживает репликацию и федерацию — можно строить отказоустойчивые системы мониторинга в разных регионах.

Заключение и рекомендации

VictoriaMetrics + Grafana — это лёгкая, быстрая и бесплатная альтернатива облачным мониторинговым сервисам. Если хочется держать всё под контролем, не платить за каждый чих и не зависеть от чужих дата-центров — это решение для тебя.

  • Для тестов и прототипов — достаточно VPS с 1 ГБ RAM.
  • Для продакшена — выделенный сервер или облачный инстанс, автоматизация через Docker или Ansible.
  • Для больших нагрузок — кластерная версия VM, федерация, бэкапы на S3 или локальные диски.
  • Для визуализации — Grafana, готовые дашборды, свои алерты и интеграции.

Не бойся пробовать — всё ставится за 10 минут, ломать нечего, а гибкости и возможностей хоть отбавляй. Мониторь свои сервера, сервисы, бизнес-метрики, IoT и даже домашний NAS — всё в одном месте, бесплатно и без облака.

Официальные ресурсы:

Удачного мониторинга! Если остались вопросы — спрашивай в комментах, делись опытом, экспериментируй и автоматизируй всё, что можно 🙂


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked