Набір із п’яти моніторів
П’ять моніторів на сайт
- Головна сторінкамістить «wp-content», не містить «Error establishing a database connection»Ключове словоFree
- wp-login.phpстатус 200 (або 200-399, якщо веде на https)HTTPFree
- wp-cronсправжній серверний cron пінгує щогодиниHeartbeatStarter
- /wp-json/статус 200 і містить «namespaces»JSONStarter
- Сертифікат і реєстраціяпопередження за 30, 14 і 3 дніSSL + доменStarter
Ілюстративний макет
Що насправді йде не так
Якщо ви кілька років працюєте з WordPress, то зустрічали все це. Сервер бази даних перезапускається, і на кожній сторінці з’являється Error establishing a database connection, хоча код відповіді при цьому цілком здоровий. Оновлення плагіна викликає фатальну помилку: публічна частина сайту лежить, а адмінка ще відкривається. Плагін кешування зберігає сторінку технічних робіт і шість годин віддає її всьому світу. Плагін безпеки починає перевіряти всіх на сторінці входу, зокрема й клієнта. SSL-сертифікат, який мало оновити cron-завдання, що тихо перестало працювати три місяці тому, втрачає чинність у суботу.
Простий монітор «чи повертає адреса 2xx» пропускає майже все це. Підхід нижче накладає перевірки шарами, щоб за кожним видом збою стежило щось окреме. Для цього потрібні звичайні типи моніторів, а не плагін.
Набір із п’яти моніторів
- Головна сторінка з ключовим словом. Вимагайте рядок, який є лише на правильно відрендереній сторінці, наприклад фразу з футера або
wp-content, і заборонітьError establishing a database connection. Запускайте перевірку з інтервалом 1 хв на Starter або 30 с на Pro. - wp-login.php доступний. Звичайна HTTP-перевірка з очікуваним кодом 200 або 200–399, якщо вхід перенаправляє на https. Вона виявляє блокування через правила безпеки.
- Heartbeat для wp-cron. Heartbeat-адреса, на яку пінгує справжній серверний cron або WP-CLI-завдання
wp cron event run --due-now. Якщо заплановані публікації та резервні копії зупиняться, про це скаже відсутній пінг. - Перевірка REST API. Запитайте
/wp-json/і очікуйте код 200 та рядокnamespacesу JSON. Від нього залежать headless-фронтенди, блоковий редактор і багато плагінів, а ламається він окремо від теми. - Термін дії SSL і домену. Одна перевірка сертифіката й одна — домену, з попередженнями за 30, 14 і 7 днів.
Кожну з цих перевірок докладно описано на сторінці моніторингу WordPress, а міркування за ними розібрано в статті п’ять перевірок WordPress (англійською). Готового шаблону WordPress в один клік немає: під час імпорту списку сайтів кожен URL стає HTTP-монітором, а перевірки ключового слова, сертифіката й домену ви додаєте для кожного сайту або окремими рядками CSV.
Отруєння кешу сторінок — збій, якого ніхто не помічає
Кеші цілих сторінок чудові, доки не закешують не те. Запит, що надійшов під час короткого збою бази даних, отримує сторінку помилки; кеш зберігає її й віддає ще довго після того, як база відновилася. Варіант для авторизованого користувача потрапляє в анонімний кеш. Зберігається редирект 302 на тестовий домен. З погляду сервера все гаразд, адже він швидко віддає відповіді.
Допомагають дві недорогі перевірки. Перша — правило з ключовим словом на головній сторінці: воно вимагає фразу, яка є лише на справжній сторінці, тож закешована сторінка помилки вважається збоєм. Друга — ще один монітор для тієї самої сторінки з параметром, що обходить кеш, наприклад /?tenium=1. Якщо звичайна адреса не відповідає, а адреса з параметром працює, проблема в кеші, а не на сервері, і це видно з даних в інциденті (фрагмент відповіді, статус по регіонах). Тоді очищення кешу стає першим кроком в інструкції з реагування, а не п’ятим.
Оновлення плагінів і ядра
Моніторинг не встановлює оновлень і не замінює регулярного обслуговування. Він замикає цикл: ви запускаєте оновлення, а наступні кілька перевірок підтверджують, що сайт і далі відображається. Якщо оновлюєте за розкладом, заплануйте на цей час вікно обслуговування, щоб не отримувати сповіщень про роботи, які почали самі, а перевірку за ключовим словом залишайте ввімкненою: невдале оновлення буде помічене за хвилину. Для сайтів, які ви не контролюєте, щомісячний звіт для клієнта перетворює список інцидентів на доказ того, що за сайтом хтось стежить.
Який тариф обрати і на скільки сайтів його вистачить
Тариф Free містить 30 моніторів із перевіркою кожні 5 хв: цього досить для одного сайту з простою перевіркою головної сторінки, з перевіркою головної сторінки та правилом за ключовим словом, але без перевірок SSL, домену, DNS і heartbeat. Starter ($7) додає перевірки JSON, контроль терміну дії SSL і домену, DNS і heartbeat для cron, сповіщення в Telegram і Slack та 3 сторінки статусу. При п’яти моніторах на сайт цього вистачить на 20 сайтів. Pro ($29) збільшує це до 60 сайтів, додає перевірки кожні 30 с і щомісячний звіт під вашим брендом. Agency ($59) додає простори клієнтів для агенцій, які ведуть сайти для інших людей; докладніше — на сторінці для агенцій. Порівняти варіанти можна на сторінці тарифів.
Запитання про WordPress
Чому відповідь 200 не доводить, що мій сайт на WordPress працює?
Тому що WordPress у кількох видах збоїв сам відображає сторінки помилок із кодом успіху; найвідоміший приклад — екран помилки бази даних. Перевірка, яка додатково вимагає фразу зі справжньої сторінки, перетворює такий тихий збій на сповіщення.
Чи потрібно встановлювати плагін?
Ні. Перевірки виконуються ззовні, і нічого встановлювати не треба. Плагін або mu-plugin з одного рядка знадобиться, лише якщо вам потрібен heartbeat, що доводить: сам wp-cron виконується.
Чи можна використовувати безкоштовний тариф для сайту на WordPress?
Так, для HTTP-перевірки головної сторінки та правила за ключовим словом, яке ловить типову сторінку з помилкою бази даних. Контроль терміну дії SSL і домену, моніторинг DNS і heartbeat для wp-cron доступні зі Starter за $7, тож сайти, яким потрібен повний набір, переходять з Free.
Чи може плагін безпеки заблокувати монітор?
Може, адже повторні запити до wp-login.php схожі на сканування. Додайте до білого списку (allow-list) адреси серверів перевірки, які ми публікуємо, або надсилайте секретний заголовок. Якщо сайт стоїть за Cloudflare, прочитайте інструкцію з allow-list для Cloudflare.
Скільки сайтів на WordPress вміщує один тариф?
При п’яти моніторах на сайт Starter охоплює 20 сайтів, Pro — 60 сайтів, а Agency — 200 сайтів.
Перевіряйте сайт на WordPress так, як його бачить відвідувач
Безкоштовний тариф, без картки. Додайте головну сторінку, а коли знадобляться перевірки SSL і heartbeat для cron — перейдіть на вищий тариф.