如何执行分布式网站监控?

如何执行分布式网站监控?

我想知道以下网站如何执行分布式网站监控(从多个检查站/国家)。

pingdom.com、site24x7.com、uptrends.com、siteuptime.com 等等。

具体来说,检查给定域名是否关闭时会发生哪些过程?如果服务器发现网站已关闭,下一步是什么?它会向单独的服务器发出 REST API 请求来运行相同的测试并报告结果吗?

我有几种理论,包括:

  • 利用来自不同国家的东道主
  • 利用不同国家的代理

我正在寻找最合适或最正确的方法来处理这个问题,其中可以包括使用来自多个国家/主机的服务器。

答案1

其中绝大部分将取决于实现。例如,每个提供商如何实现内部通信取决于他们。可能是 REST、可能是 XMLRPC、可能是 Pyro,等等。

从功能角度来看,它们处理方式似乎略有不同。Watchmouse 似乎会随机抓取可用的测试器并在其配置的节点之一上运行测试,而这些节点恰好在地理上分散。其他的似乎会分配到单个地理位置。

“最正确”的方式是相对的,取决于你想监控什么。你到底想监控什么,国际检查对你来说有多重要?你能如果来自加拿大的测试很快而来自乌克兰的检查很慢,有什么问题吗?

如果我亲自做的话,我会让远程轮询节点向集中收集器报告数据整理,但是为了加快速度,警报会从边缘系统发出。

不过,一切都取决于你想做什么。HTH。

答案2

理想情况下,您希望遍布全球的客户端计算机运行您想要的任何类型的检查。我猜您只是想知道网站是否正常运行,这可以通过简单的 GET 进行检查。使用代理可以做到这一点,但您还需要确定是网站还是代理没有响应。如果您使用多个代理,这应该很容易。

取决于 Web 服务器端可以实现多少自动化,这将在一定程度上决定你如何使用监控系统的结果。在我看来,基本的系统应该是这样的:

  • 定期(5分钟?)检查网站是否正常运行
  • 每隔半分钟左右将重新检查一次未响应的站点,并且该站点的检查计数器将增加
  • 如果站点响应,则检查时间和失败计数器将重置
  • 如果网站在重试 X 次后仍未响应,则会发送警报,并且如果可能,将重新启动服务和/或服务器

相关内容