Сайт упал в 3 часа ночи, а вы узнали об этом только утром от разгневанного клиента. Мы сталкивались с этим десятки раз, поэтому настройка uptime monitoring — первое, что делаем для любого проекта. Без базового HTTP-check вся остальная инфраструктура мониторинга бесполезна: вы можете не знать о сбое до первого звонка. Недавно к нам обратился клиент: сайт интернет-магазина падал каждую ночь из-за сбоя кэширования, но мониторинг отсутствовал. Мы развернули Uptime Kuma с проверкой health endpoint и за день выявили первопричину. Задача здесь — покрыть не только главную страницу, но и критичные точки: API, admin-панель, health endpoint, CDN. Наша команда имеет 10+ лет опыта в веб-разработке и обслуживании высоконагруженных проектов, поэтому мы знаем, как настроить мониторинг надёжно и без лишних затрат.
Пошаговая инструкция: как развернуть Uptime Kuma за 5 минут
- Убедитесь, что на сервере установлены Docker и Docker Compose.
- Создайте файл
docker-compose.ymlс конфигурацией из примера ниже. - Запустите
docker-compose up -d. - Откройте браузер по адресу
http://your-server:3001и создайте учётную запись администратора. - В интерфейсе добавьте первый монитор: укажите тип
HTTP, введите URL главной страницы, интервал проверки 60 секунд. - Настройте уведомления: перейдите в Settings → Notification, выберите Telegram или другой канал, введите токен.
Как настроить мониторинг с Uptime Kuma?
Uptime Kuma — бесплатный self-hosted инструмент с простым UI и поддержкой множества типов проверок. Разворачивается за минуту через Docker:
# docker-compose.yml services: uptime-kuma: image: louislam/uptime-kuma:1 volumes: - uptime-kuma:/app/data ports: - "3001:3001" restart: unless-stopped volumes: uptime-kuma: Поддерживаемые типы мониторов: HTTP(S), TCP port, Ping, DNS, SSL certificate, Keyword (проверка наличия текста), JSON Query, Push (heartbeat), Steam Game Server, Docker Container. Для каждого можно задать интервал, количество повторов и интеграции с нотификациями.
Настройки через UI или через REST API:
# Создать монитор через API (Bearer token в Settings → API Keys) curl -X POST http://uptime-kuma:3001/api/monitor \ -H "Authorization: Bearer your_api_key" \ -H "Content-Type: application/json" \ -d '{ "name": "Main Site", "type": "http", "url": "https://example.com/", "interval": 60, "retryInterval": 30, "maxretries": 2, "keyword": "Добро пожаловать", "httpBodyEncoding": "json" }' Нотификации: Telegram, Slack, Email, PagerDuty, Webhook и ещё ~90 провайдеров.
Какие URL мониторить в production?
| URL | Тип | Интервал | Алерт при |
|---|---|---|---|
https://example.com/ |
HTTP + keyword | 60s | downtime > 1 мин |
https://example.com/health |
HTTP + JSON | 60s | status != 200 |
https://api.example.com/ping |
HTTP | 30s | downtime > 30s |
| SSL cert | Certificate | 1d | expires < 14d |
https://example.com/ |
DNS | 5m | resolve fails |
Что такое health endpoint и как его реализовать?
Health endpoint — это URL, который возвращает объективный статус системы. Мы реализуем его на Laravel так:
// routes/web.php Route::get('/health', function () { $checks = [ 'database' => fn() => DB::connection()->getPdo() !== null, 'cache' => fn() => Cache::store('redis')->ping(), 'queue' => fn() => \Illuminate\Support\Facades\Queue::size() < 10000, ]; $results = []; $healthy = true; foreach ($checks as $name => $check) { try { $results[$name] = $check() ? 'ok' : 'fail'; } catch (\Throwable $e) { $results[$name] = 'error: ' . $e->getMessage(); $healthy = false; } } return response()->json([ 'status' => $healthy ? 'ok' : 'degraded', 'checks' => $results, 'timestamp' => now()->toISOString(), ], $healthy ? 200 : 503); })->middleware('throttle:60,1'); Этот эндпоинт проверяет базу данных, кэш Redis и размер очереди. При отклонениях возвращает HTTP 503 — Uptime Kuma зафиксирует сбой.
Сравнение self-hosted и SaaS
| Критерий | Self-hosted (Uptime Kuma) | SaaS (Better Uptime / UptimeRobot) |
|---|---|---|
| Цена | Бесплатно (только ресурсы сервера) | Бесплатный план (50 мониторов, 5 мин) |
| Интервал проверок | От 1 секунды | Минимум 5 минут |
| Контроль данных | Полный | Данные на стороне провайдера |
| География проверок | Одна точка (можно несколько серверов) | 10+ глобальных локаций |
Uptime Kuma лучше для частых проверок и полного контроля, но UptimeRobot удобнее для быстрого старта. Мы рекомендуем комбинировать: Uptime Kuma для критических проверок каждую минуту и UptimeRobot как внешний наблюдатель.
Почему SSL мониторинг критичен?
Истечение SSL-сертификата — тихая катастрофа: браузеры не предупреждают, сайт становится недоступным. Uptime Kuma имеет встроенный монитор SSL Certificate с алертом за 14 дней до истечения. Альтернативно — cron-скрипт:
#!/bin/bash DOMAIN=$1 DAYS_THRESHOLD=14 EXPIRY=$(echo | openssl s_client -connect ${DOMAIN}:443 -servername ${DOMAIN} 2>/dev/null \ | openssl x509 -noout -enddate 2>/dev/null \ | cut -d= -f2) EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s) NOW_EPOCH=$(date +%s) DAYS_LEFT=$(( (EXPIRY_EPOCH - NOW_EPOCH) / 86400 )) if [ "$DAYS_LEFT" -lt "$DAYS_THRESHOLD" ]; then curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMessage" \ -d "chat_id=$CHAT_ID" \ -d "text=SSL cert for $DOMAIN expires in $DAYS_LEFT days!" fi Настройте алерты за 14 дней — этого достаточно для продления через Let's Encrypt или покупки нового.
Как организовать статус-страницу?
Публичная статус-страница избавляет от волны вопросов «сайт не работает?». Uptime Kuma генерирует её из коробки — разместите на отдельном домене status.example.com. Можно кастомизировать логотип и цвета.
Что входит в работу
- Развёртывание Uptime Kuma (или SaaS-аналога) с учётом вашей инфраструктуры
- Настройка базовых мониторов (главная, API, health, DNS, SSL)
- Подключение каналов уведомлений (Telegram, Email, Slack)
- Документация по инцидентам и процедуре реагирования
- Одно обучение для команды
Сроки и стоимость
Развёртывание базового мониторинга занимает от 2 до 4 часов в зависимости от сложности. Полный комплект с интеграциями и статус-страницей — 1-2 дня. Стоимость рассчитывается индивидуально после анализа проекта.
Наша команда с 10+ летним опытом и более 50 успешных внедрений гарантирует надёжную систему мониторинга. Мы не используем шаблонные решения — каждый проект получает индивидуальную конфигурацию. Свяжитесь с нами для консультации. Закажите настройку мониторинга и спите спокойно.
Источники: Uptime Kuma, Wikipedia — Uptime







