數(shù)字化時代,企業(yè)對快速采集日志的需求日益遞增,對于個人開發(fā)者和企業(yè)來說,日志采集也有的截然不同的復(fù)雜度。
“快速”這個需求的本質(zhì)在于,如何利用比較方便部署且成熟可靠的技術(shù)選型,來降低搭建一套能滿足業(yè)務(wù)訴求的日志平臺所需的時間成本,其中要解決的核心問題就是:日志架構(gòu)的復(fù)雜度。在此我們重點聚焦于企業(yè)用戶,深度解析企業(yè)級的日志平臺架構(gòu)建設(shè)復(fù)雜度以及建設(shè)思路分享。
01. 企業(yè)級日志架構(gòu)復(fù)雜度
一套企業(yè)級的日志平臺架構(gòu)建設(shè)復(fù)雜度總結(jié)歸納下來,主要體現(xiàn)在三個方面:
1)采集端部署分散
比較常用的采集器是開源的filebeat,filebeat功能強(qiáng)大,安裝配置也相對簡單。但問題在于,一旦需要采集的對象數(shù)量多起來,種類多起來,或者這些采集對象是動態(tài)變化的,即使單節(jié)點安裝簡易的filebeat也會需要花費大量的精力來安裝和維護(hù)。這也是很多企業(yè)在建設(shè)統(tǒng)一日志平臺面臨的一個實際問題。這時,運(yùn)維往往會寫腳本去批量下發(fā),能做到部分解決問題,但是后期的配置維護(hù)、版本更新等等,都將帶來新的問題。
那么,有什么方案可以解決呢?有,那就是采取集中管理的思路,由一個統(tǒng)一的控制中心,通過在不同節(jié)點上安裝代理來收集信息+下發(fā)配置。一般一個中大型企業(yè),基本都會有一套自己的agent來控制各方資源,agent往往是在虛擬機(jī)模板或者容器鏡像中就已經(jīng)打入,主要的作用也就是上報信息以及下發(fā)配置。日志的采集便可以利用好這種集中式的管理工具,基于agent做插件來充當(dāng)采集端,統(tǒng)一管理采集配置(包括路徑、級別、過濾、預(yù)處理等等)。
2)服務(wù)端部署組件多
對于個人開發(fā)者或小規(guī)模企業(yè)來說,部署組件多也許還可以接受。拿開源的ELK舉例,日志服務(wù)端部署需要Logstash集群和ES集群,以及一個Kibana的前端,完整一套集群也許就可以解決相當(dāng)體量的日志集中管理。但對于一家中大型企業(yè)來講,體量和業(yè)務(wù)復(fù)雜度上來之后,情況往往是非常復(fù)雜的。
這時建設(shè)人員可能會有一種思路:直接采用多套ELK,也能解決問題,部署也就寫個腳本的事情,批量復(fù)制,還可以做“物理隔離”。這樣確實行之有效,但這種方案會帶來另外的問題,就是日志無法進(jìn)一步聚合聚類,導(dǎo)致各業(yè)務(wù)的日志數(shù)據(jù)成了數(shù)據(jù)孤島,如果組織內(nèi)有那種橫向組織,他們就需要來回切換集群進(jìn)行諸如日志檢索,日志清洗等操作。
要解決這個問題,其實只需要再增加一個服務(wù)端,能夠?qū)⒎植荚诓煌珽LK的日志存儲統(tǒng)一管理起來,讓上述場景統(tǒng)一通過這個服務(wù)端提供的接口完成,也就能在使用日志的時候,不再受到存儲分散的影響。
3)性能要求高
日志數(shù)據(jù)不同于指標(biāo)類數(shù)據(jù),日志數(shù)據(jù)無論是從時間密度還是從空間密度上來說都要遠(yuǎn)遠(yuǎn)大于其他類型的觀測數(shù)據(jù)。因此,中大型企業(yè)的大型業(yè)務(wù)系統(tǒng)以及龐大的基礎(chǔ)設(shè)施產(chǎn)生的日志量讓企業(yè)開發(fā)者不得不思考這其中的性能和成本如何平衡。
總結(jié)三個關(guān)鍵的性能瓶頸以及對應(yīng)的解決方案:
① 分散到集中存儲所消耗的帶寬壓力:
② 清洗和存儲壓力:
③ 檢索響應(yīng)速度的壓力:
02. 整體技術(shù)架構(gòu)
1)整體技術(shù)架構(gòu)介紹
2)藍(lán)鯨平臺在騰訊內(nèi)部業(yè)務(wù)場景的探索
其實剛剛展示的這套日志架構(gòu),源自騰訊IEG藍(lán)鯨日志平臺的數(shù)據(jù)流示意圖。
藍(lán)鯨平臺在早期就將日志的各類應(yīng)用場景作為整個自動化運(yùn)營中的關(guān)鍵環(huán)節(jié),并規(guī)劃建造出了一套適合中大型企業(yè)使用的日志平臺。直至目前,藍(lán)鯨日志平臺已經(jīng)歷經(jīng)上百次的迭代,在騰訊內(nèi)部積累了大量的實踐經(jīng)驗,支持了上千項業(yè)務(wù)的日志需求,總結(jié)出了不少技術(shù)優(yōu)化舉措,在此結(jié)合這個話題進(jìn)行分享總結(jié)。
3)關(guān)鍵技術(shù)優(yōu)化舉措&經(jīng)驗
4)實踐效果
通過Agent,支持各類日志的采集。
統(tǒng)一服務(wù)端后,使用索引集進(jìn)行跨節(jié)點的日志檢索。
配合grafana分析日志清洗后的指標(biāo)數(shù)據(jù)(以Nginx訪問日志為例)。
SRE轉(zhuǎn)型:銀行SRE和虛擬IT組織的協(xié)作
查看詳細(xì)
提升軟件測試效率與質(zhì)量:基于CTest的結(jié)構(gòu)化測試用例設(shè)計與執(zhí)行
查看詳細(xì)
SRE轉(zhuǎn)型:銀行SRE和DevOps團(tuán)隊的協(xié)作
查看詳細(xì)
嘉為藍(lán)鯨CPack制品庫:全新支持“純血”鴻蒙制品
查看詳細(xì)
DeepSeek 最新技術(shù)趨勢:運(yùn)維人員如何提升告警管理效能?
查看詳細(xì)
SRE轉(zhuǎn)型:銀行SRE模式推廣策略
查看詳細(xì)
申請演示