Сайт может сломаться и продолжать отвечать 200 OK. Бэкап может перестать создаваться без заметной ошибки. Uptime Kuma обнаруживает оба случая: проверяет сайты, API, порты и фоновые задачи, а при проблеме отправляет уведомление.
Разберем, где размещать мониторинг, какой VPS ему нужен и как установить Uptime Kuma 2, подключить HTTPS, Telegram и страницу статуса.
Uptime Kuma за семь шагов
- Выделить небольшой VPS отдельно от проверяемых проектов.
- Направить на него поддомен, например
monitor.example.com. - Установить Docker и запустить Uptime Kuma 2.
- Закрыть внутренний порт
3001и подключить HTTPS. - Создать HTTP-, DNS-, TCP- или push-мониторы.
- Настроить Telegram и при необходимости status page.
- Включить обновления и внешний бэкап каталога данных.
Что такое Uptime Kuma
Uptime Kuma — бесплатный self-hosted-инструмент с открытым исходным кодом. Панель и история проверок хранятся на вашем сервере.
Он проверяет HTTP(S), TCP-порты, ping, DNS, WebSocket, текст и JSON в ответе, push-сигналы и Docker-контейнеры. Минимальный интервал — 20 секунд. Есть десятки каналов уведомлений, 2FA, графики задержки, контроль TLS-сертификатов и несколько страниц статуса.
Как заметить поломку за ответом 200 OK
Обычная HTTP-проверка видит только код ответа. Но веб-сервер может показать пустую страницу или заглушку приложения и вернуть успешный статус.
Для более точного контроля используйте:
- Keyword — ищет ожидаемую фразу, например название сайта или текст «Личный кабинет»;
- JSON Query — проверяет значение в ответе API, например
status: healthy.
Так мониторинг подтверждает не только доступность порта, но и минимальный признак исправной работы приложения.
Push-монитор для бэкапов и cron
Push-монитор не опрашивает сервис, а ждет от него регулярный сигнал. Скрипт резервного копирования или cron-задача обращается к уникальному URL после успешного завершения. Если сигнал не приходит вовремя, Uptime Kuma сообщает о сбое.
Это позволяет заметить «тихую» проблему: сайт работает, но ежедневный бэкап уже несколько дней не создается.
Что Uptime Kuma не заменяет
Uptime Kuma следит прежде всего за доступностью и временем ответа. Для CPU, RAM, диска, логов и контейнерных метрик его дополняют Prometheus, Netdata, Zabbix или другой системой: Kuma замечает проблему снаружи, а метрики помогают найти причину.
Почему мониторинг лучше вынести на отдельный VPS
Если установить Uptime Kuma рядом с сайтом, при отказе VPS, сети или дата-центра исчезнут и проект, и мониторинг. Уведомление может не уйти.
Размещайте панель на отдельном VPS, а для важных проектов — в другой локации или у другого провайдера. Саму Kuma полезно проверять внешним сервисом: кто-то должен следить и за мониторингом.
Требования Uptime Kuma к серверу
Проект не задает жесткий официальный минимум по CPU и RAM. Практичная стартовая конфигурация для небольшой установки:
- 1 vCPU;
- 1 ГБ RAM;
- 10 ГБ SSD;
- Ubuntu 24.04 LTS;
- IPv4;
- домен или поддомен для HTTPS.
Такой конфигурации обычно хватает для нескольких десятков простых проверок. Для сотен мониторов, длинной истории или браузерных проверок лучше выбрать 2 ГБ RAM и больше.
Как установить Uptime Kuma на VPS
В примере используется Ubuntu 24.04 и поддомен monitor.example.com.
1. Настройте DNS и firewall
Создайте DNS-запись A, направленную на IPv4-адрес VPS. Подключитесь по SSH и откройте необходимые порты:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableНе закрывайте текущую SSH-сессию, пока не проверите новое подключение.
2. Установите Docker и Docker Compose
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Запустите Uptime Kuma 2
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
cat > compose.yaml <<'EOF'
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
docker compose psИспользуйте тег :2: latest оставлен на устаревшей ветке v1. Каталог /app/data должен находиться на локальном диске или обычном Docker volume. NFS и хранилища без корректных файловых блокировок могут повредить базу.
Порт 3001 доступен только на 127.0.0.1. Наружу панель опубликует обратный прокси с HTTPS.
4. Подключите HTTPS через Caddy
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
monitor.example.com {
reverse_proxy 127.0.0.1:3001
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyЕсли DNS указывает на VPS, Caddy автоматически запросит TLS-сертификат и проксирует WebSocket. Панель размещайте в корне домена или поддомена: адрес вида example.com/kuma не поддерживается.
5. Создайте администратора
Откройте https://monitor.example.com, создайте учетную запись с длинным уникальным паролем и включите двухфакторную аутентификацию.
Как добавить первый монитор
Нажмите Add New Monitor и выберите HTTP(s):
- Укажите название и полный URL.
- Задайте интервал, например 60 секунд.
- Добавьте две повторные попытки против случайных сетевых сбоев.
- Выберите канал уведомлений.
- Сохраните монитор и проверьте появление успешных запросов.
Для главного сайта полезны HTTP- и Keyword-проверки, для API — endpoint здоровья и JSON Query. Не открывайте базы данных и административные порты в интернет только ради мониторинга: используйте доверенную сеть или VPN.
Пример push-монитора для бэкапа
После создания монитора типа Push добавьте его уникальный URL в конец скрипта:
backup-command && \
curl -fsS "https://monitor.example.com/api/push/SECRET_TOKEN?status=up&msg=backup-ok"Запрос выполнится только после успешного бэкапа. Push-токен храните как пароль: зная URL, посторонний сможет отправить ложный сигнал.
Как подключить Telegram
Создайте бота через @BotFather, отправьте ему сообщение, затем откройте Settings → Notifications → Telegram. Укажите Bot Token и Chat ID, нажмите Test и привяжите канал к мониторам. Для критичных сервисов добавьте второй канал, например email.
Как создать страницу статуса
В Status Pages можно сгруппировать мониторы, показать статус и историю доступности, назначить домен и сообщать о плановых работах через Maintenance. Не публикуйте внутренние IP и технические URL: клиентам достаточно компонентов «Сайт», «API», «Личный кабинет» и «Платежи».
Обновление и резервное копирование
Перед крупным обновлением остановите контейнер и сохраните каталог данных:
cd /opt/uptime-kuma
docker compose down
tar -czf /root/uptime-kuma-$(date +%F).tar.gz \
data compose.yaml
docker compose up -dПеренесите архив на другое устройство или в внешнее хранилище. Копия на том же VPS не защищает от удаления сервера или отказа диска.
Для обычного обновления:
cd /opt/uptime-kuma
docker compose pull
docker compose up -d --force-recreateПосле запуска проверьте docker compose ps, панель и тестовое уведомление.
Какой VPS выбрать для Uptime Kuma
Для небольшой установки достаточно Linux VPS с 1 vCPU и 1 ГБ RAM. Важнее не мощность, а независимость: монитор должен работать, когда основной проект недоступен.
Uptime Kuma можно разместить на VPS от tropic.host, если проверяемые сервисы находятся на другой площадке или независимом узле. Ubuntu, Docker и постоянный IP позволяют быстро запустить панель, а ресурсы — увеличить при росте числа проверок.
Если продакшен уже в той же инфраструктуре, выберите другой узел или добавьте внешний резервный монитор. Разделение точек отказа полезнее лишнего ядра.
Типичные ошибки
| Ошибка | Почему это проблема | Как лучше |
|---|---|---|
| Мониторинг стоит рядом с проектом | При общем сбое исчезают и сервис, и уведомления | Использовать отдельный VPS или локацию |
Порт 3001 открыт наружу | Панель доступна без обратного прокси и HTTPS | Привязать порт к 127.0.0.1 |
Проверяется только код 200 | Ошибка приложения может выглядеть как успех | Добавить Keyword или JSON Query |
Используется тег latest | Он относится к устаревшей ветке v1 | Использовать louislam/uptime-kuma:2 |
| Бэкап лежит на том же VPS | Он пропадет вместе с сервером | Копировать каталог data наружу |
Краткий вывод
Uptime Kuma превращает небольшой VPS в собственный центр мониторинга сайтов, API, DNS, портов, сертификатов и фоновых задач. Keyword помогает увидеть сломанную страницу, JSON Query — неправильный ответ API, а Push — остановившийся бэкап или cron.
Для надежной схемы разместите мониторинг отдельно от продакшена, закройте порт 3001, подключите HTTPS, 2FA и два канала уведомлений. Затем настройте внешний бэкап каталога данных и независимую проверку самого Uptime Kuma.
FAQ
Uptime Kuma бесплатный?
Да. Проект распространяется с открытым исходным кодом по лицензии MIT. Оплачиваются только инфраструктура, домен и внешние бэкапы.
Сколько RAM нужно Uptime Kuma?
Для небольшой установки разумно начать с 1 ГБ RAM. Для сотен проверок, длинной истории или Browser Engine лучше выделить 2 ГБ и больше.
Можно ли установить Uptime Kuma без Docker?
Да, через Node.js и PM2. Однако Docker Compose обычно проще обновлять, переносить и восстанавливать на VPS.
Можно ли использовать Uptime Kuma без домена?
Технически да — по IP или через SSH-туннель. Для постоянного доступа из интернета безопаснее использовать поддомен и HTTPS.
Показывает ли Uptime Kuma загрузку CPU, RAM и диска?
Не как полноценная система серверных метрик. Для ресурсов сервера его лучше дополнить Prometheus, Netdata, Zabbix или другим специализированным инструментом.
