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

时间:2009-06-22 15:13:30

标签: c# asp.net database web-services

我目前正在尝试构建(更简单的版本)状态网站,类似于Amazon's Service Health Dashboard

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

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

我理解它的方式是将它分解为这些部分:

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

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

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

非常感谢任何高级概述帮助。感谢。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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


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

答案 1 :(得分:1)

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

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