数据库/网站状态的Web服务

我目前正在尝试构建(更简单的版本)状态网站,类似于亚马逊的服务健康仪表板

基本上,我需要连接大约3个数据中心和几个网站,至少有一个Up / Down消息。

我大多熟悉C#和一些网络编程。 我对Web服务略显熟悉,看起来这是实现这一点的好方法。 我可以通过Google的方式学习单个部分的教程,但我不确定这样的概述是如何工作的。

我理解它的方式是将它分解为以下部分:

  • 状态网站 – ASP.NET
  • Web服务 – C#/ ASP.NET
  • 某种程序将状态发送到Web服务 – C#?

对于网站状态,状态站点将只运行脚本以检查URL是否返回错误。

我对实现数据中心状态的最简单方法感到困惑。 根据我的理解,我可以编写一个可以从数据中心获得响应的Web服务。 最简单的方法是在每个数据中心中执行此C#程序,检查状态(可能登录到SQL数据库),然后将状态发送到Web服务? 我也很困惑,最简单的方法是将这些信息提供给状态网站。 我想最简单的方法是让Web服务写入状态网站会读取的文件。 此外,我想如果在一定时间内没有收到状态消息,则需要对Web服务调用进行计时并报告中断。

任何高级概述帮助将不胜感激。 谢谢。

最简单的方法是从健康的定义开始。

确定数据中心每个组件的标准,定义健康状况。 确定如何衡量这些标准,最好是从数据中心的可靠服务器开始。 请注意,我建议您学习如何在Web服务之外测量它们,因为您不熟悉Web服务。

创建一个Web服务以在该可靠服务器上运行以测量这些条件。 在决定如何将结果呈现回网站后,将措施附加到您的Web服务。

然后,该网站可以使用调用这些服务的结果来更新状态仪表板。 它可以使用AJAX异步调用所有数据中心的服务。

如果您需要根据数据中心的状态合并操作,则会稍微复杂一些。 例如,如果发现数据库已关闭,则可能需要一个按钮来启动数据库。


编辑:我还想确保您了解Microsoft的System Center产品等产品。 它们可能对您正在做的事情有些过分,但它们确实提供了一种标准,灵活的机制来监控数据中心状态,并采取措施纠正问题。 另请参阅http://www.codeplex.com/dfo 。

我还想提一下,IPSwitch制作了一款名为“ WhatsUpGold ”的产品。 我在过去的4年里一直在使用它,它可以开箱即用。 最重要的是,它非常划算! 我是一个落后的版本,因为我不需要任何新function! 它支持分布式多站点网络(每个站点的代理监视状态/运行状况并报告回主要位置/集线器)。

*正如John上面提到的,监控设备状态的关键是定义它的健康状况。 因为许多其他事情,仅仅获得上升或下降的状态是不够的; ping延迟,磁盘利用率,CPU利用率等将基于您的独特环境。