Мониторинг доступности через Uptime Kuma: пинг статус-страниц и алерты
Uptime Kuma — самохостинговый мониторинг доступности с красивой статус-страницей, мониторами HTTP/TCP/Ping/DNS и нотификациями в Telegram, Email, Discord и десятки других. Это отличная замена дорогим UptimeRobot для домашних и небольших проектов. Разворачивается одной командой в Docker.
Почему Uptime Kuma
- Бесплатный и open-source
- Своя статус-страница (публичная, с кнопкой «Subscribe»)
- Мониторы: HTTP(S), TCP, Ping, DNS, MySQL, PostgreSQL, Redis, Kubernetes
- Алерты: Telegram, Email, Discord, Slack, Webhooks, 60+ каналов
- История аптайма, ленточка событий
- Нет внешних зависимостей — всё в Docker-контейнере
Шаг 1. Установка в Docker (Ubuntu)
Если Docker ещё нет — из статьи «Docker Compose для…»:
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker
docker-compose.yml
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- uptime-kuma-data:/app/data
volumes:
uptime-kuma-data:
Запуск:
sudo docker compose up -d
docker compose logs -f uptime-kuma
Проверка
http://<server>:3001
Шаг 2. Первый монитор
- Зарегистрируйте администратора (создаётся при первом входе).
- Add New Monitor:
- Monitor Type: HTTP(s)
- Friendly Name: например
imaxis.ru - URL:
https://imaxis.ru - Interval:
60секунд - Heartbeat Retry:
1 - Advanced: Accept Status Codes
200-299 - Save.
Через пару минут история аптайма заполнится.
Проверка страницы
Вкладка статуса показывает: UP / DOWN, latency, uptime %.
Шаг 3. Статус-страница
Создайте публичную страницу:
- Status Pages → New Status Page.
- Название, подзаголовок, домен (можно
status.example.ru). - Добавьте мониторы.
- Сохраните и скопируйте ссылку.
Пример внешнего вида статус-страницы: список сервисов с зелёными/красными статусами и историей.
Шаг 4. Алерты в Telegram
- Settings → Notifications → Setup Notifications.
- Type: Telegram.
- Кнопки:
- Bot Token: от
@BotFather - Chat ID: у
@userinfobotнапишите/start— он покажет ID - (необязательно) Sending Interval, когда счетчик аварий кратен
- Apply.
- На мониторе в Notification выберите этот канал.
Тест алерта можно сделать через Notification → Test.
Шаг 5. Монитор доступности сайта за HTTPS + проверка целостности
Для главной страницы хорошо добавить дополнительную проверку контента (keyword):
В мониторе http(s) → Advanced:
— Expected Keyword: Grafana или случайную строку из тела страницы.
— Uptime Kuma считает DOWN, если ключевой фразы нет.
Шаг 6. Экспорт / бэкапы
Данные в volume uptime-kuma-data. Бэкап — просто копируем volume:
docker run --rm -v uptime-kuma-data:/data -v "$(pwd)":/backup
alpine tar czf /backup/uptime-kuma-backup.tar.gz /data
Восстановление:
docker run --rm -v uptime-kuma-data:/data -v "$(pwd)":/backup
alpine tar xzf /backup/uptime-kuma-backup.tar.gz -C /
Шаг 7. Дополнение к стеку мониторинга
Связка с предыдущей статьёй (Prometheus + Grafana):
| Инструмент | Роль |
|---|---|
| Prometheus + Grafana | Метрики, графики, история |
| Uptime Kuma | Доступность, аптайм, алерты «сайт лёг» |
Uptime Kuma покрывает «снаружи → сайт отвечает», Grafana — «внутри всё живо».
Проверка
- Откройте статус-страницу — сервисы UP.
- Отключаем контейнер сайта на 30 сек — через минуту Telegram пришлёт «DOWN».
- Включаем — «UP».
- История аптайма заполнена.
Тонкости и подводные камни
- Порт 3001 — не забывайте firewall:
bash
sudo ufw allow 3001/tcp - HTTPS для статус-страницы — лучше доступ через обратный прокси (nginx + Let’s Encrypt). Прямой 3001 оставляйте в локальной сети.
- Interval и нагрузка — 60 сек это норм; для десятков мониторов на слабой VDS используйте 300 сек.
- Docker restart policy —
unless-stopped, иначе после перезагрузки сервера мониторинг не поднимется. - Внутренние адреса — монитор с адресом
http://192.168.x.xпроверяется с сервера, где стоит контейнер — сеть должна быть reachable.
Шпаргалка
sudo apt install -y docker.io docker-compose-v2
docker compose up -d # uptime-kuma:1, порт 3001
# http://server:3001 -> admin
# Add Monitor -> HTTP(s) https://imaxis.ru
# Status Pages -> создать страницу
# Notifications -> Telegram (bot token + chat id)
Проверено на: Ubuntu 22.04/24.04 + Uptime Kuma 1.x.
Дата: Сентябрь 2026.