Зачем нужен мониторинг VPS
Настроить мониторинг VPS с помощью Grafana и Prometheus можно за несколько часов: достаточно установить Prometheus для сбора метрик, Node Exporter для их экспорта с сервера и Grafana для визуализации. Стек разворачивается на одном VPS через Docker Compose или вручную, не требует проприетарного ПО и предоставляет полноценную наблюдаемость за CPU, RAM, дисковой подсистемой и сетью в режиме реального времени.
Владельцы VPS нередко узнают о проблемах с сервером последними — из жалоб пользователей или после того, как сайт уже недоступен несколько часов. Без мониторинга администратор работает вслепую.
Типичные проблемы без мониторинга
- Непредвиденные отказы. Переполнение дискового раздела — одна из наиболее частых причин недоступности сервисов.
- Деградация производительности. Утечки памяти приводят к постепенному росту потребления RAM.
- Отсутствие исторических данных. При инциденте невозможно восстановить картину произошедшего.
- Невозможность планирования ресурсов. Без метрик невозможно обосновать апгрейд тарифа.
Что такое Grafana и Prometheus: архитектура стека
Grafana и Prometheus — две независимые open-source системы, которые в связке образуют один из наиболее популярных стеков наблюдаемости для инфраструктуры.
Prometheus: сбор и хранение метрик
Prometheus — система мониторинга и база данных временных рядов (TSDB), разработанная в SoundCloud и переданная в CNCF. Ключевая особенность — pull-модель сбора данных: сервер сам периодически опрашивает (scrape) HTTP-эндпоинты и забирает метрики. Для запросов используется язык PromQL — мощный инструмент для агрегации и алертов.
Node Exporter: экспорт системных метрик
Node Exporter — официальный экспортер Prometheus для Linux. Запускается как демон и предоставляет на порту 9100 метрики ОС: загрузку CPU по ядрам, использование RAM и swap, статистику файловых систем, IOPS дисков, сетевой трафик.
Grafana: визуализация
Grafana — платформа для визуализации данных. В роли data source подключается Prometheus, после чего строятся дашборды с графиками, heatmap, gauge-панелями. Для Node Exporter существуют готовые дашборды — например, Node Exporter Full (Grafana Dashboard ID 1860), покрывающий все основные метрики сервера.
[Сервер] -> Node Exporter (:9100)
^ scrape
Prometheus (:9090) -> [хранение TSDB]
v query (PromQL)
Grafana (:3000) -> [дашборды]Минимальные требования к серверу
Dev / Test: одиночный сервер
- CPU: 2 vCPU
- RAM: 4 ГБ
- Диск: 20-50 ГБ NVMe SSD
- ОС: Ubuntu 22.04 LTS / Debian 12
Российские провайдеры из каталога EasyLinkLife: Timeweb Cloud — от 390 руб./мес, VDSina.ru — от 350 руб./мес, AdminVPS — от 320 руб./мес.
Production: мониторинг нескольких хостов
- CPU: 4 vCPU
- RAM: 8 ГБ и более
- Диск: от 100 ГБ NVMe SSD
RUVDS предлагает серверы с 4 vCPU и 8 ГБ RAM от 800-900 руб./мес в собственных ЦОД в Москве и Санкт-Петербурге.
Установка Prometheus на VPS: пошаговая инструкция
Все команды актуальны для Ubuntu 22.04 и 24.04 по состоянию на 2026 год.
Обновление системы и создание пользователя
sudo apt update && sudo apt upgrade -y
sudo useradd --no-create-home --shell /bin/false prometheusСкачивание и установка Prometheus
cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.51.0/prometheus-2.51.0.linux-amd64.tar.gz
tar xvf prometheus-2.51.0.linux-amd64.tar.gz
cd prometheus-2.51.0.linux-amd64
sudo cp prometheus promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool
sudo mkdir /etc/prometheus /var/lib/prometheus
sudo cp -r consoles console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheusКонфигурация prometheus.yml
# /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']Создание systemd unit-файла
[Unit]
Description=Prometheus Monitoring
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/ \
--storage.tsdb.retention.time=30d
Restart=on-failure
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
sudo systemctl status prometheusPrometheus будет доступен по адресу http://<IP>:9090. Откройте http://<IP>:9090/targets — вы увидите job prometheus в статусе UP.
Установка Node Exporter для сбора метрик
cd /tmp
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz
tar xvf node_exporter-1.8.0.linux-amd64.tar.gz
sudo cp node_exporter-1.8.0.linux-amd64/node_exporter /usr/local/bin/
sudo useradd --no-create-home --shell /bin/false node_exporter
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable node_exporter
sudo systemctl start node_exporter
curl http://localhost:9100/metrics | head -20Node Exporter экспонирует метрики на порту 9100. Оставьте его закрытым в файрволе — Prometheus обращается к нему локально.
Установка и настройка Grafana
sudo apt install -y apt-transport-https software-properties-common wget gnupg
sudo mkdir -p /etc/apt/keyrings
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt update && sudo apt install grafana -ysudo systemctl daemon-reload && sudo systemctl enable grafana-server && sudo systemctl start grafana-serverGrafana доступна на порту 3000. Логин: admin / admin. Смените пароль при первом входе.
Добавление Prometheus как источника данных
- Перейдите в Connections - Data Sources
- Нажмите Add data source, выберите Prometheus
- В поле URL укажите http://localhost:9090
- Нажмите Save & Test
Импорт дашборда Node Exporter Full
- Dashboards - Import
- Введите ID 1860, нажмите Load
- Выберите Prometheus как источник данных
- Нажмите Import
Дашборд откроется немедленно и начнёт отображать метрики вашего сервера: загрузку CPU, использование RAM, I/O дисков, сетевой трафик.
Настройка алертов в Grafana
Алерты позволяют получать уведомления о проблемах на сервере до того, как они приведут к отказу.
Настройка точки контакта (Contact point)
Перейдите в Alerting - Contact points - Add contact point. Grafana поддерживает Telegram, Email, Slack, PagerDuty. Для Telegram укажите Bot Token и Chat ID.
Создание правила оповещения
# PromQL для CPU > 85%:
100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 85
# Условие: IS ABOVE 85
# Период оценки: каждые 1m, в течение 2mБезопасность стека мониторинга
Порты Prometheus (9090) и Node Exporter (9100) не должны быть доступны из интернета — они не имеют встроенной аутентификации.
ufw deny 9090
ufw deny 9100
ufw allow 3000 # GrafanaРекомендуется разместить Grafana за Nginx с TLS-сертификатом Let's Encrypt. Порт 3000 тоже закрывается, трафик идёт через 443.
Дополнительные меры безопасности
- Запускайте Prometheus и Node Exporter от непривилегированного пользователя
- Включите ротацию логов через logrotate
- Регулярно обновляйте компоненты стека
- Измените стандартные учётные данные Grafana сразу после первого входа
Какой VPS выбрать для мониторинга
Для комфортной работы стека Grafana + Prometheus + Node Exporter достаточно VPS с 1-2 vCPU и 2 ГБ RAM. При мониторинге более 10 серверов рекомендуется от 4 ГБ RAM и SSD-диск от 40 ГБ.
Цены актуальны на 2026 год. Уточняйте условия на страницах провайдеров через агрегатор EasyLinkLife.
Заключение
Настройка связки Grafana + Prometheus + Node Exporter — один из наиболее эффективных способов получить полный контроль над состоянием VPS. Вы получаете детализированные графики, гибкие дашборды и систему алертов, не завися от сторонних SaaS-сервисов. Весь стек разворачивается менее чем за час.
Если вы ещё не определились с площадкой для развёртывания мониторинга, сравните актуальные предложения российских провайдеров на EasyLinkLife — тарифы, характеристики и отзывы в одном месте.
Плюсы и минусы
Преимущества
- Полностью бесплатный open-source стек
- Детализированные метрики CPU, RAM, диска и сети
- Гибкая система алертов через Telegram, Email, Slack
- Готовые дашборды сообщества (ID 1860)
- Работает на минимальных ресурсах (2 vCPU, 2 ГБ RAM)
- Мониторинг нескольких серверов с одной Grafana
Недостатки
- Требует базовых знаний Linux и командной строки
- Нет встроенной аутентификации в Prometheus
- Хранение данных растёт при длительном retention
- Только pull-модель (scrape)
Частые вопросы
Сколько ресурсов VPS нужно для Grafana и Prometheus?
Минимально: 2 vCPU и 2 ГБ RAM. При мониторинге нескольких серверов — 4 ГБ RAM и SSD от 40 ГБ.
Сколько времени занимает настройка мониторинга?
От 30 до 60 минут вручную. С Docker Compose — 10-15 минут.
Grafana и Prometheus бесплатны?
Да, полностью бесплатные open-source инструменты. Платите только за VPS от 300 руб./мес.
Как защитить Grafana от несанкционированного доступа?
Закройте порты 9090 и 3000 через UFW, настройте Nginx reverse proxy с SSL, смените пароль admin.
Можно ли мониторить несколько VPS с одной Grafana?
Да, установите Node Exporter на каждый сервер и добавьте IP в targets prometheus.yml.
Куда Grafana отправляет уведомления об алертах?
Telegram, Email, Slack, PagerDuty. Для Telegram нужен бот через @BotFather.
Docker Compose или ручная установка?
Docker Compose быстрее и удобнее. Ручная — больше контроля для production без Docker.
Запустите Grafana + Prometheus уже сегодня
Выбрать VPS для мониторингаНекоторые ссылки в этой статье являются партнёрскими. Мы можем получить комиссию при переходе и покупке. На стоимость для вас это не влияет. Подробнее