Моніторинг

Моніторинг 28 сайтів із щоденним звітом у Telegram

📅2026
⏱3 дні
👥1 розробник
Site monitoring · 28 sites · grouped by region🌎 Americaloadboard.carrier.com200 · 0.4 striphase-ltd.com200 · 0.4 skp-door.com200 · 0.4 s🇺🇦 Ukrainealemi.pro200 · 0.4 scoffee-cream.ua200 · 0.4 sauto-respect.ua503 · 3/3 failedkub-granitu.com.ua200 · 0.4 s🏙 Kyivekopel.com.ua200 · 0.4 selite-advice.ua200 · 0.4 sultrasound-medtrade.ua200 · 0.4 sDaily run · 12:00 KyivControl panelsites CRUDObserver → GitHubsites.jsonHosting cron3 tries × 10 sTelegram1 report / dayTelegram · 12:00❗ 1 of 28 sites is down🇺🇦 UKRAINE• auto-respect.ua — 50304.11.2026 12:00 (Kyiv)
28
сайтів у щоденній перевірці
12:00
звіт щодня за Києвом
0
зовнішніх сервісів моніторингу

Задача

Після запуску десятків клієнтських сайтів ніхто не знав, що якийсь із них ліг, поки не подзвонить клієнт. Платні сервіси моніторингу давали по листу на кожен чих, а список сайтів постійно змінювався.

Що реалізовано

Моніторинг вбудували у власну панель проєктів: сайти додаються там, і спостерігач при кожній зміні переписує sites.json у GitHub-репозиторії. Щодня о 12:00 за Києвом cron хостингу викликає захищений ключем ендпоінт, який послідовно перевіряє кожен сайт трьома спробами з таймаутом 10 секунд і надсилає один звіт у Telegram: «усі N сайтів працюють» або секції Америка / Україна / Київ зі списком недоступних. GitHub Actions лишили як ручний резерв на випадок проблем із хостингом.

1

Один список

сайти ведуться в панелі, групуються за регіоном; sites.json у GitHub оновлюється автоматично.

2

Перевірка без паніки

3 спроби по 10 секунд послідовно, щоб короткий збій мережі не став хибною тривогою.

3

Один звіт на день

зелене повідомлення, коли все гаразд, або структурований список проблем по регіонах.

4

Cron хостингу як основа

ключ у запиті, ліміт часу 5 хвилин на весь прогін; жодних зовнішніх сервісів.

5

Резервний запуск

GitHub Actions з ручним стартом читає той самий sites.json.

6

Дедуплікація

скрипт нормалізує URL (www, слеш, протокол), щоб один сайт не рахувався двічі.

Результат

Про падіння сайту дізнаємось раніше за клієнта, а вхідних — одне повідомлення на день замість потоку листів. Додати сайт у моніторинг — одна форма в панелі.

Технології

LaravelGitHub APIHostinger cronGitHub ActionsTelegram Bot API

Маєте схожу задачу?

Обговорити проєкт

Наступний кейс

Google Sheets + Telegram

Сповіщення в Telegram про зміни в Google-таблиці →