【问题标题】:Creating External Monitoring for a web app为 Web 应用程序创建外部监控
【发布时间】:2010-01-13 21:06:52
【问题描述】:

我工作的公司构建并托管了一个供客户使用的网络应用程序,我有兴趣创建某种外部监控页面(类似于 trust.salesforce.com),用户可以访问该页面查看当前状态我们的服务器/应用程序。我知道那里有大量不同的“监控”服务,但我想自己创建服务,以获得完全的控制和定制。显然,该服务必须托管在与应用程序本身不同的位置和数据中心。我担心的一件事是,如果我只是在不同的位置选择不同的主机,如果该主机因任何原因(电源故障、服务器故障,甚至 ISP 故障)而停机,则监控软件会停机。出于这个原因,我正在考虑在亚马逊 EC2 实例上托管监控应用程序。凭借其弹性 IP 功能,如果由于某种原因数据中心或运行实例的点出现故障,我可以创建一个具有相同数据(但位于不同位置)的重复实例,一切仍然可以正常工作。

这听起来像是一个可行的计划吗?为了更加安全,我正在考虑在不同的位置创建 2 个实例并从这两个实例进行监控。如果一个实例失败,另一个实例仍然会启动。显然,一个实例必须充当监控页面的实际 Web 主机。如果一个实例检测到另一个实例因任何原因失败,是否可以通过编程方式将弹性 IP 切换到自身?

我知道这个问题涉及很多不同的事情,我只是在寻找有关其中任何一个的反馈......

如果您已经做到了这一步,感谢您抽出宝贵时间阅读本文!

【问题讨论】:

    标签: web-services web-applications monitoring amazon-ec2


    【解决方案1】:

    您所说的是针对复杂问题的复杂解决方案。我认为您使用 Amazon 的 EC2 之类的东西来减少监控应用程序出现故障的机会是正确的。此外,您可以自己开发它,但是有很多免费的监控解决方案,比如 Nagios,它们可以满足您的所有要求,并且具有高度可扩展性,因此您可以花时间让它看起来和感觉像您想要的那样,同时离开引擎盖下更复杂的部分到经过试验和测试的软件。对你来说最糟糕的事情是你的软件中有一个错误,当它实际关闭时,它会显示一些东西。根据您所说的,我认为这将是一个大问题。

    【讨论】:

      【解决方案2】:

      不要使用仅分配给一个实例的弹性 ip,而是考虑使用弹性负载均衡器 http://aws.amazon.com/elasticloadbalancing/,然后它可以路由任何可用区域中的实例。通过这种方式,如果实例由于某种原因变得不可用,AWS 可以管理将实例移入/移出池,并且您不必花时间“移动”弹性 IP。然后很容易将您的监控 cname 分配给 ELB 主机名。

      我认为 RandomBen 在您的实例上使用 Nagios 的想法是一个很好的想法,因为这样您就不必在 Nagios 中重新创建所有功能。然后,您将花费开发时间来设置系统并根据您的需要自定义外观。

      另外,如果你可以使用 MySQL,你应该考虑使用 RDShttp://aws.amazon.com/rds/,尽管如果你有一个区域之外的服务器访问另一个区域的 RDS,你需要支付传输费用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多