Cloudflare承认11月14日的软件更新导致55%的客户日志永久性丢失
2024 年 11 月 14 日 Cloudflare 日志服务出现故障导致无法输出日志,尽管 Cloudflare 工程师已经尽力修复,但日志服务依然中断 3.5 小时并且丢失大约 55% 的日志,这些日志因为是永久性丢失因此无法恢复。
日志服务通常对网络服务来说至关重要,因为可以通过日志分析访问数据、排查故障和找到潜在的恶意攻击等情况,因此日志服务故障也属于严重问题。
在最新发布的事故调查报告中 Cloudflare 承认此次故障的主要原因是部署的软件更新存在错误,这导致 Cloudflare Logs 没有正确向客户发送日志信息。
由于日志通常都是极多的数据所以 Cloudflare 使用名为 Logpush 的工具将日志分割成可预测大小的包,这些包再通过合理的节奏推送给客户用于分析。
11 月 14 日 Cloudflare 工程师对 Logpush 进行更改支持更多额外的数据集,但这次更改有个致命缺陷:忘记告诉 Logfwdr 等工具需要给推送给客户,因此日志确实是被收集了但没有推送给客户保存,随后这些日志缓存被清理后就是永久消失。
此次软件更新仅在部署 5 分钟后 Cloudflare 工程师就发现了问题并执行回滚,然而这触发了另一个 Logfwdr 错误:在 Logpush 混乱的情况下,所有客户的所有日志事件全部都会推送到系统中,而不仅仅是那些已经配置了 Logpush 定时作业的客户。
由此产生极其庞大的日志导致 Cloudflare Logs 服务出现异常,由此导致大量日志文件彻底丢失,这些丢失日志文件既没有推送给客户存储,也没有被 Cloudflare 系统存储保存,所以就是彻底没了。
Cloudflare 针对此事道歉并表示部署方案避免此类事件再次发生,不过现在工作尚未全部完成。