О том, что сайт упал, часто узнают от пользователей — в комментариях, в поддержке, иногда спустя несколько часов. Средний сайт недоступен 4–6 часов в год, и каждая минута простоя — это прямые потери: выручка, позиции в поисковой выдаче, репутация. Задача мониторинга сервера — сообщить об инциденте раньше, чем это сделает первый пострадавший пользователь. В этом руководстве — как настроить мониторинг сервера с нуля: сравниваем Zabbix, Prometheus и UptimeRobot, настраиваем алерты в Telegram, выбираем инструмент под задачу. Мониторинг — часть общей безопасности инфраструктуры наряду с защитой от DDoS-атак: первое следит за состоянием изнутри, второе — защищает снаружи.
Три уровня мониторинга VPS закрывают разные сценарии: доступность (пинг, HTTP-ответ), системные ресурсы (CPU, RAM, диск), приложения (базы данных, очереди, воркеры). Начинать можно с любого, но полная картина складывается только из всех трёх.
Сравнение инструментов — что выбрать для VPS

Три основных инструмента для мониторинга серверов занимают разные ниши: от простого внешнего пинга до корпоративного стека с дашбордами.
| Критерий | UptimeRobot | Prometheus + Grafana | Zabbix |
|---|---|---|---|
| Тип | SaaS (внешний) | Self-hosted | Self-hosted |
| Установка | 5 минут | 1–2 часа | 2–4 часа |
| Ресурсы на сервере | Нет (внешний сервис) | RAM ~200–400 МБ | RAM 300–600 МБ |
| Метрики CPU/RAM/диска | Нет | Да (Node Exporter) | Да (агент Zabbix) |
| Визуализация | Базовая | Grafana (мощная) | Встроенный UI |
| Алерты в Telegram | Да | Да (Alertmanager) | Да |
| Кривая обучения | Минимальная | Средняя | Высокая |
| Цена | Бесплатно / $7+ | Бесплатно | Бесплатно |
Для небольшого VPS с одним сайтом оптимальная точка входа — UptimeRobot для внешней доступности плюс Node Exporter с Grafana Cloud для системных метрик. Zabbix оправдывает сложность настройки, когда инфраструктура насчитывает от 5+ серверов и нужен единый интерфейс управления.
UptimeRobot — внешний мониторинг за 5 минут
UptimeRobot — SaaS-сервис, который проверяет доступность URL снаружи вашей инфраструктуры. Не требует установки агента на сервер, работает независимо от состояния самого VPS. Именно это его главное преимущество: если сервер полностью упал, UptimeRobot всё равно об этом узнает и сообщит.
Настройка занимает пять минут: регистрация на uptimerobot.com, добавление монитора типа HTTP(S), указание URL сайта, интервал проверки — 5 минут на бесплатном тарифе, 1 минута на платном ($7/мес).
Алерт в Telegram через UptimeRobot
Чтобы получать уведомления в Telegram при падении сайта:
- Создайте бота через @BotFather в Telegram — получите токен вида
123456:ABCdef... - Напишите боту любое сообщение, затем откройте
https://api.telegram.org/bot{TOKEN}/getUpdates— в ответе найдётеchat_id - В UptimeRobot: My Settings → Alert Contacts → Add Alert Contact → тип Telegram
- Введите Bot Token и Chat ID, сохраните контакт
- В настройках монитора выберите этот контакт как получателя уведомлений
При падении придёт сообщение: «[DOWN] example.com is down. Reason: Connection refused». При восстановлении — «[UP] example.com is up. Downtime: 4 minutes».
Ограничения UptimeRobot
UptimeRobot видит только внешнюю доступность: отвечает ли сайт на HTTP-запрос. Он не знает, что у сервера CPU загружен на 98% и приложение вот-вот зависнет. Не видит заполненность диска, утечки памяти, зависание воркеров очереди.
Интервал 5 минут на бесплатном тарифе — это ещё один момент: кратковременный инцидент длиной 2–3 минуты может остаться незамеченным. Для проектов с требованиями к SLA нужен платный тариф или дополнительный инструмент с агентом на сервере.
Prometheus и Grafana — метрики для тех, кто хочет всё видеть
Связка Prometheus + Grafana — стандарт de facto для мониторинга современной инфраструктуры. Архитектура: Prometheus работает по pull-модели — сам обходит источники метрик по расписанию. Node Exporter запускается на каждом VPS и открывает эндпоинт :9100/metrics с тысячами показателей: CPU, RAM, диск, сеть, файловые системы. Grafana подключается к Prometheus как источнику данных и строит дашборды.
Pull-модель удобна тем, что Prometheus сам управляет частотой опроса — агент на сервере ничего не «проталкивает» и не зависит от сетевой доступности центрального сервера в момент сбора.
Официальная документация Prometheus подробно описывает все параметры конфигурации.
Установка Node Exporter на VPS
# Создать пользователя для Node Exporter
useradd --no-create-home --shell /bin/false node_exporter
# Скачать Node Exporter (актуальная версия — 1.8.x)
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xvf node_exporter-1.8.2.linux-amd64.tar.gz
cp node_exporter-1.8.2.linux-amd64/node_exporter /usr/local/bin/
chown node_exporter:node_exporter /usr/local/bin/node_exporter
# /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now node_exporter
# Проверить: curl http://localhost:9100/metrics | head -20
Порт 9100 не должен быть открыт наружу — только для Prometheus-сервера. Настройте firewall: базовая настройка SSH и firewall на VPS описывает нужные правила.
Установка Prometheus
Prometheus можно поставить на отдельный VPS (рекомендуется) или на тот же сервер, если ресурсы позволяют. Конфигурационный файл с описанием целей для сбора метрик:
# /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets:
- '185.100.x.x:9100' # IP вашего VPS
labels:
instance: 'my-vps'
env: 'production'
# Проверить статус целей после запуска
curl http://localhost:9090/api/v1/targets
Grafana — подключение и дашборд
После установки Grafana OSS: добавьте Prometheus как Data Source (Configuration → Data Sources → Add data source → Prometheus, URL http://localhost:9090). Импортируйте готовый дашборд «Node Exporter Full» с ID 1860 из официального каталога Grafana Dashboards — это займёт пять кликов без написания единого запроса PromQL.
На дашборде сразу видны: загрузка CPU по ядрам, использование оперативной памяти, скорость чтения/записи диска, сетевой трафик, заполненность файловых систем. Все графики за последний час, сутки или неделю — по выбору.
Alertmanager — оповещения в Telegram при аномалиях

Prometheus собирает метрики, Alertmanager решает, кому и когда отправлять алерты. Правила срабатывания описываются в отдельном файле в синтаксисе PromQL.
Два базовых правила — высокая нагрузка CPU и заканчивающееся место на диске:
# /etc/prometheus/alert.rules.yml
groups:
- name: node_alerts
rules:
- alert: HighCPULoad
expr: 100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 85
for: 5m
labels:
severity: warning
annotations:
summary: "Высокая нагрузка CPU на {{ $labels.instance }}"
description: "CPU > 85% в течение 5 минут. Текущее значение: {{ $value }}%"
- alert: LowDiskSpace
expr: (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"}) * 100 < 15
for: 2m
labels:
severity: critical
annotations:
summary: "Мало места на диске: {{ $labels.instance }}"
description: "Свободно менее 15% на /. Текущее значение: {{ $value }}%"
Конфигурация Alertmanager с отправкой уведомлений в Telegram:
# /etc/alertmanager/alertmanager.yml
global:
telegram_api_url: 'https://api.telegram.org'
route:
receiver: 'telegram-alerts'
receivers:
- name: 'telegram-alerts'
telegram_configs:
- bot_token: 'YOUR_BOT_TOKEN'
chat_id: YOUR_CHAT_ID
message: '{{ range .Alerts }}{{ .Annotations.summary }}: {{ .Annotations.description }}{{ end }}'
Параметр for: 5m в правиле означает: алерт срабатывает только если условие выполняется непрерывно 5 минут. Это исключает ложные срабатывания на короткие пики нагрузки.
Zabbix — корпоративный мониторинг для больших инфраструктур
Zabbix — зрелая система мониторинга с 20-летней историей. Архитектура: центральный Zabbix Server с базой данных (MySQL или PostgreSQL) и Zabbix Agent на каждом мониторируемом хосте. Полная документация Zabbix доступна на официальном сайте.
Установка Zabbix Agent на мониторируемый VPS (Ubuntu 22.04):
# Установка Zabbix Agent на мониторируемый VPS
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_7.0-1+ubuntu22.04_all.deb
apt update && apt install -y zabbix-agent2
# Настройка /etc/zabbix/zabbix_agent2.conf
# Server=IP_ZABBIX_SERVER
# Hostname=my-vps
systemctl enable --now zabbix-agent2
Для Zabbix Server нужен отдельный выделенный сервер от 2 ГБ RAM — посмотрите тарифы выделенных серверов или VPS с нужными характеристиками у Selectel. После подключения агента в Zabbix UI добавляете хост и применяете готовый шаблон «Linux by Zabbix agent» — он покрывает все системные метрики без ручной настройки.
Алерты в Telegram настраиваются через Media Types в Zabbix UI: Administration → Media Types → Telegram. Там же — Actions для автоматических уведомлений при превышении порогов.
Плюсы и минусы Zabbix
Плюсы: зрелый продукт с огромным сообществом, готовые шаблоны для 100+ приложений (Nginx, MySQL, Redis, Docker, Kubernetes), autodiscovery хостов, compliance-friendly для корпоративных требований.
Минусы: тяжёлый стек — нужен отдельный сервер только под Zabbix Server. Сложный UI, который требует времени на освоение. Для одного-двух VPS это избыточность: потратите больше времени на настройку, чем сэкономите на администрировании.
Мониторинг приложений — что проверять помимо системы
CPU и RAM — базовые метрики, но они не расскажут о проблемах внутри приложения. Что ещё нужно отслеживать:
- Доступность порта MySQL/PostgreSQL — не только что процесс запущен, но и что база принимает соединения
- Длина очереди задач в Redis или RabbitMQ — резкий рост означает, что воркеры не справляются
- Время ответа PHP-FPM — через stub_status или отдельный экспортер
- Статус Nginx — количество активных соединений через stub_status
- Количество коннектов к БД — приближение к лимиту max_connections
В экосистеме Prometheus для каждого из этих компонентов есть готовый экспортер: mysqld_exporter собирает метрики MySQL, redis_exporter — Redis, nginx-prometheus-exporter — Nginx. Принцип подключения одинаковый: запустить экспортер как сервис, добавить его target в конфиг Prometheus, импортировать готовый дашборд в Grafana.
Как выбрать VPS для установки системы мониторинга
Требования к ресурсам зависят от выбранного стека:
- UptimeRobot — ничего на сервере не устанавливается
- Node Exporter — до 50 МБ RAM, незаметен на любом VPS
- Prometheus + Grafana — от 1 ГБ RAM, 10 ГБ SSD под хранение метрик (retention period — по умолчанию 15 дней)
- Zabbix Server — от 2 ГБ RAM, 20–40 ГБ SSD в зависимости от количества хостов и истории
Для Prometheus с Grafana подойдёт недорогой VPS с 1–2 ГБ RAM — его можно держать отдельно от продакшна, чтобы мониторинг работал независимо. Для VPS в России хранение метрик на отечественной инфраструктуре решает вопрос с данными внутри РФ. Сравните тарифы под мониторинг в каталоге VPS free-hosting.ru — более 45 провайдеров с реальными ценами и отзывами. Для оценки конкретных провайдеров под такие задачи полезно сравнение Aeza и Hetzner.
Ну и в заключение
Стек для начала: UptimeRobot закрывает внешний мониторинг доступности за пять минут и ноль рублей. Node Exporter плюс Grafana Cloud (бесплатный тир) дают системные метрики без отдельного сервера для Prometheus. Вместе это покрывает 80% реальных сценариев для одного-двух VPS. Zabbix имеет смысл рассматривать, когда серверов становится заметно больше и нужен единый инструмент. Хорошо работающий мониторинг в связке с настроенными бэкапами VPS — это полная защита: первое сообщает о проблеме, второе позволяет восстановиться после неё.
Мониторинг настроен — теперь выберите надёжного провайдера, который не создаст лишних инцидентов. В каталоге VPS free-hosting.ru собраны тарифы более 45 провайдеров с реальными ценами и отзывами.