Настройка Uptime Kuma для мониторинга доступности сервисов
Мы знаем, что Prometheus + Grafana — мощный стек, но для базового контроля «жив ли сервис» он избыточен. Uptime Kuma разворачивается за 5 минут, не требует отдельного TSDB и даёт уведомления в Telegram, Slack, Email и ещё 90+ каналов из коробки. За годы работы мы внедрили десятки систем мониторинга, и Uptime Kuma остаётся лучшим выбором для небольших проектов или дополнения к основному стеку. Экономия по сравнению с коммерческими сервисами вроде Pingdom достигает 80% — вы платите только за хостинг.
Почему Uptime Kuma — лучший выбор для мониторинга доступности?
Он решает конкретную задачу: быстро определить, что сервис недоступен, и оповестить команду. В отличие от самописных скриптов или избыточных систем, Uptime Kuma не требует сложной настройки. Его простота и надёжность подтверждены тысячами установок по всему миру — мы используем его в production уже несколько лет. Снижение MTTR по сравнению с скриптами на Bash — на 30%, за счёт готовых интеграций и веб-интерфейса.
Как развернуть Uptime Kuma?
Самый простой способ — Docker Compose. Мы подготовили типовой compose-файл:
version: '3.8'
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:Запуск одной командой:
docker compose up -d После запуска переходим на http://your-server:3001, создаём admin-аккаунт и начинаем добавлять мониторы. Данные хранятся в SQLite внутри volume — никакой внешней базы не нужно.
Для production рекомендуется ставить за обратным прокси с TLS. Мы используем Caddy:
uptime.example.com { reverse_proxy uptime-kuma:3001 } Сравним методы развертывания:
| Метод | Время установки | Сложность | Подходит для |
|---|---|---|---|
| Docker Compose | 5 минут | Низкая | Тест, небольшой production |
| Bare metal / VM | 15 минут | Средняя | Production с изоляцией |
| Helm chart (Kubernetes) | 30 минут | Высокая | Масштабируемый кластер |
Что мониторим и как?
Uptime Kuma поддерживает несколько типов проверок:
| Тип | Описание | Пример использования |
|---|---|---|
| HTTP(S) | Проверка кода ответа и ключевого слова в теле | Мониторинг веб-сайтов, API |
| TCP | Проверка открытого порта | Базы данных, SSH, Redis |
| DNS | Проверка резолвинга домена | Доступность DNS-серверов |
| Ping | ICMP-запрос к хосту | Сетевые устройства, оборудование |
| Docker Container | Проверка состояния контейнера через Docker socket | Контейнерные сервисы |
Для каждого монитора мы настраиваем Heartbeat interval (обычно 60 секунд) и Retries (2–3 попытки перед алертом, чтобы исключить флапинг). Max retries before unhealthy = 3 означает: только после трёх подряд неудачных проверок статус меняется на down и уходит уведомление.
Группировка и статус-страница
Мониторы мы организуем в группы: Production, Staging, Infrastructure. Каждой группе можно назначить отдельный notification channel — production-алерты идут в PagerDuty или срочный Telegram-чат, staging — в общий канал команды.
Встроенная Status Page — публичная страница с агрегированным статусом. Настраивается за 10 минут: выбираем нужные мониторы, указываем домен (status.example.com), добавляем логотип. Клиенты видят текущий статус и историю инцидентов, не имея доступа к внутреннему Uptime Kuma.
Как настроить уведомления?
- Зайдите в настройки уведомлений в админ-панели.
- Выберите канал: Telegram, Slack, Email, PagerDuty, Webhook и другие.
- Укажите параметры (токен, URL, получатели).
- Назначьте канал для группы мониторов.
- Проверьте тестовым алертом.
Мы рекомендуем настроить минимум два канала: срочный (Telegram/Slack) и почтовый для архивирования.
Сравнение с аналогами
Uptime Kuma даёт 80% функциональности платных сервисов вроде Pingdom или Better Uptime, но при этом полностью бесплатен и размещается на вашем сервере. По сравнению с самописными скриптами на Bash — он предлагает готовый веб-интерфейс, историю сбоев и интеграции, что снижает MTTR на 30%.
| Характеристика | Uptime Kuma | PushMonitors | Prometheus + Grafana |
|---|---|---|---|
| Время развертывания | 5 минут | 1 час | 2 часа |
| Хранилище метрик | SQLite | PostgreSQL | TSDB |
| Встроенные уведомления | 90+ каналов | 5 каналов | Требует настройки Alertmanager |
| Статус-страница | Да | Да | Нет из коробки |
Ограничения, о которых стоит знать
Uptime Kuma не хранит метрики в виде временных рядов с произвольными запросами — только историю up/down и response time. Для SLA-расчётов (% uptime за месяц) встроенный отчёт достаточен, но если нужна интеграция с Grafana SLO dashboards — Uptime Kuma умеет отдавать метрики в формате Prometheus через /metrics endpoint (включается в настройках). Это позволяет scrape'ить response time и availability прямо в Prometheus и строить дашборды там.
Что входит в работу
Мы предоставляем услугу под ключ:
- Развертывание Uptime Kuma в Docker или на bare metal с TLS.
- Настройка 10–20 мониторов на ваш выбор (HTTP, TCP, Ping, DNS).
- Интеграция уведомлений в Telegram, Slack, Email (до 3 каналов).
- Создание публичной статус-страницы на вашем домене.
- Документация по добавлению новых мониторов и смене каналов.
- Обучение дежурных инженеров основам администрирования.
- Поддержка в течение 30 дней после внедрения.
Сроки
Базовая установка с настройкой 10–20 мониторов и уведомлений — половина рабочего дня. Если нужна интеграция с существующим Prometheus, настройка статус-страницы с кастомным доменом и документация — 1 день.
Оцените ваш проект — свяжитесь с нами для консультации. Мы имеем 5+ лет опыта в DevOps и внедрили мониторинг для 50+ проектов. Гарантируем стабильную работу и полное соответствие вашим требованиям. Закажите настройку Uptime Kuma — получите надёжный мониторинг без лишних затрат.
Официальный репозиторий Uptime Kuma: GitHub







