Чи можливо надіслати електронний лист веб-майстру, коли відвідувачі потрапляють на сторінку помилки 500?


10

Чи можна надсилати веб-майстру автоматичну електронну пошту, що містить інформацію про запитувану сторінку, коли відвідувачі потрапляють на сторінку 500 помилок із внутрішнім сервером?

Таким чином веб-майстер міг би діяти швидше, щоб вирішити проблему. Це загальне питання, тому яка платформа використовується не має значення.


1
будь ласка, додайте програмне забезпечення та мову веб-сервера, якими ви можете (хочете) користуватися. (apache, nginx, iis, php, asp), тож люди зможуть показувати вам приклади сценаріїв.
jflaflamme

Відповіді:


7

Так, це можливо. Вам просто потрібно встановити, чи веб-сервер IIS або Apache, і тоді ви можете встановити його, щоб відображати користувацьку сторінку (яка буде містити код для захоплення потрібних даних від користувача та надсилання електронної пошти вам) щоразу, коли 500 зустрічається помилка.

Наприклад, для Apache це дуже просто. Просто створіть (або додайте, якщо такий існує) a, .htaccessі скористайтеся наступним правилом всередині нього, щоб налаштувати власний документ про помилку:

ErrorDocument 500 /error-docs/500.php

а тепер для nginx? :)
rogerdpack

2
@rogerdpack, error_page
Bluebaron

7

Надсилання пошти з кожною помилкою через користувальницьку сторінку помилок може не спрацювати, якщо проблема пов’язана з PHP: ваша користувацька сторінка може не працювати і тому повідомлення не вийде. Також ви отримаєте одне повідомлення електронної пошти за помилку, яка може стати повені.

Я б запропонував замість цього здійснити певну форму сканування журналу: запропонуйте завдання cron (або заплановане завдання під Windows) кожен день чи кожні кілька годин скануйте файли журналу на предмет помилок та надсилайте резюме всього, що було знайдено з моменту останньої перевірки відповідному адміністратору (и). Ви також можете змусити сценарій перевірки журналу зробити кілька інших речей, як-от переконайтеся, що служба веб-сервера (і будь-яких служб бази даних тощо) працює, хоч лише заради параної. Якщо нічого іншого, один електронний лист за звітний період може охоплювати інші коди помилок HTTP (401, 404, ...) та інші речі, знайдені в журналах. Якщо ви це зробите, завжди надсилайте повідомлення електронною поштою, навіть якщо нічого поганого немає : таким чином ви дізнаєтесь, чи не вдалося запустити сценарій сканування, оскільки ви перестаєте отримувати повідомлення (інакше жодне повідомлення не може означати, що все добре або машина зі звітом про пошкодження пошкоджена).


Крім того, ви можете підключитися до процесу реєстрації безпосередньо на Apache, за допомогою цього запису (або трубопроводу ) записів у журнал сценарію perl або бази даних, яка підтримує гачки та визначені користувачем функції (або здатна надсилати електронною поштою інші способи). Ви також можете перехоплювати події журналу Apache за допомогою спеціального модуля.
Lèse majesté

Я вважаю, що ваша відповідь справді заслуговує на те, щоб її прийняли. це практичне рішення.
ALH

4

Так, надсилайте електронний лист за кожну помилку. Це також хороша ідея, щоб надіслати стільки інформації, скільки ви можете отримати в рамках електронного листа. Подумайте про захоплення:

  • вміст колекції форм,
  • всі змінні сеансу,
  • рядок користувача-агента браузера,
  • значення файлів cookie,
  • URL-адреса сторінки, включаючи будь-які параметри запитів.

Це дуже допомагає для налагодження. Небезпечно отримувати цю інформацію в класичних ASP та ASP.NET через об’єкти Request and Session.

Просто не буде помилки на вашій користувацькій сторінці помилок, інакше ви відробите веб-сервер.


3

Так, дуже можливо. Крім електронної пошти, ви також можете перевірити журнал веб-сервера.

Я пропоную не надсилати електронну пошту на кожні 500, інакше, якщо є помилка, ваша поштова скринька затопить. Просто запишіть ідентифікатор помилки, надішліть 1 для тієї ж помилки на той самий id.


Я вважаю, що отримання електронної пошти, коли щось піде не так, полегшує життя веб-майстра, а не переглядати журнал веб-сервера. Хороший момент щодо ідеї 1 електронної пошти. Оновлення!
Тоні Болеро

Дякую. Я використовував ASP, за старих часів ASP отримує код помилки, я використовую його та URL сторінки, роблю унікальний ключ і зберігаю в пам’яті, я отримував 1 електронну пошту за кожну помилку та кожен раз, коли пам’ять спалахувала (наприклад, перезавантаження програми). Не так багато електронної пошти, але достатньо для відстеження помилок. (btw, цей спосіб також може відстежувати 404, але будьте обережні, в наші дні занадто багато помилок 404 від ботів)
Ерік Інь

-1

Ви можете додати iframe, який завантажує php з іншого сервера, тоді ваша сторінка з помилками завжди надсилатиме листи.


1
Чому кадр? Не впевнений, що розумію причину.
Андрій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.