Как поднять Uptime Kuma на VPS за 10 минут

Uptime Kuma: свой мониторинг сервера за вечер

Марина
Марина
📅 6 сентября 2026
Uptime Kuma: свой мониторинг сервера за вечер

Uptime Kuma — бесплатная программа с открытым исходным кодом, которая раз в 20–60 секунд стучится на ваш сайт и пишет в Telegram, если ответа нет. Она ставится одной командой в Docker, укладывается в 1 ГБ оперативной памяти и живёт на самом дешёвом сервере: подходящие тарифы начинаются от 59 ₽ в месяц в разделе недорогие VPS. Собрать свой мониторинг доступности реально за вечер, без подписок и без передачи данных чужому сервису.

Материал для владельца сайта, магазина или Telegram-бота, который уже арендует сервер, но узнаёт о падении от клиентов. Разберём по шагам: где размещать мониторинг, как поставить Uptime Kuma через Docker, какие проверки нужны сайту и почте, как подключить уведомления в Telegram и как сделать публичную страницу статуса.

Uptime Kuma: что это и зачем свой мониторинг вместо чужого сервиса

Uptime Kuma — веб-панель, которая по расписанию отправляет запросы к вашим ресурсам и хранит историю ответов. Каждая проверка называется монитором: вы указываете адрес, тип запроса и интервал, а система рисует график и считает процент доступности за сутки, за 30 дней и за год. Термин аптайм как раз и означает долю времени, когда сервис отвечал корректно.

Бесплатные внешние сервисы ограничивают набор: 5–10 проверок, интервал не чаще 5 минут, история за неделю. Свой инсталл этих лимитов не знает — можно завести 50 мониторов с интервалом 20 секунд и упереться только в ресурсы сервера. Платные тарифы стороннего мониторинга начинаются примерно от 500 ₽ в месяц за десяток проверок, а отдельный VPS обойдётся в 59–150 ₽.

Uptime Kuma проверяет не только HTTP, но и TCP-порты, отклик по ping и наличие конкретного слова на странице. Это ловит ситуации, когда сервер формально жив, а сайт отдаёт заглушку хостера.

Почему мониторинг нельзя ставить на тот же сервер, за которым следите

Самая частая ошибка новичка — поднять Uptime Kuma рядом с сайтом, на той же машине: сервер уже есть, зачем платить второй раз. На практике такая схема ловит ровно ноль настоящих аварий.

Если сервер уходит в перезагрузку, теряет сеть, упирается в лимит памяти или у провайдера падает узел виртуализации — мониторинг падает вместе с сайтом. Уведомление не уйдёт, потому что отправлять его некому. Вы узнаете о простое утром, когда откроете панель и увидите пустой график.

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

Панель мониторинга доступности сервисов
Так выглядит Uptime Kuma после настройки проверок (иллюстрация интерфейса)

Сколько ресурсов нужно и во сколько обойдётся сервер

Uptime Kuma написана на Node.js и хранит историю в файле SQLite. При 20–30 мониторах она занимает 150–250 МБ оперативной памяти и почти не грузит процессор: пики приходятся на моменты опроса и длятся доли секунды. Тариф с 1 ГБ RAM, 1 ядром и диском 10 ГБ закрывает задачу с запасом.

Меньше 1 ГБ брать не советую: на 512 МБ обновление контейнера идёт тяжело. Диск расходуется на историю: год хранения 30 мониторов с интервалом 60 секунд — это ориентировочно 1,5–3 ГБ.

Провайдер Цена от Базовая конфигурация Рейтинг каталога
Cloudcore 59 ₽ / мес 1 ядро, 1 ГБ RAM, 10 ГБ NVMe 3.3
HostVDS 127 ₽ / мес 1 ядро, 1 ГБ RAM, 10 ГБ NVMe 3.3
RuVDS 139 ₽ / мес 1 ядро, 0,5 ГБ RAM, 10 ГБ HDD 4.3
4VPS 110 ₽ / мес 1 ядро, 1 ГБ RAM, 5 ГБ NVMe 4.0
Selectel 200 ₽ / мес 1 ядро, 1 ГБ RAM, 10 ГБ NVMe 4.5

Данные проверены 02.09.2026.

Операционную систему берите Ubuntu 22.04 или 24.04 — под них написана документация Docker, и команды ниже сработают без правок. Готовые тарифы собраны в подборке VPS с Ubuntu.

Установка Uptime Kuma через Docker: пошаговая инструкция

Docker — система контейнеров: приложение приезжает вместе со всеми зависимостями, и вам не нужно ставить Node.js, подбирать версии библиотек и чинить конфликты. Для Uptime Kuma это самый короткий путь — от чистого сервера до рабочей панели проходит 5–10 минут.

Подключитесь к серверу по SSH под root или пользователем с правами sudo и выполните шаги по порядку.

  1. Обновите пакеты системы, чтобы установка не споткнулась о старые зависимости:
    apt update && apt upgrade -y
  2. Установите Docker официальным скриптом — он сам определит версию системы и подключит репозиторий:
    curl -fsSL https://get.docker.com | sh
  3. Проверьте, что демон запустился:
    docker --version && systemctl status docker --no-pager
  4. Создайте именованный том — отдельное хранилище, которое переживёт удаление контейнера вместе со всей историей:
    docker volume create uptime-kuma
  5. Запустите контейнер. Флаг -d отправляет его в фон, --restart=always поднимает после перезагрузки сервера, -p 3001:3001 открывает панель на порту 3001:
    docker run -d --restart=always -p 3001:3001 
      -v uptime-kuma:/app/data 
      --name uptime-kuma louislam/uptime-kuma:1
  6. Убедитесь, что контейнер в статусе Up, а не Restarting:
    docker ps

Если сервер закрыт файрволом, откройте порт 3001 — иначе панель не отзовётся из браузера.

Первый вход и создание первой проверки

Откройте в браузере адрес вида http://IP-адрес-сервера:3001. Панель предложит создать администратора: придумайте логин и длинный пароль — страница будет доступна из интернета, и слабый пароль здесь опаснее, чем кажется. Регистрация одноразовая, второго администратора форма не создаст.

После входа нажмите Add New Monitor. В поле Monitor Type выберите HTTP(s), в Friendly Name напишите понятное имя вроде «Магазин — главная», в URL укажите полный адрес с протоколом. Heartbeat Interval оставьте 60 секунд, Retries поставьте 2 — тогда авария объявляется только после двух неудачных попыток подряд.

Через минуту на графике появится первая зелёная полоса и время ответа в миллисекундах. Нормальный отклик сайта на российском сервере — 40–300 мс; значения выше 1000 мс говорят о перегруженной машине или тяжёлых запросах к базе. Пяти-восьми мониторов хватает на типовой проект.

Четыре типа проверок и когда какая нужна

Uptime Kuma различает несколько способов задать вопрос серверу, и каждый ловит свой класс аварий. HTTP(s) проверяет ответ веб-сервера и его код: 200 означает, что страница отдана, 500 — что упало приложение, 502 — что веб-сервер не дождался ответа от бэкенда.

Проверка TCP-порта просто пытается установить соединение с указанным портом и не разбирается в протоколе. Это единственный способ следить за базой данных, почтой или игровым сервером. Ping отправляет ICMP-пакет и говорит, жива ли машина на сетевом уровне, — полезный индикатор, но часть провайдеров ICMP режет.

Keyword — самый недооценённый тип. Он загружает страницу и ищет в её коде заданное слово. Если сайт вернул код 200, но вместо каталога показывает «Технические работы» или пустую вёрстку, только Keyword это заметит.

Тип проверки Что проверяет Какую аварию ловит Интервал
HTTP(s) Код ответа веб-сервера Ошибки 500 и 502, недоступность сайта 60 секунд
Keyword Наличие слова в HTML Белый экран, заглушку, сломанный шаблон 120 секунд
TCP Port Соединение с портом Упавшую базу, почту, игровой сервер 60 секунд
Ping Ответ на ICMP-пакет Потерю сети, выключенную машину 20–60 секунд
Сколько простоя допускает каждый уровень доступности
Разница между 99,9% и 99% — почти семь часов в месяц

Интервал проверки и как считается простой

Минимальный интервал в Uptime Kuma — 20 секунд, и соблазн выставить его везде велик. Частота нужна не всем: сайту-визитке хватит 5 минут, магазину оправданы 60 секунд, а 20 секунд имеют смысл там, где каждая минута стоит денег — платёжный шлюз, API, боевой сервер под Telegram-бота.

Интервал определяет точность подсчёта простоя: при опросе раз в 5 минут авария длиной 4 минуты может не попасть в статистику вообще. При интервале 20 секунд погрешность падает до трети минуты, но число запросов к сайту растёт в 15 раз.

Второй параметр — Retries, число повторов перед объявлением аварии. При интервале 60 секунд и двух повторах уведомление придёт через 2–3 минуты после реальной поломки: короткие сетевые всплески отсеиваются, настоящий сбой не теряется. Проценты доступности лучше сразу перевести в минуты — так понятнее, о чём договаривается провайдер в SLA.

Уровень доступности Простой в месяц Простой за год Что это на практике
99,99% около 4,3 минуты около 53 минут Отказоустойчивый кластер
99,9% около 43 минут около 8,8 часа Типичное обещание хостера
99,5% около 3,6 часа около 44 часов Сервер без резервирования
99% более 7 часов более 3,5 суток Повод менять площадку

Разница между 99,9% и 99% на бумаге кажется мелочью, а в реальности это 43 минуты против 7 с лишним часов ежемесячно. Свой мониторинг нужен затем, чтобы в разговоре с поддержкой у вас были собственные цифры.

Уведомления в Telegram: настройка по шагам

Uptime Kuma поддерживает больше 90 каналов доставки, но Telegram удобнее прочих: сообщение приходит мгновенно и не тонет в почте. Настройка занимает 3–4 минуты и не требует своего сервера для бота.

  1. Откройте в Telegram диалог с @BotFather и отправьте команду /newbot. Придумайте имя бота и уникальный логин, оканчивающийся на bot.
  2. Скопируйте токен из ответа — строку вида 7712345678:AAH.... Это ключ доступа, храните его как пароль.
  3. Найдите созданного бота в поиске, откройте диалог и нажмите Start: без этого шага бот не имеет права писать вам первым.
  4. Узнайте числовой идентификатор чата — отправьте любое сообщение боту @userinfobot, он ответит числом вида 123456789.
  5. В панели откройте Profile → Settings → Notifications → Setup Notification, в списке Notification Type выберите Telegram и вставьте токен в Bot Token, а число — в Chat ID.
  6. Нажмите Test: если тестовое сообщение пришло, поставьте галочки Default enabled и Apply on all existing monitors, затем Save.

В разделе Advanced есть параметр Resend Notification if Down X times — повторное напоминание, пока авария не закончилась: значение 10 при интервале 60 секунд даёт сообщение примерно раз в 10 минут. Для команды создайте группу, добавьте туда бота и укажите её Chat ID — он начинается с минуса.

Какие проверки настроить для обычного сайта

Одного монитора сайту мало: доступность главной не гарантирует, что работает корзина или админка. Базовый набор строится из четырёх-пяти проверок, каждая закрывает свой слой.

Первая — HTTP(s) на главную страницу по HTTPS, интервал 60 секунд. Вторая — Keyword на ту же главную с поиском слова из шапки, например названия компании: она отличит живой сайт от заглушки. Третья — HTTP(s) на страницу, которая обращается к базе данных: карточка товара, поиск, личный кабинет. Если база отвалилась, главная ещё отдаётся из кеша, а этот адрес вернёт 500.

Четвёртая проверка — срок SSL-сертификата. Uptime Kuma показывает, сколько дней осталось, и предупреждает за 7, 14 и 21 день. Автопродление ломается чаще, чем принято думать: инструкция про то, как установить SSL Let’s Encrypt, объясняет, где обычно рвётся цепочка.

Пятая — ping до IP-адреса сервера. Она разделяет два сценария: если ping идёт, а HTTP молчит — упало приложение, если не идёт ничего — проблема в сети или самой виртуальной машине. Такое разделение экономит первые десять минут разбирательства.

Какие проверки настроить для почтового сервера

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

Заведите отдельные мониторы на порты: 25 для обмена почтой между серверами, 587 для отправки клиентами через SMTP с шифрованием STARTTLS, 465 для SMTP поверх SSL, 993 для чтения по IMAP. Интервал 120 секунд достаточен — почтовые сбои редко измеряются секундами.

Отдельно стоит следить за веб-интерфейсом почты: обычная проверка HTTP(s) на адрес вебмейла покажет, доступен ли ящик сотрудникам. А контроль сертификата на порту 993 предупредит о просрочке до того, как почтовые клиенты начнут ругаться на небезопасное соединение.

Публичная страница статуса, свой домен и обновления

Status Page — витрина мониторинга для клиентов. В разделе Status Pages вы задаёте адрес вида /status/main, добавляете часть мониторов и получаете страницу с зелёными и красными полосами за 90 дней. Внутренние проверки вроде базы туда выносить не нужно: во время аварии клиенты идут по ссылке, а не в чат поддержки.

Заходить на панель по IP с портом 3001 неудобно и небезопасно. Поднимите на том же сервере Nginx как обратный прокси, направьте на него поддомен вида status.вашсайт.ru и выпустите бесплатный сертификат. Одновременно закройте порт 3001 снаружи — как это сделать через UFW или iptables, разобрано в гайде о том, как настроить файрвол на Linux-сервере.

Обновление занимает три команды, история и настройки лежат в томе и переживают операцию без потерь. Держите закреплённой мажорную версию образа — тег :1 вместо :latest, тогда переход на следующую ветку вы делаете осознанно.

docker stop uptime-kuma && docker rm uptime-kuma
docker pull louislam/uptime-kuma:1
docker run -d --restart=always -p 3001:3001 
  -v uptime-kuma:/app/data 
  --name uptime-kuma louislam/uptime-kuma:1

Частые ошибки при настройке мониторинга

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

  • Мониторинг стоит на том же сервере, что и сайт: при реальной аварии уведомление не уходит вообще.
  • Интервал 20 секунд выставлен на всех мониторах сразу — алерты превращаются в шум, и на них перестают реагировать.
  • Retries оставлен нулевым: одна потерянная сетевая попытка даёт ложную тревогу посреди ночи.
  • Проверяется только главная страница, хотя падает обычно база или платёжный модуль на внутренних адресах.
  • Панель открыта наружу на порту 3001 с простым паролем и без HTTPS — готовая точка входа для перебора.

Шестая ошибка стоит отдельно: мониторинг настроили, а доставку уведомлений ни разу не проверили. Остановите на минуту веб-сервер командой systemctl stop nginx и убедитесь, что сообщение пришло в Telegram. Тест занимает две минуты и стоит того.

Частые вопросы

Сколько стоит Uptime Kuma? Сама программа бесплатна и распространяется с открытым исходным кодом, платить нужно только за сервер. Отдельный VPS под мониторинг обойдётся в 59–200 ₽ в месяц в зависимости от провайдера и локации.

Хватит ли 1 ГБ оперативной памяти? Да, при 20–30 мониторах Uptime Kuma расходует 150–250 МБ и оставляет запас для системы. Тариф с 1 ГБ RAM и диском 10 ГБ закрывает задачу, если вы не заводите сотни проверок.

Можно ли поставить мониторинг рядом с сайтом, если денег на второй сервер нет? Технически можно, но пользы мало: перезагрузка или сетевая авария выключит и наблюдателя. При ограниченном бюджете берите самый дешёвый тариф от 59 ₽ — это дешевле одного часа простоя магазина.

Обязательно ли ставить через Docker? Нет, Uptime Kuma запускается и напрямую через Node.js версии 18 и выше. Но тогда вы сами следите за версиями пакетов и пишете unit-файл systemd.

Какой интервал проверки выбрать? Сайту-визитке достаточно 300 секунд, магазину или сервису с оплатой — 60 секунд, минимальные 20 секунд ставят только на критичные API и платёжные шлюзы. Повторов перед тревогой задавайте 2, иначе получите ложные срабатывания.

Uptime Kuma заменит Zabbix? Нет, задачи разные: Uptime Kuma следит за доступностью снаружи, а Zabbix собирает внутренние метрики — загрузку процессора, память, место на диске. Как настроить второй слой, описано в гайде про мониторинг сервера.

Что делать, если ping не проходит, а сайт открывается? Скорее всего провайдер или файрвол блокирует ICMP-пакеты, это нормальная практика защиты. Отключите ping-монитор для такого адреса и опирайтесь на проверки HTTP(s) и TCP-порта.

Итог

Свой мониторинг собирается за вечер: 5–10 минут на Docker и контейнер, 4 минуты на бота в Telegram, полчаса на набор проверок для сайта и почты. Главное правило — наблюдатель живёт на отдельной машине у другого провайдера, иначе он падает вместе с тем, за чем следит.

Сервер под эту задачу нужен скромный: 1 ядро, 1 ГБ RAM и 10 ГБ диска, от 59 ₽ в месяц. Подобрать тариф и сравнить цены можно в разделе недорогих VPS — там есть фильтры по памяти, диску и локации.

Поделиться:
👁 19 просмотров
Марина
Редактор · FREEHOSTING
Главный редактор FREEHOSTING. С 2020 года тестирует VDS, VPS и хостинг-провайдеров — арендует серверы, нагружает их реальными проектами и пишет честные обзоры по итогам. Помогает читателям выбирать хостинг под свои задачи: от Telegram-бота до production-сайта.