【CSDN 編者按】在數(shù)據(jù)安全管理體系的背后,離不開對安全日志數(shù)據(jù)的存儲(chǔ)與分析。以終端設(shè)備為例,中國聯(lián)通每天會(huì)產(chǎn)生百億級別的日志數(shù)據(jù),對于保障網(wǎng)絡(luò)安全、提高系統(tǒng)穩(wěn)定性和可靠性具有至關(guān)重要的作用。目前,Apache Doris 在聯(lián)通體系的落地已支持了 30 多條業(yè)務(wù)線和數(shù)百個(gè)實(shí)時(shí)作業(yè),不僅幫助聯(lián)通實(shí)現(xiàn)了萬億級安全日志的高效分析和低成本,也為其他運(yùn)營商提供了成功的參考案例和學(xué)習(xí)經(jīng)驗(yàn),對推動(dòng)運(yùn)營商的數(shù)字化轉(zhuǎn)型進(jìn)程具有重要意義。 作者 | 大數(shù)據(jù)開發(fā)工程師 劉宇麒 責(zé)編 | 夏萌 聯(lián)通西部創(chuàng)新研究院是中國聯(lián)通在西部地區(qū)布局的重要載體,也是中國聯(lián)通數(shù)字化創(chuàng)新能力體系的重要組成部分,承載了集團(tuán)公司科技創(chuàng)新體系和數(shù)字化創(chuàng)新體系的需求。依托聯(lián)通數(shù)科的優(yōu)質(zhì)資源及能力底座,在云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能、網(wǎng)絡(luò)安全等業(yè)務(wù)領(lǐng)域具備深厚的技術(shù)能力和豐富的項(xiàng)目經(jīng)驗(yàn)。 近些年來,網(wǎng)絡(luò)高危漏洞數(shù)量的增長、DDoS 攻擊比例的提升、惡意 Bot 流量的持續(xù)上升使得 Web 安全威脅態(tài)勢愈發(fā)嚴(yán)峻,而數(shù)字化轉(zhuǎn)型進(jìn)程的推進(jìn)在豐富業(yè)務(wù)創(chuàng)新的同時(shí)、也提升了網(wǎng)絡(luò)空間復(fù)雜度、進(jìn)一步加劇了網(wǎng)絡(luò)安全風(fēng)險(xiǎn)。這樣的背景之下,聯(lián)通以攻防實(shí)戰(zhàn)對抗為目標(biāo)、進(jìn)行國家級網(wǎng)絡(luò)空間的安全治理工作,圍繞“云-管-端-數(shù)”構(gòu)建 了多級綜合防控體系,聚焦于實(shí)時(shí)監(jiān)測、攻擊溯源、通報(bào)預(yù)警、應(yīng)急處置、情報(bào)共享等工作,構(gòu)建數(shù)據(jù)全生命周期安全管理體系,為客戶提供從頂層設(shè)計(jì)到運(yùn)營維護(hù)一站式服務(wù)。 在數(shù)據(jù)安全管理體系的背后,離不開對安全日志數(shù)據(jù)的存儲(chǔ)與分析。以終端設(shè)備為例,每天會(huì)產(chǎn)生海量的設(shè)備日志,這些日志數(shù)據(jù)記錄著各種網(wǎng)絡(luò)時(shí)間和系統(tǒng)操作的細(xì)節(jié)信息,對于保障網(wǎng)絡(luò)安全、提高系統(tǒng)穩(wěn)定性和可靠性具有至關(guān)重要的作用。為了更好的管理和分析安全日志數(shù)據(jù),聯(lián)通西部創(chuàng)新研究院應(yīng)集團(tuán)要求構(gòu)建一個(gè)集中化日志數(shù)據(jù)分析平臺(tái),滿足對事件和日志數(shù)據(jù)自動(dòng)化采集、存儲(chǔ)、管理、分析和可視化的訴求。這要求集中化數(shù)據(jù)分析平臺(tái)具備以下能力:
為搭建具備上述能力的集中化日志數(shù)據(jù)分析平臺(tái),在正式搭建之前,結(jié)合日志數(shù)據(jù)的特性及業(yè)務(wù)要求,我們需要綜合考慮考慮如何滿足以下要求,以確保平臺(tái)能高效的支持聯(lián)通日志分析場景的實(shí)際應(yīng)用:
在中國聯(lián)通安全日志數(shù)據(jù)分析平臺(tái)的迭代過程中,經(jīng)歷了從基于 Hive 的離線數(shù)據(jù)倉庫到以 Apache Doris 為核心的實(shí)時(shí)數(shù)據(jù)倉庫。從具體業(yè)務(wù)收益來講,Apahce Doris 的引入支持了聯(lián)通 30+ 條業(yè)務(wù)線和數(shù)百個(gè)實(shí)時(shí)作業(yè),為聯(lián)通帶來了存儲(chǔ)資源節(jié)約 50%、百億級別數(shù)據(jù)查詢秒級響應(yīng)、數(shù)據(jù)導(dǎo)入效率提升 60% 的顯著成果,成功實(shí)現(xiàn)了降本增效的業(yè)務(wù)目標(biāo);從集團(tuán)整體價(jià)值來講,通過該平臺(tái),聯(lián)通可以更好地監(jiān)控運(yùn)營狀態(tài)、保障網(wǎng)絡(luò)安全,為運(yùn)營商安全管理體系提供了重要的底層支持??偠灾?Apache Doris 在聯(lián)通體系的落地,不僅幫助聯(lián)通實(shí)現(xiàn)了萬億級安全日志的高效分析和低成本,也為其他運(yùn)營商提供了成功的參考案例和學(xué)習(xí)經(jīng)驗(yàn),對運(yùn)營商數(shù)字化轉(zhuǎn)型進(jìn)程的推進(jìn)有著重要作用。 基于Hive的離線數(shù)據(jù)倉庫 在項(xiàng)目一期建設(shè)中,我們以 Apache Hive 為核心建立了離線數(shù)倉,并在其此礎(chǔ)上進(jìn)行了數(shù)據(jù)倉庫分層。當(dāng)原始數(shù)據(jù)經(jīng)過數(shù)據(jù)采集進(jìn)入離線數(shù)倉后,由 Spark 逐層進(jìn)行處理,并配合 Apache DolphinScheduler 以分鐘級調(diào)度執(zhí)行計(jì)算作業(yè),最終將數(shù)據(jù)輸出至 OLAP 和應(yīng)用數(shù)據(jù)庫。 從業(yè)務(wù)的角度來看,該架構(gòu)數(shù)據(jù)流的痛點(diǎn)問題在于數(shù)據(jù)實(shí)時(shí)性不足,主要受限于 Hive 的離線批處理模式,端到端的延遲最短竟然需要 10 分鐘。 其次,我們在該架構(gòu)中選擇了 ClickHouse 作為 OLAP 引擎,但在實(shí)際使用場景中發(fā)現(xiàn) ClickHouse 存在以下不足:
系統(tǒng)選型及落地 隨著一期架構(gòu)問題的逐步暴露,我們迫切需要對數(shù)據(jù)分析平臺(tái)進(jìn)行更新迭代。對于二期建設(shè)來說,提升數(shù)據(jù)的實(shí)時(shí)性被確立為首要目標(biāo),為了實(shí)現(xiàn)這一目標(biāo),我們計(jì)劃增加實(shí)時(shí)數(shù)據(jù)處理鏈路,以更好地實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)收集、處理和查詢要求,為系統(tǒng)穩(wěn)定和網(wǎng)絡(luò)安全提供更有力的支持和保障。其次,為解決一期平臺(tái)存在的并發(fā)能力不足、多表 Join 性能低等核心問題,提升 OLAP 引擎性能成為二期建設(shè)的的另一關(guān)鍵目標(biāo),因此亟需對一期平臺(tái)中 OLAP 引擎 ClickHouse 進(jìn)行替換,以滿足業(yè)務(wù)側(cè)日益嚴(yán)格的數(shù)據(jù)分析和處理需求。 在此背景下,我們考慮是否可以只選擇一個(gè)新的實(shí)時(shí)數(shù)據(jù)倉庫同時(shí)滿足以上兩個(gè)目標(biāo),一方面即能幫助我們構(gòu)建實(shí)時(shí)數(shù)據(jù)分析處理鏈路,另一方面又可以作為性能更強(qiáng)悍、更易用的 OLAP 分析引擎,這樣不僅可以簡化數(shù)據(jù)處理流程、提高實(shí)時(shí)效率,而且可以降低平臺(tái)運(yùn)維管理的成本。 為了找到符合條件的數(shù)據(jù)庫,我們進(jìn)行了多方調(diào)研和對比研究,最終選擇以 Apache Doris 為核心來構(gòu)建統(tǒng)一的實(shí)時(shí)數(shù)據(jù)倉庫體系。為了直觀展示 Apache Doris 的性能和功能特點(diǎn),我們使用 Apache Doris 與 ClickHouse 進(jìn)行了對比,其中最直觀的感受是 Apache Doris 在系統(tǒng)并發(fā)、Join 性能以及多個(gè)功能的易用性都更為領(lǐng)先。 基于Doris的實(shí)時(shí)數(shù)據(jù)倉庫 在項(xiàng)目二期的建設(shè)中,我們使用 Apache Doris 替換了 Hive 成功搭建實(shí)時(shí)數(shù)據(jù)倉庫,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)采集、處理和分析,同時(shí)使用 Apache Doris 替換 ClickHouse 作為 OLAP 引擎。架構(gòu)工作機(jī)制如下所示:
新架構(gòu)的應(yīng)用實(shí)踐 日增百億數(shù)據(jù),穩(wěn)定快速導(dǎo)入 數(shù)據(jù)分析平臺(tái)平均每天有 150 億的業(yè)務(wù)日志數(shù)據(jù)新增,面對如此大規(guī)模的數(shù)據(jù)量,我們需要考慮如何將數(shù)據(jù)快速實(shí)時(shí)穩(wěn)定入庫。經(jīng)調(diào)研,Doris Flink Connector 組件(主要依賴 Doris Stream Load )可以實(shí)現(xiàn)海量數(shù)據(jù)快速導(dǎo)入。并且其使用非常簡單,只需要導(dǎo)入相關(guān)依賴包進(jìn)行簡單的配置即可進(jìn)行。在應(yīng)用 Doris Flink Connector 后,數(shù)據(jù)寫入性能可達(dá)到每秒 20-30 萬條,極大地提升了數(shù)據(jù)導(dǎo)入的速度和效率,同時(shí)也不會(huì)對正常的數(shù)據(jù)分析造成干擾。 在采用 Flink 進(jìn)行高頻實(shí)時(shí)寫入 Doris 時(shí),如果未合理調(diào)整參數(shù)配置,可能導(dǎo)致數(shù)據(jù)版本堆積。為避免該問題,我們進(jìn)行了以下調(diào)整優(yōu)化:
通過以上優(yōu)化措施,每日新增的百億數(shù)據(jù)可以平穩(wěn)導(dǎo)入 Doris 中,整個(gè)導(dǎo)入過程中 BE 表現(xiàn)穩(wěn)定,Compaction Score 始終保持低位,大批量數(shù)據(jù)的寫入對于前端查詢的性能也沒有造成任何影響。同時(shí)在 Doris 的 Unique Key 模型的加持下,我們可以利用 Flink 對輸入數(shù)據(jù)進(jìn)行關(guān)聯(lián)、聚合等處理,再以微批、精準(zhǔn)一次性寫入 Doris 中,實(shí)現(xiàn)了數(shù)據(jù)秒級更新。 存儲(chǔ)資源合理配置,成本節(jié)約 50% 日志數(shù)據(jù)具有非常大的數(shù)據(jù)量和數(shù)據(jù)增長速度,如果不對存儲(chǔ)資源進(jìn)行合理分配和控制,存儲(chǔ)成本將會(huì)成為一個(gè)巨大的負(fù)擔(dān)。日志數(shù)據(jù)中也會(huì)存在重要性的區(qū)分,有一定比例的數(shù)據(jù)價(jià)值密度比較低,如果毫無差別的將這些數(shù)據(jù)都存儲(chǔ)下來,不僅會(huì)造成存儲(chǔ)浪費(fèi),也會(huì)增加數(shù)據(jù)分析的難度。為了有效解決這些問題,我們采用了一系列策略來降低數(shù)據(jù)存儲(chǔ)成本:
借助于 Doris 極高效率的壓縮算法、冷熱數(shù)據(jù)分層管理、分區(qū)級副本設(shè)置等功能,可對存儲(chǔ)資源合理分配,最終實(shí)現(xiàn)存儲(chǔ)成本節(jié)約 50%,成功達(dá)到性能和成本的平衡。 數(shù)據(jù)規(guī)模分級查詢,查詢速度提升 10+ 倍 日志中包含了許多對分析及時(shí)性要求非常高的數(shù)據(jù),例如異常事件、故障信息等,因此為了保障日志數(shù)據(jù)的查詢效率,我們以數(shù)據(jù)量的級別為基準(zhǔn)采用了不同的查詢策略:
在一期數(shù)據(jù)分析平臺(tái)中,大部分業(yè)務(wù)場景都是通過 T+1 的方式進(jìn)行計(jì)算。而在基于 Doris 的二期數(shù)據(jù)分析平臺(tái)中,我們實(shí)現(xiàn)了對大部分業(yè)務(wù)準(zhǔn)實(shí)時(shí)(分鐘以及小時(shí)級)和實(shí)時(shí)計(jì)算場景的支持。同時(shí)結(jié)合以上優(yōu)化措施,極大降低了各種維度指標(biāo)的統(tǒng)計(jì)時(shí)間,以往需要分鐘級別的明細(xì)查詢,現(xiàn)在可以在毫秒級別迅速響應(yīng),極大地改善了用戶體驗(yàn);另外,在 Doris 中,我們能夠快速對百億級別的大表進(jìn)行不同維度的數(shù)據(jù)分析,只需要幾秒即可獲得查詢結(jié)果,大大提高了聯(lián)通各業(yè)務(wù)部門數(shù)據(jù)分析的能力。 收益總結(jié) 自引入 Apache Doris 以來,我們已經(jīng)部署了多個(gè)集群、數(shù)十臺(tái)機(jī)器,支持了中國聯(lián)通 30 多條業(yè)務(wù)線和數(shù)百個(gè)實(shí)時(shí)作業(yè),日增日志數(shù)據(jù)百億級別,單個(gè)集群的數(shù)據(jù)規(guī)模達(dá)到數(shù) PB 。Apache Doris 的成功應(yīng)用為聯(lián)通帶來了多方面收益,主要包括如下方面: 在數(shù)據(jù)導(dǎo)入方面,對于聯(lián)通而言,每天都面臨著龐大的日志增量,并且這些數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性對于業(yè)務(wù)發(fā)展和決策至關(guān)重要,而 Doris Flink Connector 幫助我們實(shí)現(xiàn)了數(shù)據(jù)快速且穩(wěn)定導(dǎo)入,可輕松應(yīng)對日增百億數(shù)據(jù)的導(dǎo)入要求,為后續(xù)的數(shù)據(jù)處理和分析提供了更高效的解決方案。 在存儲(chǔ)資源分配方面,由于數(shù)據(jù)量龐大、存儲(chǔ)周期長等原因,日志數(shù)據(jù)的存儲(chǔ)成本一直是運(yùn)營商面臨的難題,通過采用 Doris 高效的壓縮算法、冷熱數(shù)據(jù)精細(xì)管理、分區(qū)級副本設(shè)置等功能,幫助我們降低了數(shù)據(jù)存儲(chǔ)成本,數(shù)據(jù)存儲(chǔ)利用效率和價(jià)值得到顯著提升。 在查詢性能方面,快速獲取日志數(shù)據(jù)查詢結(jié)果可以幫助運(yùn)營商及時(shí)掌控網(wǎng)絡(luò)及系統(tǒng)情況,及時(shí)發(fā)現(xiàn)并解決問題,也有利于及時(shí)了解用戶需求和行為,優(yōu)化營銷策略和服務(wù)方案。Doris 在查詢性能方面提供了強(qiáng)大的支持, 能夠處理百億級別大表按小時(shí)/天級別的明細(xì)查詢,并支持不同維度聚合查詢分析。業(yè)務(wù)線整體響應(yīng)時(shí)間可在秒級或毫秒級別完成,甚至可以在 1-2s 內(nèi)完成對 20 億條數(shù)據(jù)的查詢,查詢速度較之前提升了 10+ 倍。 未來規(guī)劃 在最新發(fā)布的 Apache Doris 2.0 版本中,Apache Doris 提供了大量新的功能,比如 和 等,對于日志分析場景來說都是具有重要意義的更新。目前我們是以數(shù)據(jù)存儲(chǔ)周期為基準(zhǔn)進(jìn)行副本分配,并按照數(shù)據(jù)熱度分別存儲(chǔ)在 SSD 和 HDD 中,后續(xù)我們將使用冷熱數(shù)據(jù)分層新功能,將數(shù)據(jù)從 SSD 或者 HDD 下沉到對象存儲(chǔ)中,從而降低數(shù)據(jù)存儲(chǔ)成本,進(jìn)一步達(dá)到服務(wù)器磁盤資源節(jié)省的目的。此外,我們正在對倒排索引功能進(jìn)行測試,并計(jì)劃先在小范圍業(yè)務(wù)場景推廣使用,倒排索引對于字符串類型的全文檢索和普通數(shù)值、日期等類型的等值、范圍檢索具有更高效的支持,希望通過倒排索可以幫助我們進(jìn)一步提高日志數(shù)據(jù)查詢的效率和準(zhǔn)確度。 除此之外,基于聯(lián)通的使用場景,我們對自動(dòng)分桶功能提出一些建議。目前自動(dòng)分桶計(jì)算邏輯是根據(jù)最近的分區(qū)數(shù)據(jù)量來動(dòng)態(tài)決定當(dāng)前分區(qū)的分桶數(shù)目,這種方式適用于分區(qū)數(shù)據(jù)量呈線性關(guān)系的業(yè)務(wù)表。然而,由于我們的業(yè)務(wù)表在白天的數(shù)據(jù)量較多,夜晚數(shù)據(jù)量較少,因此使用自動(dòng)分桶會(huì)導(dǎo)致白天部分分區(qū)具有較少的分桶,而夜晚分區(qū)則具有較多的分桶。因此,未來我們期望社區(qū)可以增加一種新的分桶規(guī)則,以前一天的數(shù)據(jù)分區(qū)存儲(chǔ)情況為參照,來對當(dāng)天的分區(qū)進(jìn)行自動(dòng)分桶,這樣可以更加準(zhǔn)確的根據(jù)業(yè)務(wù)表特點(diǎn)進(jìn)行自動(dòng)分桶。當(dāng)然我們也將對該功能的優(yōu)化進(jìn)行探索,及時(shí)與社區(qū)交流,將最新的優(yōu)化代碼貢獻(xiàn)到社區(qū),共同推動(dòng)社區(qū)的發(fā)展進(jìn)步。 |
|