Có thể gửi email tự động tới quản trị trang web khi khách truy cập gặp phải trang lỗi 500 không?


10

Có thể gửi email tự động bao gồm chi tiết về trang được yêu cầu tới quản trị trang web khi khách truy cập truy cập vào trang lỗi 500 máy chủ nội bộ không?

Bằng cách đó, chủ web có thể hành động nhanh hơn để giải quyết vấn đề. Đây là một câu hỏi chung vì vậy nền tảng nào được sử dụng là không liên quan.


1
vui lòng thêm phần mềm máy chủ web và ngôn ngữ bạn có thể (muốn) sử dụng. (apache, nginx, iis, php, asp) để mọi người có thể hiển thị cho bạn các ví dụ về tập lệnh.
jflaflamme

Câu trả lời:


7

Vâng nó có thể. Bạn chỉ cần xác định xem máy chủ web là IIS hay Apache và sau đó bạn có thể đặt nó để hiển thị một trang tùy chỉnh (sẽ chứa mã để nắm bắt các chi tiết bạn muốn từ người dùng và gửi email cho bạn) bất cứ khi nào 500 gặp lỗi.

Ví dụ, đối với Apache, nó thực sự đơn giản. Chỉ cần tạo (hoặc thêm nếu tồn tại) a .htaccessvà sử dụng quy tắc sau trong đó để thiết lập tài liệu lỗi tùy chỉnh của bạn:

ErrorDocument 500 /error-docs/500.php

và bây giờ cho nginx? :)
rogerdpack

2
@rogerdpack, error_page
Bluebaron

7

Gửi thư với mọi lỗi, thông qua trang lỗi tùy chỉnh, có thể không hoạt động nếu sự cố liên quan đến PHP: trang tùy chỉnh của bạn có thể không chạy hoặc do đó thư không bị mất. Ngoài ra, bạn sẽ nhận được một email cho mỗi lỗi có thể là một lũ.

Thay vào đó, tôi đề nghị thay vì thực hiện một số hình thức quét nhật ký: có một công việc định kỳ (hoặc tác vụ theo lịch trình trong Windows) quét các tệp nhật ký để tìm lỗi mỗi ngày hoặc mỗi vài giờ và gửi một bản tóm tắt mọi thứ được tìm thấy kể từ lần kiểm tra cuối cùng cho quản trị viên có liên quan (S). Bạn cũng có thể làm cho tập lệnh kiểm tra nhật ký của mình thực hiện một số việc khác như đảm bảo dịch vụ máy chủ web (và mọi dịch vụ cơ sở dữ liệu, v.v.) đang chạy, nếu chỉ vì hoang tưởng. Nếu không có gì khác, một email cho mỗi kỳ báo cáo có thể bao gồm các mã lỗi HTTP khác (401, 404, ...) và những thứ khác được tìm thấy trong nhật ký. Nếu bạn làm điều này, hãy luôn gửi tin nhắn email ngay cả khi không có gì là sai trái : đó là cách bạn biết nếu kịch bản quét của bạn đã thất bại trong việc chạy vì bạn ngừng nhận thông điệp (nếu không có thông báo hoặc có thể có nghĩa tất cả là tốt hay máy báo cáo thiệt hại bị hư hỏng).


Ngoài ra, bạn có thể móc vào quá trình ghi nhật ký trực tiếp trên Apache bằng cách ghi các mục nhật ký (hoặc đường ống ) vào tập lệnh perl hoặc cơ sở dữ liệu hỗ trợ các hook và các hàm do người dùng xác định (hoặc có khả năng gửi email theo cách khác). Bạn cũng có thể chặn các sự kiện nhật ký Apache bằng mô-đun tùy chỉnh.
Lèse majesté

Upvote, tôi nghĩ rằng câu trả lời của bạn thực sự xứng đáng được nâng cao. Đó là giải pháp thiết thực.
ALH

4

Có, gửi email cho mỗi lỗi. Bạn cũng nên gửi nhiều thông tin nhất có thể như một phần của email. Hãy suy nghĩ về việc lấy:

  • nội dung của bộ sưu tập mẫu,
  • tất cả các biến phiên,
  • chuỗi tác nhân người dùng trình duyệt,
  • giá trị cookie,
  • URL trang, bao gồm bất kỳ tham số chuỗi truy vấn.

Điều này giúp rất nhiều cho mục đích gỡ lỗi. Việc lấy thông tin này trong ASP và ASP.NET cổ điển thông qua các đối tượng Yêu cầu và Phiên là điều không quan trọng.

Chỉ cần không có lỗi trên trang lỗi tùy chỉnh của bạn, hoặc bạn sẽ làm hỏng máy chủ web.


3

Vâng, rất có thể. Ngoại trừ email, bạn cũng có thể kiểm tra nhật ký Máy chủ Web.

Tôi đề nghị không gửi email trên mỗi 500 đơn, nếu không, nếu có lỗi, hộp thư của bạn sẽ bị ngập. Chỉ cần ghi lại id lỗi, gửi 1 cho cùng một lỗi trên cùng một id.


Tôi nghĩ rằng việc nhận email khi có sự cố làm cho cuộc sống của quản trị trang web dễ dàng hơn một chút thay vì thông qua nhật ký máy chủ web. Điểm hay về ý tưởng 1 email. Upvote!
Tony Bolero

Cảm ơn. Tôi đã sử dụng ASP, trong thời gian cũ, ASP nhận được mã lỗi, tôi sử dụng nó và url của trang, tạo một khóa duy nhất và lưu vào bộ nhớ, tôi nhận được 1 email cho mỗi lỗi và mỗi khi bộ nhớ bị xóa (ví dụ: khởi động lại ứng dụng). Không quá nhiều email, nhưng đủ để theo dõi lỗi. (btw, cách này cũng có thể theo dõi 404, nhưng hãy cẩn thận, những ngày này có quá nhiều lỗi 404 từ bot)
Eric Yin

-1

Bạn có thể thêm iframe tải php từ máy chủ khác, sau đó trang lỗi của bạn sẽ luôn gửi thư.


1
Tại sao một iframe? Không chắc tôi hiểu lý do.
Andrew
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.