设计一个监视系统,以监视100k服务器上的httpd健康状态

时间:2018-12-11 06:50:06

标签: architecture health-monitoring

这是设计面试问题之一,我无法得出最终的解决方案。我想为以后的采访做准备。 问题是,您在美国和欧洲的数据中心(xyz公司拥有这些数据中心)之间分配了10万台服务器。我必须设计一个监视系统,该系统将报告httpd服务的运行状况,并最终将结果显示在仪表板上。现在的挑战是健康检查监视器应在10秒钟内完成,这是该项目的约束。

我想出了以下解决方案:

  1. 基本-实现一个脚本,该脚本将GET请求发送到httpd / apache的状态页并检查响应。基于成功/失败响应,将结果相应显示在仪表板UI上。该脚本安装在单独的监视服务器上,并作为守护程序运行。这是一个同步解决方案,对于10万台服务器,肯定会花费超过10秒钟的时间。
  2. 在解决方案1上,我通过使用async.io或回调实现异步来进行了修改,从而不会阻止来自监视服务器的每个请求。仍然效率不高。
  3. 下一步是创建多个监视服务器,每个监视服务器将监视数据中心中的一部分服务器。例如:如果n = 10,则每个监视服务器可以监视1万个服务器,从而缩短了周转时间。但是访调员仍然觉得这种群集解决方案仍然无法有效地缩短10秒内的时间。

这种方法是否足以继续下去?或者在成本和性能方面有更好的方法吗?请记住,这是一个全新的基础架构,没有可重复用于该项目的组件。

0 个答案:

没有答案