Сайт впав о 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://ваш-сервер: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://localhost:3001/api/monitor \ -H "Authorization: Bearer your_api_key" \ -H "Content-Type: application/json" \ -d '{ "name": "Main Site", "type": "http", "url": "https://your-site.com", "interval": 60, "retryInterval": 30, "maxretries": 2, "keyword": "Ласкаво просимо", "httpBodyEncoding": "json" }' Нотифікації: Telegram, Slack, Email, PagerDuty, Webhook і ще ~90 провайдерів.
Які URL моніторити в production?
| URL | Тип | Інтервал | Алерт при |
|---|---|---|---|
| Головна сторінка | HTTP + keyword | 60s | downtime > 1 хв |
https://ваш-сайт/health |
HTTP + JSON | 60s | status != 200 |
https://api.example.com/ping |
HTTP | 30s | downtime > 30s |
| SSL сертифікат | Certificate | 1d | expires < 14d |
https://ваш-сайт |
DNS | 5m | resolve fails |
Примітка: у таблиці наведено приклади; замініть https://ваш-сайт на реальний домен.
Що таке 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+ річним досвідом і понад 40 успішних впроваджень гарантує надійну систему моніторингу. Ми не використовуємо шаблонні рішення — кожен проєкт отримує індивідуальну конфігурацію. Зв'яжіться з нами для консультації. Замовте налаштування моніторингу і спіть спокійно.
Джерела: Uptime Kuma, Wikipedia — Uptime







