Web服务器上的错误监视/处理

时间:2010-05-23 16:45:14

标签: php error-handling fault-tolerance

我们有一个Web服务器,我们即将启动许多应用程序。它们将共享数据库和memcached服务器,但每个应用程序都有自己的mySQL数据库,每个应用程序的所有memcached密钥都是前缀。

可能的情况:

如果群集中的memcached服务器蓬勃发展,我们希望通过电子邮件/ iphone推送通知或以任何其他适当的方式自动联系某人(操作系统管理员)。

如果我们要在我们的服务器上为客户安装150个相同的应用程序,并且memcached服务器死机 - 所有150个应用程序将单独找到它并联系我们的系统管理员,这肯定会考虑获取通过在早上4:15收到150条消息,他或她不会被唤醒的新工作。

可能的解决方案:

一个想法是设置一个外部服务器进行错误处理,发送$ _POST或cURL请求,并根据实际错误消息的严重性处理错误消息的存储。它当然会在收到错误调用后检查,如果已经将同一个memcached服务器报告为离线,则不需要向系统管理员发送垃圾邮件以及其他提醒...

问题:

  • 如何处理错误的好方法是什么?
  • 业内的大家伙如何处理这个问题?

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以考虑使用开源监控框架,例如Hyperic,这样您就不需要重新发明轮子了。

Hyperic可以开箱即用地监控系统的许多方面,并且可以很容易地插入新的监控点。它提供基于规则的警报,您可以配置哪些类型的警报只有一次,直到重置为止每次发生一次。

我没有使用它来监控PHP应用程序(虽然可以假设它可以),但已经非常成功地使用它来监控java应用程序和相关的MySQL数据库。

答案 1 :(得分:2)

嗯,我认为您的问题最好在应用程序之外解决。

您希望监控物理和软件服务器/服务。我建议使用http://www.nagios.org/http://www.opennms.org/之类的内容。将其设置为观察每个memcached服务器,mysql服务器,apache等,并发送有关状态更改(关闭,资源不足,恢复等)的通知