可靠的站点错误通知系统?

Posted

技术标签:

【中文标题】可靠的站点错误通知系统?【英文标题】:Reliable notification system for site errors? 【发布时间】:2011-08-04 15:56:48 【问题描述】:

我有一个用 php 编写的业余爱好,我想知道它是否存在问题(数据库错误、更新破坏了某些东西等)。我有一个简单的通知系统,如果有问题,它会向我发送电子邮件问题,这对我来说就足够了。不幸的是,托管服务提供商的邮件发送功能不是很可靠。通常它可以工作,但有时它只是吞下邮件而不发送任何东西。

是否有其他可靠的方法可以在出现错误时通知维护者?这是一个爱好网站,所以我正在寻找一些简单的东西。不是工业级解决方案,而是比电子邮件更可靠的解决方案。您如何监控您的爱好网站?

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

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

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

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

【问题讨论】:

如何将其存储在具有唯一名称时间戳的本地文件中。或者将其存储在数据库中的表中。 是的,它们可以存储。但是如何通知我呢?除了 PHP 电子邮件,还有其他的主动通知方式吗? 【参考方案1】:

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

【讨论】:

我正在寻找任何解决方案,而不仅仅是电子邮件。 Notifo 似乎很有希望。根据常见问题解答,他们每月免费允许 10000 条通知,这对于我的简单目的来说已经绰绰有余了。 Notifo 好像也可以做邮件通知。【参考方案2】:

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

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

【讨论】:

是的,我知道错误日志功能。问题是关于通知的。我希望得到可靠的通知。我不想手动检查日志。通知应该以某种方式自动发送给我。【参考方案3】:

我的爱好项目也遇到了你提到的问题。当我开始使用 GoDaddy 时,它的邮件中继对于及时传递邮件非常不可靠。

我建议两件事:

要以更高的可靠性发送电子邮件,请查看Postmark。它是一种付费解决方案,但价格相当合理,而且它附带 PHP 类,您可以很容易地连接代码。

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

set_error_handler — 设置用户定义的错误处理函数。 此函数可用于定义您自己在运行时处理错误的方式,例如在发生严重错误时需要清理数据/文件的应用程序中,或者当您需要在某些条件下触发错误时(使用trigger_error())。

【讨论】:

为可靠的电子邮件支付另一家提供商的费用是一种可能,但我正在寻找其他方式。我知道错误处理函数,但问题是关于通知的方法。如果不是电子邮件,那么还有什么可以考虑的?【参考方案4】:

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

http://airbrakeapp.com/pages/home

【讨论】:

【参考方案5】:

我们有一个系统设置,可以不时地轮询我们重要网站上的特定页面并检查某些字符串。这样的事情对你来说可行吗?

【讨论】:

以上是关于可靠的站点错误通知系统?的主要内容,如果未能解决你的问题,请参考以下文章

关于举办电子电器系统可靠性设计与测试技术等十期管理技能提升高级研修班的通知

W7系统无法显示网页确保Web地址正确。突然出现的前一天还好好的

Asp Net Core Web 推送通知

关于举办可靠性设计与失效分析试验技术最新标准应用高级研修班的通知

没有 node.JS 的推送系统

用于系统通知的 Quickblox REST API