由于软件部署不当,Cloudflare 发生 CPU 耗尽故障

阅读数:10023 2019 年 7 月 3 日 14:02

由于软件部署不当,Cloudflare 发生 CPU 耗尽故障

7 月 2 日,全球内容传递网络 CDN 加速服务商 Cloudflare 出现故障,受该故障影响,许多网站出现了宕机,最明显的就是在访问时提示 502 错误,即当用户访问站点时,浏览器向托管页面的服务器发送请求,服务器可以接受请求,但无法完成请求。

由于软件部署不当,Cloudflare 发生 CPU 耗尽故障

图片来源:TechTudo,Cloudflare 下线,用户看到消息“502 Bad Gateway”

事故原因

故障发生之后,Cloudflare 针对此问题积极进行了修复,Cloudflare 首席执行官 Matthew Prince 表示此次宕机事件并非黑客攻击所引发的,而是服务器超载了,其在 Twitter 上写道:“由于 CPU 出现大幅飙升,导致主系统和备份系统崩溃。我们关闭导致 CPU 峰值的进程。服务在约 30 分钟内恢复正常。我们现在正在调查导致此次事故的根本原因。 ”

根据 Cloudflare 博客的描述,导致此次中断的原因是在新 Cloudflare WAF 托管规则的例行部署期间,在 Cloudflare Web 应用程序防火墙(WAF)中部署了一个配置错误的规则。

新规则的目的是改进阻止攻击中使用的内联 JavaScript,并以模拟模式进行部署,在这种模式下,新规则会识别并记录问题,但实际上不会阻止任何客户流量,因此我们可以测量假阳性率,并确保新规则在部署到完整生产环境中时不会出现问题。

但不幸的是,其中一个规则包含了一个正则表达式,导致 Cloudflare 全球机器上的 CPU 峰值达到 100%,而这 100% 的 CPU 峰值导致了前面客户看到的 502 错误。在最糟糕的时候,流量下降了 82%。

由于软件部署不当,Cloudflare 发生 CPU 耗尽故障

一个 POP 中的 CPU 峰值

在我们所知道的所有反向代理服务网站中,有 78.9%在使用 Cloudflare。如果我们再把范围扩大到所有网站,全球有 9.6% 的网站在使用 Cloudflare 的服务。因此,Cloudflare 此次事故影响范围十分广泛,印度、菲律宾、塞尔维亚、巴西、巴基斯坦和伊拉克等全球多个地区都遭遇了服务器错误。还有媒体报道称,Cloudflare 的名字目前已经排在了 Twitter 的全球趋势话题中的第二位。

Cloudflare 官方博客公布的受影响地区名单:

由于软件部署不当,Cloudflare 发生 CPU 耗尽故障

Cloudflare 十周年之际遇故障

Cloudflare 是一家成立于 2009 年的互联网性能和安全公司,2019 年 Cloudflare 称除了 75 个国家的 175 个数据中心之外,还向超过 1600 万个域、站点、API、移动应用程序和任何连接到互联网的东西提供服务,网络容量为 30Tbps。

6 月 24 日,Cloudflare 就已经发生过一次故障。当时的起因是宾夕法尼亚州的一家小型 ISP AS33154 - DQE Communications 使用 Noction 的 BGP 优化器优化其内部网络的路由,由于错误配置,向客户 Allegheny 宣布了特定的路由信息,然后这些路由信息又发给了转运服务商 Verizon,而 Verizon 不加甄选的接受了路由公告,导致流量路由经过了一家小型 ISP,导致了包括亚马逊、Cloudflare 和 Facebook 等公司的服务无法访问。

故障发生时,Cloudera 正在庆祝十周年生日,随后 Cloudflare 发布声明称:“今天早些时候,大范围的 BGP 路由泄漏影响了许多 Internet 服务和 Cloudflare 的一部分流量。Cloudflare 的所有系统继续正常运行, 但我们的一部分域的流量无法到达我们。此时,网络中断已修复,流量级别恢复正常。”

据了解在 6 月 24 日发生的事故中,受影响的公司包括播客应用程序 Overcast、聊天服务 Discord、托管服务提供商 WP Engine 、电子商务托管服务商 Sonassi、公共网络前端 CDN 服务 CDNJS,以及其它依赖网络托管或者是与 Cloudflare 合作提供其 CDN 服务的网站,比较讽刺的是,用于检查 Web 服务中断的 DownDetector 站点也受到了影响。

评论

发布