Серверное оборудование для бизнеса — надёжные решения для любых задач Подробнее →
Статья

Uptime Kuma: мониторинг доступности для маленьких команд

Uptime Kuma: мониторинг доступности для маленьких команд

Зайти на сайт клиента в понедельник утром и обнаружить, что он не отвечал всё выходные — кошмар любого сисадмина. Платные сервисы вроде Pingdom решают эту проблему, но стоят денег и хранят ваши данные на чужих серверах. Uptime Kuma — self-hosted альтернатива с красивым интерфейсом, которая разворачивается за пять минут и покрывает 95% потребностей небольших команд.

Что умеет Uptime Kuma

  • Мониторинг HTTP/HTTPS с проверкой кода ответа и содержимого страницы
  • Мониторинг TCP-портов и ping
  • Проверка DNS-записей
  • Мониторинг Docker-контейнеров по статусу
  • Уведомления в Telegram, Slack, Email, Discord и ещё 90+ каналов
  • Публичные страницы статуса для клиентов
  • История инцидентов и SLA-статистика

Установка

Самый простой способ — Docker:

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

После запуска откройте http://your-server:3001 и создайте аккаунт администратора. Всё — система готова к работе.

Для продакшена рекомендуется поставить Nginx в качестве reverse proxy с SSL:

server {
    listen 443 ssl;
    server_name status.example.com;

    ssl_certificate /etc/letsencrypt/live/status.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/status.example.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
    }
}

Добавление мониторов

Через веб-интерфейс добавляем первый монитор:

  1. Нажимаем Add New Monitor
  2. Тип: HTTP(s)
  3. URL: https://example.com
  4. Интервал проверки: 60 секунд
  5. Количество повторов перед алертом: 3

Важный параметр — Heartbeat interval. Не ставьте менее 30 секунд для внешних сайтов — это создаёт ненужную нагрузку и может выглядеть как DDoS для некоторых WAF.

Настройка Telegram-уведомлений

# Создаём бота через @BotFather в Telegram
# Получаем TOKEN

# Узнаём chat_id:
curl https://api.telegram.org/bot<TOKEN>/getUpdates

# В интерфейсе Uptime Kuma:
# Settings → Notifications → Add Notification
# Type: Telegram
# Bot Token: <TOKEN>
# Chat ID: <your_chat_id>

Публичная страница статуса

Одна из самых полезных функций — автоматическая страница статуса для клиентов. Она показывает доступность сервисов в реальном времени и историю инцидентов.

Настройка:

  1. Status PageNew Status Page
  2. Добавляем нужные мониторы
  3. Настраиваем домен (например, status.example.com)
  4. Опционально — добавляем логотип и описание

Клиенты могут самостоятельно подписаться на уведомления через эту страницу — без доступа к основному интерфейсу.

Мониторинг Docker-контейнеров

Uptime Kuma может следить за статусом контейнеров напрямую через Docker socket:

docker run -d 
  --restart=always 
  -p 3001:3001 
  -v uptime-kuma:/app/data 
  -v /var/run/docker.sock:/var/run/docker.sock 
  --name uptime-kuma 
  louislam/uptime-kuma:1

После этого в типе монитора появится Docker Container — выбираете нужный контейнер из списка и получаете алерт, если он остановился.

Ограничения

Uptime Kuma — инструмент для проверки доступности, а не полноценная система мониторинга. Он не умеет собирать метрики CPU/RAM, не строит графики производительности и не заменяет Prometheus + Grafana. Используйте его как дополнение к основному мониторингу, а не замену.

Итог

Для небольших команд и проектов Uptime Kuma закрывает базовые потребности лучше, чем платные сервисы. Бесплатно, self-hosted, красивый UI и широкие возможности уведомлений — сложно найти причины не попробовать.

2 Ответа

  1. Используем Uptime Kuma уже больше года, очень доволен — особенно радует что публичная страница статуса настраивается в два клика. Клиенты перестали звонить с вопросом «а у вас всё работает?».

  1. Стоит добавить что для мониторинга внутренних сервисов в приватной сети придётся поднимать Uptime Kuma внутри этой же сети или настраивать VPN, снаружи до них не дотянуться.