Сайт на WordPress — это программа, база данных и куча плагинов, часто на общем хостинге. Когда что-то из этого ломается, сайт ломается по-своему. Страница может стать пустой, показать короткое сообщение или грузиться так медленно, что посетители уходят.
Мониторинг снаружи не видит, что творится внутри. Зато он может по расписанию запрашивать те же адреса, что и посетитель, и сообщать, когда ответ неверный. Это руководство показывает, какие адреса запрашивать и какие сигналы настроить.
Сбои, которые стоит ловить
В документации WordPress описаны сбои, с которыми владельцы сайтов сталкиваются чаще всего. Снаружи каждый выглядит по-своему:
| Что произошло | Что видит посетитель | Что может прочитать внешняя проверка |
|---|---|---|
| Плагин или тема падает с ошибкой PHP | Пустая страница («белый экран») или сообщение о критической ошибке на сайте | Обычно ошибка сервера, 500. Иногда пустая страница, которая всё же отвечает 200 |
| WordPress не может связаться с базой данных | «Error establishing a database connection» | Ошибка сервера или страница с этой фразой |
| Обновление прервалось | Короткое сообщение об обслуживании, которое не исчезает | Ответ 503 |
| Хостинг перегружен | Страница, которая грузится медленно, а затем ошибка или превышение времени ожидания | Медленное время ответа, затем превышение времени ожидания или ответ 5xx |
| Сертификат или домен перестал действовать | Предупреждение безопасности в браузере или сайт вообще не открывается | Предупреждение об SSL, домене или DNS |
Ни один из этих случаев не редкость. Большинство начинается сразу после какого-нибудь изменения, поэтому они возникают, когда никто не смотрит.
Какие адреса отслеживать
Каждый точный адрес считается одним сайтом, поэтому выбирайте внимательно.
- Главная страница. Очевидный первый адрес. Плагин кеширования может отдавать её из сохранённой копии, поэтому она какое-то время может выглядеть здоровой после того, как остальной сайт уже отказал.
- Страница входа, wp-login.php. Она публичная, отвечает без пароля и обычно исключена из кеша. При каждом запросе её должны собрать PHP и база данных, поэтому она, как правило, ломается, когда ломаются они.
- Страница, важная для бизнеса. Страница контактов, страница бронирования, прайс-лист.
- Любое другое имя хоста. Магазин или раздел для участников на поддомене, а также тестовая копия — это отдельный адрес со своими сбоями.
Не отслеживайте админку. Проверка не входит в систему, поэтому увидела бы только перенаправление на страницу входа.
Как поймать страницу с ошибкой, которая отвечает 200
С ошибкой сервера всё просто: любой итоговый ответ вне диапазона от 200 до 399 считается сбоем, и причина записывается.
Трудный случай — страница, которая отвечает 200, но неправильная. Кеш может отдать пустую или сломанную страницу, а тема может вывести сообщение об ошибке внутри внешне обычного ответа. Это закрывают два текстовых оповещения:
- Сбой, когда на странице есть фраза. Берите фразу из самого сбоя, например «Error establishing a database connection».
- Сбой, когда на странице нет фразы. Берите фразу, которая всегда есть на здоровой странице, например часть текста в подвале или название кнопки.
Выбирайте фразу короткую, точную и такую, которую не меняют редакторы и плагины перевода. Текст должен совпадать точно.
Застрял в режиме обслуживания
Когда WordPress обновляется сам, он на мгновение показывает короткое сообщение об обслуживании и отвечает кодом 503. Если обновление прервалось, сообщение может висеть часами, и посетители не видят ничего другого.
Для внешней проверки 503 — это сбой, поэтому здесь не нужна особая настройка. Важно, чтобы кто-то об этом узнал. Поскольку неудачная проверка повторяется, прежде чем откроется инцидент, обычное короткое обновление тревоги не поднимает, а зависшее — поднимает.
Сначала медленно, потом недоступно
Перегруженный хостинг редко переходит от здорового состояния к мёртвому за один шаг. Страницы грузятся дольше, потом часть запросов обрывается по времени ожидания. Проверка ждёт до 15 секунд, прежде чем сочтёт ответ сбоем, и каждый раз записывает время ответа, поэтому на графике истории видно, как сайт замедляется, прежде чем остановиться.
Чего внешний мониторинг не умеет
- Он не знает, какие плагины или темы установлены и какие из них устарели.
- Он не находит уязвимости, вредоносный код или взломанную страницу, которая по-прежнему отвечает нормально.
- Он не заглядывает за вход, форму или оформление заказа.
- Он ничего не чинит. Он сообщает, что есть проблема, а также когда она началась и закончилась.
Контрольный список
- Отслеживается ли главная страница, а также страница входа?
- Есть ли текстовое оповещение по фразе со здоровой страницы?
- Доходят ли оповещения до того, кто может что-то сделать, по электронной почте или в Telegram?
- Отслеживаются ли даты истечения SSL-сертификата и домена?
- Если вы ведёте сайты для других людей, помечен ли каждый именем клиента?