可靠的网站错误通知系统


Reliable notification system for site errors?

我有一个用PHP写的业余网站,我想知道它是否有问题(数据库错误,更新打破了一些东西等)。我有一个简单的通知系统,如果有问题,它会给我发一封电子邮件,这对我来说就足够了。不幸的是,托管提供商的邮件发送功能不是很可靠。通常情况下,它可以工作,但也有一段时间,它只是吞下邮件,不发送任何东西。

在发生错误时是否有其他可靠的方法通知维护人员?这是一个爱好网站,所以我想找个简单的。不是工业强度的解决方案,但比电子邮件更可靠。你如何监控你的爱好网站?

我用PHP标记了这个问题,因为这个网站是用PHP写的,但我也对一般的建议感兴趣,而不仅仅是具体的PHP解决方案。

EDIT:问题是关于主动通知的机制。有事情发生时,我想要得到通知。如果PHP电子邮件不可靠,那么还有什么其他可能的通知方式?

EDIT2:两个例子来说明我在想什么样的解决方案:

  • 存储错误并提供一个列出最新错误(可能是密码保护)的页面,这将从我的计算机轮询,如果有错误,可能会弹出一些窗口。它可以工作,但只有当我在家里的电脑上才能工作。
  • 使用google calendar api在发生错误时插入事件,google calendar将可靠地给我发送电子邮件。它可能会工作,虽然它很麻烦。
  • 还有其他想法吗?

您正在寻找基于电子邮件的警报系统吗?如果没有,你应该试试Notifo。你可以使用他们的API来推送通知,它会立即发送到你的手机。

PHP有一个error_log函数,用于以各种方式返回错误,可以通过电子邮件发送给管理员、发送到服务器日志文件或发送到外部文件。我假设您可以在发现错误时将此功能替换为mailto:

http://php.net/manual/en/function.error-log.php

我在我的兴趣项目中也遇到了你提到的问题。当我开始使用GoDaddy时,它的邮件中继在及时发送邮件方面非常不可靠。

我想建议两件事:

  • 要发送更可靠的电子邮件,请查看邮戳。这是一个付费的解决方案,但费率是相当合理的,它提供了PHP类,你可以很容易地连接你的代码。

  • 对于自定义错误处理,请查看PHP的set_error_handler()。这是一个让自定义代码在站点的错误条件下执行的好方法。来自文档:

    set_error_handler -设置用户定义的错误处理函数。

    这个函数可以用来定义你自己在运行时处理错误的方式,例如在发生严重错误时需要清理数据/文件的应用程序中,或者当你需要在某些条件下触发错误时(使用trigger_error())。

也许给Airbrake(以前的Hoptoad)一个尝试。这是一项商业服务,但他们有一个基本的免费计划(定价页面底部的小链接),这个工具看起来很酷。它专注于Ruby on Rails,但根据他们的网站有各种其他框架和语言的插件,包括PHP。

http://airbrakeapp.com/pages/home

我们有一个系统设置,每隔一段时间在我们重要的网站上投票特定的页面,并检查某些字符串。这样的东西对你来说可行吗?