配置bug讓Cloudflare遺失55%的客戶日志

來源:十輪網(wǎng)
作者:十輪網(wǎng)
時間:2024-11-29
2410
提供內(nèi)容傳遞網(wǎng)絡(luò)及安全服務(wù)的Cloudflare本周坦承,該公司在11月14日,因為內(nèi)部系統(tǒng)一連串的bug,在短短5分鐘的錯誤配置中,便遺失了55%的客戶日志。

提供內(nèi)容傳遞網(wǎng)絡(luò)及安全服務(wù)的Cloudflare本周坦承,該公司在11月14日,因為內(nèi)部系統(tǒng)一連串的bug,在短短5分鐘的錯誤配置中,便遺失了55%的客戶日志。

Cloudflare的網(wǎng)絡(luò)是由分布在全球330個城市的系統(tǒng)組成,它們支持多項服務(wù),且系統(tǒng)的每個部分都會產(chǎn)生事件日志,并將它們發(fā)送給客戶,供客戶執(zhí)行合規(guī)性管理、系統(tǒng)觀察,或是會計。Cloudflare平均每天會處理50兆個客戶事件日志,但僅有不到10%、約4.5兆個會發(fā)送給客戶。

Cloudflare的日志處理架構(gòu),包括負責(zé)從全球服務(wù)器接受并批量轉(zhuǎn)發(fā)日志的Logfwdr,接收批量日志并進一步將它們分配至緩沖區(qū)的Logreceiver,管理超過100萬個日志緩沖區(qū)的Buftee,以及將日志推送到客戶指定地點的Logpush。

在11月14日那天,為了支持新的數(shù)據(jù)集以處理額外的日志類型,Cloudflare更新了Logpush的配置,配置系統(tǒng)需要將該配置發(fā)送給Logfwdr,但配置系統(tǒng)發(fā)送給Logfwdr的文件卻是空白的,因而觸發(fā)了Logfwdr內(nèi)部的“故障開放”(Fail Open)機制。

該機制是一種系統(tǒng)設(shè)計策略,在發(fā)生故障時,系統(tǒng)默認選擇開放狀態(tài),也即寧可多做也不要停止服務(wù),在Cloudflare的日志系統(tǒng)上發(fā)生時,它便選擇替所有的客戶發(fā)送日志。

盡管Cloudflare很快就發(fā)現(xiàn)該錯誤,并在5分鐘內(nèi)恢復(fù)了該變更,但Logfwdr已根據(jù)Fail Open發(fā)送日志給大量客戶,而Buftee原本有防護機制,卻因配置問題而未被正確激活,導(dǎo)致Buftee所管理的日志緩沖區(qū)數(shù)量,很快就從一百多萬個快速增加到4,000萬個。

8CEAC868-17AB-4971-8BF2-2036842333E6.jpeg

圖片來源/Cloudflare

只有短短5分鐘的錯誤配置便造成了巨大的重載,導(dǎo)致底層系統(tǒng)重載而無法正常運行,需要全面的重置與重新啟動。這起意外從配置系統(tǒng)出錯、Fail Open的設(shè)計、Buftee的保護機制未被啟動,一直到恢復(fù),總計持續(xù)了3.5個小時,造成Cloudflare原本應(yīng)該發(fā)送給客戶的日志中,有55%并未發(fā)送而且完全遺失。

Cloudflare表示,大規(guī)模系統(tǒng)中的故障是無可避免的,但子系統(tǒng)必須具備自我保護機制,以防止來自其他部分的故障引發(fā)連鎖反應(yīng),在此次的事故中,系統(tǒng)某部分的配置錯誤導(dǎo)致了另一部分的重載,而另一部分的系統(tǒng)也存在著配置問題,如果正確的配置,即可避免日志遺失。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:十輪網(wǎng)
版權(quán)說明:本文內(nèi)容來自于十輪網(wǎng),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多