Налаштування Uptime Monitoring для сайту: повний посібник

Сайт упав уночі, а ви дізналися про це лише вранці від незадоволеного клієнта? Знайома ситуація, яку можна запобігти. Ми налаштовуємо моніторинг доступності сайту, щоб ви завжди були в курсі його стану. Наша команда реалізує проєкт під ключ — від розгортання системи до налаштування сповіщень і подальшої підтримки.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Налаштування Uptime Monitoring для сайту: повний посібник

Аналітика та метрикиПростийвід 4 годин до 2 днів
Часті запитання

Сайт впав о 3 годині ночі, а ви дізналися про це тільки вранці від розгніваного клієнта. Ми стикалися з цим десятки разів, тому налаштування uptime monitoring — перше, що робимо для будь-якого проєкту. Без базового HTTP-check вся інша інфраструктура моніторингу марна: ви можете не знати про збій до першого дзвінка. Нещодавно до нас звернувся клієнт: сайт інтернет-магазину падав щоночі через збій кешування, але моніторинг був відсутній. Ми розгорнули Uptime Kuma з перевіркою health endpoint і за день виявили першопричину. Завдання тут — покрити не тільки головну сторінку, але й критичні точки: API, admin-панель, health endpoint, CDN. Наша команда має 10+ років досвіду у веб-розробці та обслуговуванні високонавантажених проєктів, тому ми знаємо, як налаштувати моніторинг надійно і без зайвих витрат.

Покрокова інструкція: як розгорнути Uptime Kuma за 5 хвилин
  1. Переконайтеся, що на сервері встановлені Docker і Docker Compose.
  2. Створіть файл docker-compose.yml з конфігурацією з прикладу нижче.
  3. Запустіть docker-compose up -d.
  4. Відкрийте браузер за адресою http://ваш-сервер:3001 і створіть обліковий запис адміністратора.
  5. В інтерфейсі додайте перший монітор: вкажіть тип HTTP, введіть URL головної сторінки, інтервал перевірки 60 секунд.
  6. Налаштуйте сповіщення: перейдіть в 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

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060