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;
}
}
Добавление мониторов
Через веб-интерфейс добавляем первый монитор:
- Нажимаем Add New Monitor
- Тип: HTTP(s)
- URL:
https://example.com - Интервал проверки: 60 секунд
- Количество повторов перед алертом: 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>
Публичная страница статуса
Одна из самых полезных функций — автоматическая страница статуса для клиентов. Она показывает доступность сервисов в реальном времени и историю инцидентов.
Настройка:
- Status Page → New Status Page
- Добавляем нужные мониторы
- Настраиваем домен (например,
status.example.com) - Опционально — добавляем логотип и описание
Клиенты могут самостоятельно подписаться на уведомления через эту страницу — без доступа к основному интерфейсу.
Мониторинг 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 и широкие возможности уведомлений — сложно найти причины не попробовать.
Используем Uptime Kuma уже больше года, очень доволен — особенно радует что публичная страница статуса настраивается в два клика. Клиенты перестали звонить с вопросом «а у вас всё работает?».