Додатково Хостинг інструменти

Моніторинг хостингу своїми руками: як зібрати систему спостереження, що попередить вас раніше за клієнтів

Монітор ПК з інфографікою моніторингу хостингу та даними uptime на робочому столі

Уявіть ситуацію: п'ятниця, 23:47, ви вже в ліжку з серіалом. Телефон вибухає повідомленнями - клієнти пишуть, що сайт не працює. Ви лізете в панель хостингу, бачите, що сервер ще живий, але CPU горить на 98%, а RAM з'їдений якимось процесом-зомбі. Знайомо? Якби у вас працювала нормальна система моніторингу, ви б дізналися про проблему за 40 хвилин до першої скарги. І, можливо, навіть не прокинулися б - бо автоматичний скрипт перезапустив би сервіс сам. Сьогодні розберемо, як зібрати таку систему з нуля, навіть якщо ваш бюджет - нуль гривень.

Чому вбудований моніторинг хостера - це окуляри з чужим рецептом

Майже кожен хостинг-провайдер має якусь панель зі статистикою. cPanel покаже завантаження CPU. Plesk намалює графік трафіку. Але ось проблема: ці дані - як середня температура по лікарні. Вони показують загальну картину з запізненням у 5-15 хвилин і без контексту.

Що конкретно не так із вбудованим моніторингом більшості хостерів:

  • Оновлення графіків раз на 5-15 хвилин - за цей час сайт встигне втратити сотні відвідувачів
  • Немає алертів - ви дізнаєтесь про проблему, коли самі зайдете подивитися
  • Моніториться тільки «залізо», а не ваш додаток - сервер може бути живий, а WordPress вже лежить
  • Історія зберігається максимум 30 днів - шукати тренди та закономірності неможливо
  • Нуль кастомізації - ви не можете додати перевірку конкретного URL чи API-ендпоінта

Вбудований моніторинг хостера створений для хостера, а не для вас. Його мета - показати, що з їхнього боку все нормально. Ваша мета інша - знати, що відбувається з вашим проєктом кожну секунду.

Адміністратор налаштовує моніторинг VPS безкоштовно працюючи вночі з дому
Адміністратор налаштовує моніторинг VPS безкоштовно працюючи вночі з дому

П'ять інструментів, які перетворять вас на всевидяче око

Гарна новина: збудувати повноцінну систему моніторингу у 2025 році можна безкоштовно або майже безкоштовно. Погана новина: доведеться трохи попрацювати руками. Але один раз - і потім воно працює роками.

Інструмент Що моніторить Вартість Складність налаштування Найкраще для
UptimeRobot Доступність сайту, час відгуку, SSL Безкоштовно (50 моніторів) Легко (5 хвилин) Будь-якого проєкту
Netdata CPU, RAM, диск, мережа, процеси Безкоштовно (open-source) Середньо (20 хвилин) VPS та виділених серверів
Grafana + Prometheus Все, що можна виміряти цифрою Безкоштовно (self-hosted) Складно (2-4 години) Серйозних продакшн-проєктів
Hetrixtools Аптайм, блеклісти, ресурси сервера Безкоштовно (15 моніторів) Легко (10 хвилин) Кількох сайтів одночасно
Healthchecks.io Cron-завдання, бекапи, скрипти Безкоштовно (20 перевірок) Легко (5 хвилин) Контролю фонових задач

Моя рекомендація для старту: UptimeRobot + Netdata. Перший перевіряє сайт ззовні (як його бачать користувачі), другий показує, що відбувається всередині сервера. Разом вони закривають 80% потреб типового проєкту.

Покроковий рецепт: від голого сервера до повного контролю

Давайте конкретно. Без абстракцій. Ось що я раджу зробити в перший вихідний, коли знайдеться година вільного часу.

  1. Реєстрація в UptimeRobot - додайте всі ваші сайти (до 50 безкоштовно). Налаштуйте перевірку кожні 5 хвилин. Підключіть Telegram-бота для алертів - email у 2025 році надто повільний для критичних сповіщень.
  2. Встановіть Netdata на VPS - одна команда: bash <(curl -Ss https://my-netdata.io/kickstart.sh). Через 60 секунд у вас буде дашборд з 2000+ метриками в реальному часі.
  3. Налаштуйте алерти в Netdata - за замовчуванням він вже має розумні пороги, але підкрутіть їх під себе. CPU вище 85% протягом 10 хвилин? Алерт. Вільного місця менше 10%? Алерт. RAM заповнена на 90%? Негайний алерт.
  4. Додайте Healthchecks.io для cron-задач - ваші бекапи, очищення кешу, оновлення пошукового індексу - все це має «відзначатися» в Healthchecks. Якщо задача не виконалась вчасно - ви отримаєте повідомлення.
  5. Створіть status-page - UptimeRobot дає безкоштовну сторінку статусу. Розшарте її команді та ключовим клієнтам. Прозорість будує довіру.
Руки тримають смартфон із сповіщенням uptime моніторингу сайту
Руки тримають смартфон із сповіщенням uptime моніторингу сайту

Весь процес займе близько години. Одну годину - і ви більше ніколи не дізнаєтесь про падіння сайту від розлюченого клієнта.

Три метрики, які всі ігнорують - а потім шкодують

CPU, RAM, диск - це очевидно. Але досвідчені адміністратори стежать за речами, про які новачки навіть не підозрюють.

Disk I/O wait. Процесор може бути завантажений на 30%, а сайт все одно гальмує. Чому? Тому що він чекає, поки диск прочитає дані. На shared-хостингу це бич - ваш «сусід» запустив важкий запит до бази, і ваш сайт страждає. Netdata показує iowait окремим графіком. Якщо він регулярно вище 20% - час мігрувати.

Кількість відкритих з'єднань до бази даних. MySQL за замовчуванням дозволяє 151 одночасне з'єднання. Коли ліміт вичерпано - нові запити стають у чергу. Відвідувач бачить білий екран або помилку 503. Моніторте це число - воно покаже, чи ваш код ефективно працює з базою.

Час відповіді від origin до CDN. Якщо ви використовуєте Cloudflare чи інший CDN, стежте за TTFB (Time To First Byte) на самому сервері, а не через CDN. CDN маскує повільність - ви думаєте, що все добре, а насправді origin-сервер відповідає за 3 секунди. Просто кеш рятує. Поки не перестане рятувати.

«Ви не можете покращити те, що не вимірюєте. Але ще небезпечніше - вимірювати не те, що потрібно.» - Пітер Друкер, теоретик менеджменту, чия думка ідеально лягає на моніторинг серверів.

Автоматичне зцілення: коли моніторинг не тільки дивиться, а й діє

Спостерігати за метриками - це добре. Але найкращий моніторинг - той, який вирішує проблеми сам, поки ви спите.

Ось реальний приклад. На одному з моїх проєктів PHP-FPM іноді «зависав» - воркери накопичувалися, нові запити не оброблялися. Сайт лежав. Що я зробив:

  • Netdata виявляє, що кількість активних PHP-FPM воркерів дорівнює максимуму протягом 2 хвилин
  • Алерт тригерить webhook на простий bash-скрипт
  • Скрипт перезапускає PHP-FPM і записує подію в лог
  • Я отримую повідомлення в Telegram: «PHP-FPM перезапущено автоматично, даунтайм 4 секунди»

Замість 15-30 хвилин простою (поки прокинувся, зрозумів, підключився, перезапустив) - 4 секунди. Клієнти навіть не помітили. А я спокійно доспав ніч.

Такий підхід називають self-healing infrastructure. Monit, Supervisor, systemd watchdog - інструменти, які вміють перезапускати сервіси автоматично. Підключіть їх до вашого моніторингу, і ваш сервер навчиться «лікувати» себе сам.

3D ілюстрація SEO-оптимізації та налаштування Netdata Grafana для хостингу
3D ілюстрація SEO-оптимізації та налаштування Netdata Grafana для хостингу

Скільки це коштує і коли себе окупає

Давайте порахуємо. Інтернет-магазин з середнім чеком 1200 грн і конверсією 2% отримує 500 відвідувачів на годину в пік. Одна година простою - це мінус 10 замовлень, мінус 12 000 грн. А якщо падіння стається вночі і його помічають тільки вранці? 8 годин - мінус 96 000 грн.

Вартість моніторингу: нуль гривень (безкоштовні інструменти) + 1 година вашого часу на налаштування. Навіть якщо ваш час коштує 2000 грн/год - це окупається при першому ж запобіганому простої тривалістю 10 хвилин.

Для тих, хто хоче преміум: платний план UptimeRobot - $7/міс, Grafana Cloud Free - безкоштовно до 10 000 метрик, Better Stack (колишній Better Uptime) - від $24/міс з красивими дашбордами та інтеграцією з PagerDuty. Але чесно? Для 90% проєктів безкоштовних інструментів вистачає з головою.

Що зробити прямо зараз

Не закладайте цю статтю в закладки, щоб «прочитати потім». Потім - це ніколи, ми ж обидва це знаємо. Замість цього відкрийте нову вкладку, зайдіть на uptimerobot.com, зареєструйтесь і додайте свій перший монітор. Це займе 3 хвилини. Серйозно - я засікав.

А тепер запитання, яке не дає мені спокою: якщо ваш сайт упав прямо зараз - через скільки хвилин ви б про це дізналися? Якщо відповідь «не знаю» або «коли напишуть клієнти» - у вас є чим зайнятися цього вечора. Ваш сервер уже намагається щось вам розповісти. Питання тільки в тому, чи слухаєте ви його.