bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward
eco Начальный Туториал

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

calendar_month May 26, 2026 schedule 10 мин. чтения visibility 20 просмотров
Установка и настройка Uptime Kuma на VPS: мониторинг доступности и уведомления в Telegram
info

Нужен сервер для этого гайда? Мы предлагаем выделенные серверы и VPS в 50+ странах с мгновенной настройкой.

Нужен сервер для этого гайда?

Разверните VPS или выделенный сервер за минуты.

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

TL;DR

В данном руководстве мы разберем процесс развертывания Uptime Kuma — мощного open-source инструмента для мониторинга инфраструктуры — на виртуальном сервере (VPS). Мы настроим автоматическую проверку доступности сайтов, сервисов и портов, обеспечим безопасность через реверс-прокси с SSL-шифрованием и интегрируем систему мгновенных уведомлений в Telegram. К концу туториала у вас будет собственная профессиональная панель мониторинга, работающая в изолированном Docker-контейнере с автоматическим обновлением и резервным копированием.

  • Стек технологий: Docker, Docker Compose, Nginx/Caddy, Ubuntu 26.04 LTS.
  • Время настройки: 30–40 минут.
  • Результат: Мониторинг 24/7 с точностью до секунды и нулевой стоимостью лицензий.
  • Ключевая особенность: Полный контроль над данными и неограниченное количество мониторов.
  • Безопасность: Настройка Firewall (UFW) и автоматических SSL-сертификатов Let's Encrypt.

1. Что мы настраиваем и зачем: философия Self-Hosted мониторинга

Схема: 1. Что мы настраиваем и зачем: философия Self-Hosted мониторинга
Схема: 1. Что мы настраиваем и зачем: философия Self-Hosted мониторинга

Для любого владельца онлайн-проекта, будь то лендинг, SaaS-платформа, игровой сервер или криптовалютная нода, простой — это прямые убытки. Традиционно рынок мониторинга делится на два лагеря: дорогостоящие Enterprise-решения (DataDog, New Relic) и ограниченные бесплатные тарифы облачных сервисов (UptimeRobot, StatusCake).

Uptime Kuma — это "золотая середина", которая совершила революцию в self-hosted сегменте. Это open-source решение с современным интерфейсом, которое по функционалу не уступает платным аналогам. Устанавливая его на собственный VPS, вы получаете:

  • Конфиденциальность: Данные о вашей инфраструктуре не передаются третьим лицам.
  • Отсутствие лимитов: Вы можете мониторить 10, 50 или 500 сервисов без доплаты за каждый новый "монитор".
  • Гибкость: Возможность проверять сервисы внутри вашей локальной сети или VPN, которые недоступны внешним облачным сканерам.
  • Многофункциональность: Поддержка HTTP(s), Ping, TCP Port, DNS-записей, Docker-контейнеров и даже игровых серверов.

В 2026 году мониторинг стал еще более критичным из-за усложнения сетевых маршрутов и участившихся DDoS-атак. Наличие собственного инструмента, который мгновенно сообщит в Telegram о падении базы данных или истечении срока действия SSL-сертификата, — это стандарт гигиены для любого системного администратора или разработчика.

2. Какой VPS-конфиг нужен под эту задачу

Схема: 2. Какой VPS-конфиг нужен под эту задачу
Схема: 2. Какой VPS-конфиг нужен под эту задачу

Uptime Kuma написана на Node.js и использует SQLite в качестве базы данных. Это делает её крайне нетребовательной к ресурсам. Однако, стоит учитывать, что мониторинг должен быть "самым стабильным звеном" в вашей инфраструктуре. Если сервер мониторинга упадет вместе с основным проектом, вы об этом не узнаете.

Ресурс Минимальные требования Рекомендуемые (для 100+ мониторов)
CPU 1 ядро (Shared) 2 ядра (Dedicated)
RAM 1 ГБ 2-4 ГБ
Диск (SSD/NVMe) 10 ГБ 20 ГБ+ (для долгой истории логов)
ОС Ubuntu 24.04 / 26.04 LTS Ubuntu 26.04 LTS

Для стабильной работы системы мониторинга идеально подойдет VPS с указанными характеристиками. Важно выбирать локацию сервера, отличную от локации ваших основных сервисов. Например, если ваш сайт хостится в Германии, сервер мониторинга лучше разместить в Нидерландах или Финляндии. Это позволит исключить ложноположительные срабатывания при локальных сбоях в конкретном дата-центре или у магистрального провайдера региона.

Когда стоит выбрать Dedicated сервер? Если вы планируете использовать Uptime Kuma как часть огромной системы мониторинга вместе с Prometheus, Grafana и ELK-стеком, потребляющим значительные ресурсы дискового ввода-вывода (IOPS). Для одной лишь Kuma виртуального сервера (VPS) более чем достаточно.

3. Подготовка сервера: базовая безопасность и системные утилиты

Схема: 3. Подготовка сервера: базовая безопасность и системные утилиты
Схема: 3. Подготовка сервера: базовая безопасность и системные утилиты

Прежде чем устанавливать само приложение, необходимо подготовить "фундамент" — операционную систему. Мы будем использовать Ubuntu 26.04 LTS, так как она обеспечивает долгосрочную поддержку и свежие пакеты безопасности.

Первым делом обновим индексы пакетов и саму систему:


sudo apt update && sudo apt upgrade -y

Установим базовый набор утилит, которые понадобятся нам для работы (curl, git, htop, ufw):


sudo apt install -y curl git wget htop software-properties-common apt-transport-https ca-certificates gnupg lsb-release

Настройка Firewall (UFW): Безопасность сервера мониторинга критична. Нам нужно открыть только SSH (стандартно 22), HTTP (80) и HTTPS (443).


sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Примечание: Если вы используете нестандартный порт для SSH, обязательно разрешите его перед включением UFW, иначе вы потеряете доступ к серверу.

Также рекомендуется создать отдельного пользователя с правами sudo, чтобы не работать под root:


adduser monitor-admin
usermod -aG sudo monitor-admin
# Переключаемся на нового пользователя
su - monitor-admin

4. Установка Docker и Docker Compose (актуальные версии 2026)

Схема: 4. Установка Docker и Docker Compose (актуальные версии 2026)
Схема: 4. Установка Docker и Docker Compose (актуальные версии 2026)

В 2026 году использование Docker является стандартом де-факто для развертывания self-hosted приложений. Это изолирует зависимости Uptime Kuma (Node.js, библиотеки) от основной ОС, упрощая обновление и миграцию.

Добавим официальный GPG-ключ Docker:


sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Подключим репозиторий:


echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Установим Docker Engine и Docker Compose Plugin:


sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Проверим корректность установки:


docker --version && docker compose version

Добавим нашего пользователя в группу docker, чтобы запускать контейнеры без sudo:


sudo usermod -aG docker $USER
# Чтобы изменения вступили в силу, перелогиньтесь или выполните:
newgrp docker

5. Развертывание Uptime Kuma: пошаговая инструкция

Схема: 5. Развертывание Uptime Kuma: пошаговая инструкция
Схема: 5. Развертывание Uptime Kuma: пошаговая инструкция

Мы будем использовать метод Docker Compose, так как он позволяет легко описывать конфигурацию в YAML-файле и управлять томами данных.

Создадим рабочую директорию для проекта:


mkdir -p ~/uptime-kuma && cd ~/uptime-kuma

Создадим файл docker-compose.yml:


nano docker-compose.yml

Вставьте следующее содержимое в файл:


services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: always
    volumes:
      - ./data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock # Опционально: для мониторинга других контейнеров
    ports:
      - "127.0.0.1:3001:3001" # Привязываем к localhost для безопасности (будем использовать прокси)
    environment:
      - TZ=Europe/Moscow # Укажите ваш часовой пояс

Разбор конфигурации:

  • image: louislam/uptime-kuma:1 — используем стабильную версию образа.
  • restart: always — контейнер будет автоматически запускаться при старте сервера или после сбоя.
  • ./data:/app/data — монтируем локальную папку для хранения базы данных SQLite. Это гарантирует, что ваши настройки не пропадут при обновлении контейнера.
  • 127.0.0.1:3001:3001 — мы пробрасываем порт 3001 только на локальный интерфейс. Это важный шаг безопасности: панель управления не будет доступна извне напрямую по IP, только через защищенный прокси-сервер.

Запустим сервис:


docker compose up -d

Проверим статус контейнера:


docker ps

6. Настройка доступа через домен и SSL (HTTPS)

Схема: 6. Настройка доступа через домен и SSL (HTTPS)
Схема: 6. Настройка доступа через домен и SSL (HTTPS)

Доступ к мониторингу по IP-адресу через незашифрованный HTTP-протокол — плохая практика. Пароли могут быть перехвачены, а интерфейс выглядит непрофессионально. Мы настроим Caddy в качестве реверс-прокси. Caddy автоматически получает и обновляет SSL-сертификаты от Let's Encrypt.

Установим Caddy на сервер:


sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1G 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1G 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Отредактируем конфигурационный файл Caddy (Caddyfile):


sudo nano /etc/caddy/Caddyfile

Замените содержимое файла следующим (подставьте ваш домен):


status.yourdomain.com {
    reverse_proxy 127.0.0.1:3001
    
    log {
        output file /var/log/caddy/uptime_access.log
    }
}

Примените настройки:


sudo systemctl restart caddy

Теперь, при условии что вы направили A-запись вашего домена на IP сервера, ваша панель Uptime Kuma доступна по адресу https://status.yourdomain.com с валидным SSL-сертификатом.

7. Интеграция с Telegram: создание бота и настройка алертов

Схема: 7. Интеграция с Telegram: создание бота и настройка алертов
Схема: 7. Интеграция с Telegram: создание бота и настройка алертов

Мониторинг бесполезен, если вы не узнаете о проблеме мгновенно. Telegram — самый надежный и быстрый способ получения уведомлений.

Шаг 1: Создание бота через BotFather

  1. Найдите в Telegram бота @BotFather.
  2. Отправьте команду /newbot.
  3. Введите имя бота (например, "My Server Monitor") и уникальный username (например, kuma_alert_123_bot).
  4. Скопируйте полученный API Token.

Шаг 2: Получение Chat ID

Чтобы бот знал, куда писать, ему нужен ID чата (вашего личного или группы):

  1. Напишите боту любое сообщение.
  2. Перейдите по ссылке в браузере: https://api.telegram.org/bot<ВАШ_ТОКЕН>/getUpdates.
  3. Найдите в JSON-ответе объект "chat":{"id":123456789}. Это и есть ваш Chat ID.

Шаг 3: Настройка в Uptime Kuma

  1. Зайдите в панель Uptime Kuma → SettingsNotifications.
  2. Нажмите Setup Notification.
  3. Выберите тип: Telegram.
  4. Введите Token и Chat ID.
  5. Нажмите Test. Если в Telegram пришло сообщение "Test System", нажмите Save.

8. Продвинутая конфигурация мониторов: HTTP, TCP, DNS, Steam

Схема: 8. Продвинутая конфигурация мониторов: HTTP, TCP, DNS, Steam
Схема: 8. Продвинутая конфигурация мониторов: HTTP, TCP, DNS, Steam

Uptime Kuma позволяет настраивать проверки очень гибко. Рассмотрим основные типы мониторов, которые вам понадобятся.

HTTP(s) Мониторинг

Это основной тип для веб-сайтов. Вы можете проверять не только доступность (код 200), но и наличие конкретного слова на странице. Это полезно, если сайт отдает 200 OK, но на самом деле отображает ошибку базы данных.

  • URL: Адрес вашего сайта.
  • Heartbeat Interval: 60 секунд (оптимально).
  • Retries: 3 (чтобы избежать ложных алертов при кратковременных сетевых лагах).
  • Upside Down Mode: Алертить, если сервис СТАЛ доступен (полезно для отладки).

Мониторинг портов (TCP)

Используется для проверки сервисов, не имеющих веб-интерфейса: SSH (22), базы данных (5432, 3306), игровые серверы. Kuma просто пытается установить TCP-соединение с указанным портом.

Проверка ключевых слов

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

Push-мониторинг (Heartbeat)

Это "обратный" тип мониторинга. Uptime Kuma дает вам уникальную ссылку, по которой ваш скрипт (например, бэкап-скрипт на сервере) должен "стучаться" после успешного выполнения задачи. Если Kuma не получает сигнал в течение часа — значит, бэкап не сработал.

9. Бэкапы, обслуживание и обновление системы

Сервер мониторинга сам нуждается в уходе. Самый важный файл — это kuma.db в папке data.

Создание бэкапа

Самый простой способ — архивирование папки с данными:


tar -cvzf kuma_backup_$(date +%F).tar.gz ~/uptime-kuma/data

Обновление Uptime Kuma

Благодаря Docker, процесс обновления занимает меньше минуты:


cd ~/uptime-kuma
docker compose pull
docker compose up -d
docker image prune -f # Удаление старых образов для экономии места

Очистка истории

Со временем база SQLite может вырасти до гигабайтов из-за истории проверок. В настройках Uptime Kuma (Settings -> Primary) установите Retention Day на 30-60 дней. Это сохранит базу компактной без потери важной аналитики.

10. Troubleshooting + FAQ: решение типичных проблем

Почему Uptime Kuma показывает "Down", хотя сайт открывается?

Чаще всего это связано с блокировкой IP-адреса вашего сервера мониторинга на стороне целевого сайта (например, через Cloudflare или локальный Fail2ban). Попробуйте выполнить curl -I https://ваш-сайт.com прямо из консоли VPS мониторинга. Если получите 403 или 429 — добавьте IP мониторинга в белый список (Allowlist).

Какой VPS-конфиг минимально подойдёт?

Для запуска 10-20 мониторов достаточно самого дешевого тарифа с 1 ГБ оперативной памяти и 1 ядром CPU. Основное потребление ресурсов идет на отрисовку графиков в браузере, а не на сами проверки в фоне. Однако, не экономьте на диске — SQLite чувствительна к скорости записи.

Что выбрать — VPS или dedicated для этой задачи?

Для Uptime Kuma VPS является предпочтительным вариантом. Инструмент не требует прямой работы с "железом", а гибкость виртуального сервера позволяет легко масштабировать ресурсы или переносить инстанс между локациями. Dedicated сервер будет избыточен и неоправданно дорог для этой задачи.

Как мониторить Docker-контейнеры на этом же сервере?

В нашем docker-compose.yml мы пробросили /var/run/docker.sock. Теперь в интерфейсе Kuma вы можете добавить монитор типа "Docker Container" и просто выбрать имя контейнера из выпадающего списка. Kuma будет следить за его статусом (Running/Exited).

Забыл пароль от админки, что делать?

Вы можете сбросить пароль через консоль:


docker exec -it uptime-kuma npm run reset-password

11. Выводы и следующие шаги

Мы успешно развернули профессиональную систему мониторинга на собственном VPS. Теперь вы не зависите от ограничений бесплатных планов сторонних сервисов и полностью контролируете свои данные. Ваша система защищена SSL-шифрованием, работает в изолированном контейнере и мгновенно оповещает о проблемах через Telegram.

Что делать дальше?

  • Публичная статус-страница: Создайте в меню "Status Pages" красивую публичную страницу со списком ваших сервисов. Её можно привязать к отдельному домену (например, status.mycompany.com) и показывать клиентам.
  • Мониторинг SSL: Настройте уведомления за 7-14 дней до истечения сертификатов, чтобы избежать внезапного отключения HTTPS.
  • Экспорт в Prometheus: Если ваша инфраструктура вырастет, вы сможете интегрировать Kuma с Grafana для построения еще более сложных аналитических отчетов.

Помните, что мониторинг — это не разовая настройка, а процесс. Регулярно проверяйте актуальность алертов и не забывайте обновлять систему, чтобы защитить сервер от новых уязвимостей.

Поделиться этой записью:

установка и настройка uptime kuma на vps: мониторинг доступности и уведомления в telegram
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.