- Home »

Мониторинг без облака с VictoriaMetrics + Grafana: лёгкая альтернатива
О чём эта статья, зачем она нужна и кому поможет
В последнее время облачные мониторинговые сервисы наступают со всех сторон: Grafana Cloud, Datadog, Zabbix Cloud и прочие. Круто, когда всё работает из коробки, но есть нюансы:
- Данные утекают в облако — безопасность, приватность, GDPR и прочие страшилки.
- Цена растёт вместе с нагрузкой и числом метрик.
- Ограничения на кастомизацию и интеграцию.
- Ограничения на хранение истории и ретеншн.
Если хочется держать руку на пульсе, а не кошелёк на подписке, стоит задуматься о самостоятельном мониторинге. Причём не только ради паранойи — часто это реально быстрее, дешевле и надёжнее.
В этой статье:
- Покажу, как собрать лёгкий и быстрый мониторинг на VictoriaMetrics и Grafana.
- Объясню структуру и алгоритмы (но простым языком, без академической занудности).
- Дам готовые команды для установки и запуска.
- Разберу плюсы и минусы, сравню с альтернативами, расскажу о подводных камнях.
- Подкину пару нестандартных идей для автоматизации и скриптов.
Почему VictoriaMetrics + Grafana — это круто
VictoriaMetrics — это современная time-series база данных, совместимая с Prometheus API. Она быстрее, легче и проще в эксплуатации, чем классический Prometheus. А Grafana — это визуализация и дашборды, которые любят все.
Вместе они дают:
- Простую и быструю установку (особенно в Docker).
- Минимум нагрузки на железо (VictoriaMetrics реально экономит ресурсы).
- Гибкость: можно собирать метрики с Prometheus-экспортеров, писать свои скрипты и интеграции.
- Все данные у тебя — хоть на VPS, хоть на выделенном сервере, хоть дома на Raspberry Pi.
- Бесплатно, без ограничений по числу метрик, пользователей и истории.
Как это работает? Алгоритмы и структура
Схема проста:
- Экспортеры (node_exporter, blackbox_exporter и т.д.) собирают метрики с серверов, сервисов, железа.
- VictoriaMetrics (VM) опрашивает экспортеры по расписанию и пишет данные в свою базу.
- Grafana подключается к VM через Prometheus API и строит красивые графики, алерты, дашборды.
Вся магия — в VictoriaMetrics. Это не просто база, а целый кластер (если надо), который умеет:
- Сжимать метрики в разы эффективнее Prometheus.
- Отвечать на PromQL-запросы (как Prometheus, только быстрее).
- Хранить историю хоть годами, хоть с миллионами метрик.
- Не падать от перегрузки (проверено на бою, даже на VPS с 1 ГБ RAM).
Grafana работает поверх: подключаешь источник данных как Prometheus, и всё летает.
Быстрая установка: пошаговый гайд
Дальше — только практика. Сначала покажу на примере Docker, потом — на голом сервере (VPS/выделенный).
Вариант 1: Docker (рекомендую для тестов и продакшена)
- Собираем 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
- Запускаем:
docker-compose up -d
- Добавляем экспортеры:Например, node_exporter для мониторинга Linux-сервера:
docker run -d --name=node_exporter -p 9100:9100 prom/node-exporter
- Настраиваем сбор метрик:Создаём файл
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
- Открываем Grafana:Заходим на http://localhost:3000, логин admin/supersecret.
Добавляем источник данных типа Prometheus, URL:
http://victoriametrics:8428
.Импортируем готовый дашборд, например Node Exporter Full.
Вариант 2: На VPS или выделенном сервере (bare metal)
- Скачиваем 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
- Ставим 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
- Экспортеры ставим аналогично (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
- Дальше — всё как выше: подключаем Grafana, импортируем дашборды.
Где взять VPS или выделенный сервер?
- VPS: https://arenda-server.cloud/vps
- Выделенный сервер: https://arenda-server.cloud/dedicated
Плюсы и минусы: сравнение с альтернативами
Решение | Плюсы | Минусы |
---|---|---|
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 — всё в одном месте, бесплатно и без облака.
Официальные ресурсы:
- https://victoriametrics.com/
- https://grafana.com/
- https://github.com/VictoriaMetrics/VictoriaMetrics
- https://grafana.com/grafana/dashboards/
Удачного мониторинга! Если остались вопросы — спрашивай в комментах, делись опытом, экспериментируй и автоматизируй всё, что можно 🙂
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.