В динамічному світі Інтернету моніторинг роботи веб-сайтів є важливим завданням для бізнесу та веб-розробників. Це дозволяє оперативно виявляти проблеми, такі як недоступність сайту і приймати необхідні заходи для їх вирішення. У цій статті ми розглянемо створення простого скрипта моніторингу роботи сайтів з використанням PHP.
Наш скрипт моніторингу буде перевіряти доступність заданих сайтів і надсилати повідомлення електронною поштою у разі недоступності. Давайте розглянемо код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <?php // Список сайтов для мониторинга $websites = array( "https://airmasterskaya.com", "https://lider-transfer.kiev.ua", "https://medservice.in.ua", ); // Настройки отправки электронной почты $subject = 'Непрацює сайт'; // Проверка доступности сайтов $unavailable_websites = array(); foreach ($websites as $website) { $context = stream_context_create(array( "ssl" => array( "verify_peer" => false, "verify_peer_name" => false ) )); $response = @file_get_contents($website, false, $context); if ($response === false) { $unavailable_websites[] = $website; } } // Отправка уведомления о недоступности сайтов if (count($unavailable_websites) > 0) { // Формирование текста сообщения $message = "Непрацює сайт ці сайти:\n\n"; foreach ($unavailable_websites as $website) { $message .= $website . "\n"; } // Отправка письма if (mail($to, $subject, $message, $headers)) { echo "Лист надіслано"; } else { echo "Не вдалося надіслати електронний лист"; } } else { echo "Всі сайти доступні"; } ?> |
Створення списку сайтів для моніторингу:
1 2 3 4 5 | $websites = array( "https://airmasterskaya.com", "https://lider-transfer.kiev.ua", "https://medservice.in.ua" ); |
У цьому масиві ви можете вказати будь-яку кількість веб-сайтів, які ви хочете відслідковувати.
Налаштування відправки електронної пошти:
1 2 3 |
Перевірка доступності сайтів:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $unavailable_websites = array(); foreach ($websites as $website) { $context = stream_context_create(array( "ssl" => array( "verify_peer" => false, "verify_peer_name" => false ) )); $response = @file_get_contents($website, false, $context); if ($response === false) { $unavailable_websites[] = $website; } } |
Цей код перевіряє доступність кожного сайту зі списку. Якщо сайт недоступний, його URL додається до масиву $unavailable_websites.
Відправка повідомлення про недоступність сайтів:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if (count($unavailable_websites) > 0) { $message = "Непрацює сайт ці сайти:\n\n"; foreach ($unavailable_websites as $website) { $message .= $website . "\n"; } if (mail($to, $subject, $message, $headers)) { echo "Лист надіслано"; } else { echo "Не вдалося надіслати електронний лист"; } } else { echo "Всі сайти доступні"; } |
Якщо знайдено недоступні сайти, скрипт формує повідомлення з їх списком і відправляє його за допомогою функції mail(). Якщо лист вдалося надіслати, виводиться повідомлення “Лист надіслано”. В іншому випадку виводиться повідомлення “Не вдалося надіслати електронний лист”. Якщо недоступних сайтів не знайдено, виводиться повідомлення “Всі сайти доступні”.
Таким чином, ви можете використовувати цей скрипт для моніторингу роботи веб-сайтів і отримувати сповіщення, якщо будь-який з них стає недоступним. Не забудьте встановити відповідні налаштування електронної пошти на своєму сервері, щоб забезпечити правильну роботу функції mail().
Автоматичний запуск перевірки через задачі CRON
Інструкція по додаванню скрипта моніторингу в крон-задачі на хостингу з використанням панелі управління CPanel:
Увійдіть до свого облікового запису CPanel і знайдіть розділ “Розклади CRON” або “Cron Jobs”. Зазвичай він розташований у розділі “Розширені” або “Розклади”.
- У розділі “Розклади CRON” знайдіть опцію “Додати новий розклад CRON” або “Add New Cron Job” і клацніть на неї.
- Відкриється сторінка додавання нової крон-задачі. У полі “Command” або “Команда” введіть команду для виклику вашого скрипта PHP з вказанням повного шляху до файлу скрипта. Наприклад: /usr/bin/php /home/username/public_html/myscript.php
- Замініть “/home/username/public_html/myscript.php” на шлях до вашого файлу скрипта моніторингу.
- Виберіть частоту виконання крон-задачі в полі “Common Settings” або “Загальні налаштування”. Ви можете вибрати один з популярних варіантів, таких як “Кожні 5 хвилин”, “Щогодини”, “Щоденно” і т.д., або вказати власну кастомну розкладку.
- Натисніть на кнопку “Додати розклад CRON” або “Add Cron Job”, щоб зберегти налаштування.
- Після збереження крон-задачі ви побачите підтвердження про успішне додавання. Скрипт моніторингу тепер буде виконуватися автоматично згідно з обраною вами частотою.
Важливою річчю є переконатися, що встановлений шлях до виконавчого файлу php (/usr/bin/php у вищенаведеному прикладі) вірний для вашого хостингу. Якщо ви не впевнені, який шлях до php, зверніться до підтримки вашого хостинг-провайдера для отримання
Залишити відповідь