Cloudflare日志丢失事件简介

关键点

Cloudflare因软件漏洞导致约55的日志在35小时内丢失。每天,Cloudflare为客户生成约45万亿个事件日志,涵盖请求、合规等用途。问题源于Logpush系统的配置错误,导致日志未能正常转发。该事件暴露了Cloudflare在处理大规模日志时的过载问题。

Cloudflare最近在一篇博客中披露,由于软件错误,导致在2024年11月14日的35小时内,约55的日志未能送达其客户。该公司表示,它的全球服务网络中的每个部分都会生成包含详细元数据的事件日志,这些日志对客户至关重要,能够用于合规、可观察性和会计等多个方面。

xfs8cc旋风加速官网

例如,每当有请求发送至Cloudflare的内容分发网络CDN时,系统就会生成一条日志。该公司通常每天会向客户发送大约45万亿个独立的事件日志。

此次问题的根本原因是Cloudflare对Logpush系统的更改。Logpush负责将来自Cloudflare服务器网络的单个日志收集成批,并推送给客户。虽然客户可以选择直接从每台服务器接收日志,但大多数客户并不这样做。

“可以类比想象邮政服务在递送每封信件时,逐一按门铃,而不是一次按一次包裹的门铃,”Cloudflare在博客中解释道。 “在每秒成千上万的信件的情况下,这种单独的交易数量将变得不可承受。”

在为Logpush添加对其他数据集的支持时,Cloudflare需要向名为Logfwdr的组件添加新的配置,以指示应该将哪些客户的日志转发到新的数据流中。然而,由于系统中的一个错误,它向Logfwdr发送了一个空配置,错误地指示没有客户的日志需要被推送。尽管这个问题在不到五分钟内被迅速发现并回滚,但设计用于处理此类问题的故障保护却反向导致了问题。

当Logfwdr的配置不可用时,故障保护将尝试向所有客户发送日志。这次五分钟的故障导致待发送日志数量激增,超负荷出现了缓冲系统Buftee,导致其无法响应。

Buftee为每个Logpush任务提供缓冲,包含100来自相关区域或账户生成的日志,因此处理一个客户的任务失败不会影响其它任务的进度。尽管其具备防止被海量缓冲信息淹没的安全措施,但Cloudflare表示这些措施并未被正确配置。

“短暂的错误配置仅持续五分钟,却造成了巨大的过载,让我们耗费数小时来修复和恢复,”该博客指出。“由于我们的备用系统未被正确配置,底层系统过载到无法正常交互的程度,以至于需要进行完整的重置和重启。”

为了防止类似问题的再次发生,“我们正在创建警报,以确保这些特定的错误配置不会被忽视,同时我们也在解决触发该事件的具体错误和相关测试。”

漏洞导致 Cloudflare 丢失客户日志 在线