监测来自不同地理位置的CDN

最近,我们的CDN服务出现了一个问题:一个边缘位置caching了JavaScript文件的不完整版本,我们来自阿拉伯联合酋长国的客户(以及其他一些附近的国家)无法使用我们的服务。 这个问题现在已经解决了,但是我们已经意识到监控我们的CDNnetworking可能是一个好主意。

我们需要监视

  1. 资源可用。
  2. 他们有正确的内容types,内容编码(gzip),到期和其他一些头
  3. 它们在所有地理位置上具有相同的大小。
  4. 资源经常改变名字(我们正在更新文件名后缀,当用新版本进行更新时),所以我们需要能够在部署期间自动快速更改监控资源的URL。

由于我们的CDN提供商在不同地点有很多服务器,我们也需要从多个不同地点跟踪这个服务器。 我见过很多可以跟踪网站的服务,但是所有这些服务似乎都集中在衡量可用性和速度上,而对于这个问题我们更关注一致性。

所以我相信我们有以下select:

  1. find可以满足要求的托pipe监控服务。 有人知道吗?
  2. 使用代理服务器的列表/networking编写监视脚本。 有没有可靠的名单/服务呢?
  3. 使用tor出口节点规范编写脚本来跟踪我们来自不同位置的资源。
  4. 使用一些其他具有此function的CDN,并保证所有位置的资源的所有副本都是一致的。 但是我们仍然想要进行第三方监控。

有什么更好的办法? 你能否提出其他build议来解决我们的问题?

谢谢。

对不起,但这几乎是不可能的。

最好的方法是从CDN提供商处获得所有边缘服务器的IP地址列表,然后编写脚本来testing边缘位置的副本。 但是,我99%肯定你不会find一个能给你详细信息的CDN提供商,这个CDN的竞争非常激烈。

除了上面已知的IP列表之外, 使用CDN,您不能依赖DYI监视,或者Gomez,Pingdom或任何其他HTTP监视服务完成的HTTP监视。 CDN在许多城市都有边缘位置,并使用某种“智能”交通路线:

  • 地理感知DNS,即查找parsingDNScaching的 IP地址的位置,并在DNSparsing器附近提供对应于CDN POP的IP。
  • BGP 任播路由 。

因此,您的监控客户端将被定向到“最近的”CDN POP,并且无法监控其他CDN POP。 您必须在许多地方运行监控代理,然后才能确定涵盖所有CDN POP。

所有优秀的CDN都对自己的networking进行了广泛的监控,所以实际上应该没有理由自己复制它。 相反,我会build议考虑:

  • 切换到更好的CDN提供商?

  • 迫使CDN POP更频繁地驱逐他们的caching版本。 良好的CDN可以独立于HTTP Expires&Cache-Control标头所说的来pipe理其边缘上的cachingTTL。 这样,如果有不完整的文件,它会更快地刷新。

1)查看pingdom.com和websitepulse.com的监控位置
2)不可靠
3)不可靠
4)从来没有听说过

您是否与您的CDN提供商通话以检查可能的工具以满足您的监控需求? CDN可能会为您提供一个界面,专门为您的检查请求select一个镜像站点或区域。 我会把它当作第一的路线,因为其他的一切都不是真正的解决办法。

有代理目录,但这些是不可靠的,经常变化,如3molo所述。 您可能会考虑在云服务(例如AWS或Azure)上运行您自己的代理作为监控代理,但是这实际上取决于CDN使用的地理位置algorithm,如果这将反映“真实世界”检测并获得“正确“的服务器。

依靠一个不可靠的点对点基础设施来监控听起来像是一个坏主意,如果你没有其他select,可能只值得一试。