Переходите з UptimeRobot? Імпортуйте монітори одним кліком за ключем API лише для читання.Почати безкоштовно →
  1. Головна
  2. Блог
  3. WordPress

П’ять перевірок для кожного сайту на WordPress

Одного коду відповіді мало: він не ловить більшість збоїв WordPress. П’ять зовнішніх перевірок для помилок бази даних, входу, wp-cron, SSL і терміну дії домену.

WordPress

WordPress ламається так, що проста перевірка доступності цього не помічає. Класичний приклад: зникає база даних, WordPress показує охайну сторінку з текстом «Error establishing a database connection» і віддає її з кодом HTTP 200. Монітор каже, що все гаразд. Клієнти вашого клієнта бачать помилку.

Нижче п’ять зовнішніх перевірок, які ми налаштовуємо на кожному сайті WordPress: навіщо кожна з них потрібна і як її налаштувати. Разом вони складають стандартний набір, який можна створити в Tenium вручну або з CSV; готового шаблону в один клік немає.

1. Головна сторінка: код відповіді плюс ключове слово

Перевірка головної сторінки має вимагати дві речі: код 2xx і фразу, яка з’являється лише тоді, коли сайт відобразився правильно.

Фраза не обов’язково має бути видимим текстом. Добре підходить wp-content: кожна правильно відображена сторінка WordPress посилається на ресурси за цим шляхом, а сторінка з помилкою бази даних і більшість сторінок із фатальною помилкою PHP — ні. Для магазинів візьміть фразу зі справжньої сторінки: назву магазину у футері або назву першого товару.

Додайте також правило не повинна містити для Error establishing a database connection і Fatal error. Тоді типові збої перетворяться на чіткі сповіщення зі зрозумілим повідомленням замість «ключового слова немає».

Інтервал: 30 або 60 секунд. Саме ця перевірка надсилає вам сповіщення.

2. Сторінка входу

/wp-login.php — те місце, де найчастіше дають збої плагіни безпеки та WAF. Wordfence обмежує частоту запитів, правило Cloudflare вимагає перевірки від усіх, оновлення плагіна змінює адресу входу, а файрвол хостингу блокує країну, в якій сидить ваш офіс. Сайт працює, але ніхто не може увійти, ви теж, і першим про це дізнається редактор на боці клієнта.

Відстежуйте https://example.com/wp-login.php і очікуйте відповідь 200 з ключовим словом user_login. Якщо ви змінили адресу входу, відстежуйте нову. Інтервал: 5 хвилин цілком достатньо.

Застереження: плагін безпеки може блокувати повторні запити до сторінки входу. Додайте IP-адреси або User-Agent монітора до білого списку (allow-list) в налаштуваннях плагіна; схему правила описано в посібнику з Cloudflare.

3. Heartbeat для wp-cron

У WordPress немає справжнього cron. Заплановані публікації, резервні копії, синхронізація залишків у WooCommerce і службові завдання плагінів запускаються з wp-cron.php, а той спрацьовує під час відвідування сторінок. На сайті з невеликою відвідуваністю або там, де розробник вимкнув wp-cron і не поставив нічого натомість, заплановані завдання мовчки зупиняються. Сайт виглядає здоровим. Резервні копії не створювалися вже три місяці.

Виправлення — heartbeat-монітор: унікальна адреса, на яку має надходити пінг не рідше ніж раз на N хвилин. Heartbeat-монітори починаються зі Starter. Створіть такий монітор у Tenium з періодом 15 хвилин і допуском (grace) 15 хвилин, а потім покладіть цей must-use-плагін у wp-content/mu-plugins/tenium-heartbeat.php:

<?php
/* Plugin Name: Tenium heartbeat */
add_action('init', function () {
  if (!wp_next_scheduled('tenium_heartbeat')) {
    wp_schedule_event(time(), 'hourly', 'tenium_heartbeat');
  }
});
add_filter('cron_schedules', function ($s) {
  $s['tenium_15'] = ['interval' => 900, 'display' => 'Every 15 minutes'];
  return $s;
});
add_action('tenium_heartbeat', function () {
  wp_remote_get('https://ping.tenium.app/h/YOUR_HEARTBEAT_ID', ['timeout' => 5, 'blocking' => false]);
});

Коли розклад зареєстровано, замініть 'hourly' на 'tenium_15' або залиште щогодини і задайте період 90 хвилин. Якщо wp-cron зупиниться, heartbeat замовкне, а ви отримаєте сповіщення, яке каже саме про це.

Бонус: якщо ви замінили wp-cron справжнім системним cron (*/5 * * * * wp cron event run --due-now), додайте в кінець цього рядка && curl -fsS https://ping.tenium.app/h/YOUR_ID.

4. Термін дії SSL-сертифіката

Let’s Encrypt оновлює сертифікати автоматично — аж до того дня, коли ні: змінився DNS-запис, закрито порт 80, спрацювало обмеження частоти запитів або сайт переїхав на інший хостинг. Зовнішній SSL-монітор читає сертифікат, який справді бачать відвідувачі, і сповіщає за 30, 14 і 3 дні до закінчення терміну дії, а також одразу, якщо зламався ланцюжок сертифікатів або не збігається ім’я хоста.

Кожен https-монітор у Tenium заодно записує термін дії, тож перевірка головної сторінки вже це робить. Окремий SSL-монітор додає перевірку ланцюжка та видавця і показує чітке «залишилося 61 день» на сторінці статусу клієнта та в місячному звіті. Якщо вам доводилося в понеділок зранку відновлювати прострочений сертифікат, цю перевірку ви не пропустите.

5. Термін дії домену

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

Монітор домену щотижня перевіряє реєстр через RDAP або WHOIS і сповіщає за 60, 30, 14 і 7 днів до закінчення терміну дії. Він також помічає зміни серверів імен і статуси clientHold. Якщо в агенції сорок клієнтських доменів, список моніторів стає календарем продовжень, а дата закінчення потрапляє у звіт кожного клієнта, що зазвичай підштовхує до розмови про продовження вчасно.

Плагін, який цього не вміє

Плагіни та сервіси для керування сайтами (ManageWP, MainWP, WP Umbrella та подібні) чудово справляються з оновленнями, резервними копіями й скануванням безпеки зсередини WordPress. Але повідомити, що сайт не працює, вони не можуть: коли лежить сайт, лежить і плагін. Зовнішній моніторинг і керування зсередини доповнюють одне одного; користуйтеся обома і додайте обидва в план супроводу сайту.

Налаштування для сорока сайтів

У Tenium вставте адреси сайтів по одній на рядок або завантажте CSV: кожен URL стане HTTP-монітором, а перевірки ключового слова, сертифіката й домену ви додаєте для кожного сайту окремо (або вказуєте їх додатковими рядками CSV з типом і ключовим словом). Сорок сайтів — це близько 200 моніторів, що вміщається в тариф Pro за $29 на місяць. Якщо ви хочете, щоб кожен сайт мав власний простір клієнта з окремим входом і звітом під вашим брендом, який приходить першого числа, вам потрібен тариф Agency за $59, де є місце для 1000 моніторів.

Докладніше про кожну перевірку читайте на сторінці моніторингу WordPress.

Читайте також

У кожної з п’яти перевірок є окрема сторінка: моніторинг сайту, моніторинг за ключовим словом, моніторинг cron-завдань, моніторинг SSL і моніторинг терміну дії домену. Огляд для цієї аудиторії — моніторинг сайтів на WordPress, а будь-яку адресу можна перевірити інструментом для HTTP-заголовків. Як це масштабується для агенцій, дивіться на сторінці для агенцій.


Читайте також

Пов’язані сторінки Tenium

Відстежуйте перший сайт безкоштовно

30 моніторів безкоштовно, перевірки з 2 регіонів, без банківської картки. Перевірка SSL і терміну дії домену — від $7 на місяць.