5

我们有一个 Web 服务器,我们将在该服务器上启动许多应用程序。它们都将共享数据库和 memcached 服务器,但每个应用程序都有自己的 mySQL 数据库,并且每个应用程序的所有 memcached 键都带有前缀。

可能的情况:

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

如果我们要在我们的服务器上为我们的客户安装 150 个相同的应用程序,并且一个 memcached 服务器死了 - 所有 150 个应用程序都会单独发现这一点并联系我们的系统管理员,他们肯定会考虑找一份新工作在早上 4 点 15 分收到 150 条消息时,他或她不会被吵醒。

可能的解决方案:

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

问题:

  • 关于如何处理错误的好方法是什么?
  • 业内大佬们是怎么处理的?

谢谢!

4

2 回答 2

3

您可能会考虑使用Hyperic等开源监控框架,这样您就无需重新发明轮子。

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

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

于 2010-05-23T16:53:04.710 回答
2

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

您想要监控物理和软件服务器/服务。我会推荐类似http://www.nagios.org/http://www.opennms.org/的东西。设置它以监视每个 memcached 服务器、mysql 服务器、apache 等,并发送有关状态变化的通知(停机、资源不足、恢复等)

于 2010-05-23T16:54:08.903 回答