2026-09-16
Uptime Kuma

Мониторинг доступности через 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. Первый монитор

  1. Зарегистрируйте администратора (создаётся при первом входе).
  2. Add New Monitor:
  3. Monitor Type: HTTP(s)
  4. Friendly Name: например imaxis.ru
  5. URL: https://imaxis.ru
  6. Interval: 60 секунд
  7. Heartbeat Retry: 1
  8. Advanced: Accept Status Codes 200-299
  9. Save.

Через пару минут история аптайма заполнится.

Проверка страницы

Вкладка статуса показывает: UP / DOWN, latency, uptime %.


Шаг 3. Статус-страница

Создайте публичную страницу:

  1. Status Pages → New Status Page.
  2. Название, подзаголовок, домен (можно status.example.ru).
  3. Добавьте мониторы.
  4. Сохраните и скопируйте ссылку.

Пример внешнего вида статус-страницы: список сервисов с зелёными/красными статусами и историей.


Шаг 4. Алерты в Telegram

  1. Settings → Notifications → Setup Notifications.
  2. Type: Telegram.
  3. Кнопки:
  4. Bot Token: от @BotFather
  5. Chat ID: у @userinfobot напишите /start — он покажет ID
  6. (необязательно) Sending Interval, когда счетчик аварий кратен
  7. Apply.
  8. На мониторе в 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 — «внутри всё живо».


Проверка

  1. Откройте статус-страницу — сервисы UP.
  2. Отключаем контейнер сайта на 30 сек — через минуту Telegram пришлёт «DOWN».
  3. Включаем — «UP».
  4. История аптайма заполнена.

Тонкости и подводные камни

  • Порт 3001 — не забывайте firewall:
    bash
    sudo ufw allow 3001/tcp
  • HTTPS для статус-страницы — лучше доступ через обратный прокси (nginx + Let’s Encrypt). Прямой 3001 оставляйте в локальной сети.
  • Interval и нагрузка — 60 сек это норм; для десятков мониторов на слабой VDS используйте 300 сек.
  • Docker restart policyunless-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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *