Лучшая практика оповещения, если веб-страница возвращает белую страницу?

Лучшая практика оповещения, если веб-страница возвращает белую страницу?

Мы пытаемся настроить мониторинг (zabbix) для веб-приложений, которые возвращают белую страницу смерти. Приложения основаны на PHP.

Насколько мне известно, белый экран смерти может быть вызван рядом проблем, проблемами с памятью, синтаксическими ошибками и т. д.

Поэтому я хочу спросить, лучше ли полагаться на то, что веб-сервер вернет код 50x, или может быть (каким-то образом) возможность получить код возврата 200, но при этом отображаемая страница будет пустой (белой)?

решение1

Лучшей и общепринятой практикой является использование кодов состояния HTTP. Если PHP сталкивается с критическими ошибками, он должен завершить работу с соответствующим кодом ошибки HTTP.

Критическая ошибка с кодом статуса HTTP 200 является фиктивным заявлением и ее следует избегать. Даже хорошо разработанные страницы 404 должны использовать код ошибки HTTP 404 и ничего больше.

Используя коды ошибок HTTP вы можете:

  • используйте существующие онлайн и локальные инструменты мониторинга для мониторинга ваших веб-сайтов и приложений

  • разрешить браузерам реагировать в соответствии с данной ошибкой

  • сообщите Google и другим поисковым системам, что на вашем сайте произошла ошибка, а не появился новый контент

  • настройте Nginx для отображения корректного HTML и сохранения кода ошибки, если ваш PHP завершает работу с фатальной ошибкой

    ...

решение2

Если вы хотите правильно отслеживать работу веб-сайта, вам следует определить строку или строки, которые появляются в вашем веб-контенте, и поручить вашему монитору проверить наличие этих строк в HTTP-ответе.

Если вы используете веб-приложение, которое собирает и обрабатывает данные форм, вам следует создать интерактивный монитор, который обрабатывает формы и подтверждает, что форма возвращает правильный результат. Это можно сделать разными способами. В прошлом я интегрировал Jmeter с Nagios, чтобы сделать это, но вы также можете использовать онлайн-сервисы, такие как Pingdom.

Полагаться на коды статуса HTTP, по моему мнению, не очень хорошая практика. Ошибка базы данных в PHP все еще может возвращать код статуса HTTP 200. Аналогично, сайт, который был дефейсом, может возвращать код статуса 200.

https://exchange.nagios.org/directory/Plugins/Java-Applications-and-Servers/jmeter-invocation-plugin-II/details

https://www.pingdom.com/

Связанный контент