所屬的技術(shù)人員能夠理解,本發(fā)明的各個方面可以實現(xiàn)為系統(tǒng)、方法或程序產(chǎn)品。因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件實施方式(包括固件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“平臺”。圖3是本發(fā)明的基于策略中臺的流量處理設(shè)備的結(jié)構(gòu)示意圖。下面參照圖3來描述根據(jù)本發(fā)明的這種實施方式的電子設(shè)備600。圖3顯示的電子設(shè)備600僅僅是一個示例,不應(yīng)對本發(fā)明實施例的功能和使用范圍帶來任何限制。如圖3所示,電子設(shè)備600以通用計算設(shè)備的形式表現(xiàn)。電子設(shè)備600的組件可以包括但不限于:至少一個處理單元610、至少一個存儲單元620、連接不同平臺組件(包括存儲單元620和處理單元610)的總線630、顯示單元640等。其中,存儲單元存儲有程序代碼,程序代碼可以被處理單元610執(zhí)行,使得處理單元610執(zhí)行本說明書上述方法部分中描述的根據(jù)本發(fā)明各種示例性實施方式的步驟。例如,處理單元610可以執(zhí)行如圖1中所示的步驟。存儲單元620可以包括易失性存儲單元形式的可讀介質(zhì),例如隨機存取存儲單元(ram)6201和/或高速緩存存儲單元6202,還可以進一步包括只讀存儲單元(rom)6203。存儲單元620還可以包括具有一組(至少一個)程序模塊6205的程序/實用工具6204,這樣的程序模塊6205包括但不限于:操作系統(tǒng)、一個或者多個應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)??偩€630可以為表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲單元總線或者存儲單元控制器、外圍總線、圖形加速端口、處理單元或者使用多種總線結(jié)構(gòu)中的任一總線結(jié)構(gòu)的局域總線。電子設(shè)備600也可以與一個或多個外部設(shè)備700(例如鍵盤、指向設(shè)備、藍牙設(shè)備等)通信,還可與一個或者多個使得用戶能與該電子設(shè)備600交互的設(shè)備通信,和/或與使得該電子設(shè)備600能與一個或多個其它計算設(shè)備進行通信的任何設(shè)備(例如路由器、調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(i/o)接口650進行。并且,電子設(shè)備600還可以通過網(wǎng)絡(luò)適配器660與一個或者多個網(wǎng)絡(luò)(例如局域網(wǎng)(lan),廣域網(wǎng)(wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。網(wǎng)絡(luò)適配器660可以通過總線630與電子設(shè)備600的其它模塊通信。應(yīng)當明白,盡管圖中未示出,可以結(jié)合電子設(shè)備600使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、raid系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲平臺等。本發(fā)明實施例還提供一種計算機可讀存儲介質(zhì),用于存儲程序,程序被執(zhí)行時實現(xiàn)的基于策略中臺的流量處理方法的步驟。在一些可能的實施方式中,本發(fā)明的各個方面還可以實現(xiàn)為一種程序產(chǎn)品的形式,其包括程序代碼,當程序產(chǎn)品在終端設(shè)備上運行時,程序代碼用于使終端設(shè)備執(zhí)行本說明書上述方法部分中描述的根據(jù)本發(fā)明各種示例性實施方式的步驟。如上所示,該實施例本發(fā)明的基于策略中臺的流量處理系統(tǒng)能夠利用kafka和flink的各種特性,實現(xiàn)了百萬級qps數(shù)據(jù)量毫秒級實時策略分析,數(shù)據(jù)處理的無積壓,無延遲,穩(wěn)定運行。圖4是本發(fā)明的計算機可讀存儲介質(zhì)的結(jié)構(gòu)示意圖。參考圖4所示,描述了根據(jù)本發(fā)明的實施方式的用于實現(xiàn)上述方法的程序產(chǎn)品800,其可以采用便攜式緊湊盤只讀存儲器(cd-rom)并包括程序代碼,并可以在終端設(shè)備,例如個人電腦上運行。然而,本發(fā)明的程序產(chǎn)品不限于此,在本文件中,可讀存儲介質(zhì)可以是任何包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。程序產(chǎn)品可以采用一個或多個可讀介質(zhì)的任一組合??勺x介質(zhì)可以是可讀信號介質(zhì)或者可讀存儲介質(zhì)??勺x存儲介質(zhì)例如可以為但不限于電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任一以上的組合??勺x存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任一合適的組合。計算機可讀存儲介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了可讀程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任一合適的組合。可讀存儲介質(zhì)還可以是可讀存儲介質(zhì)以外的任何可讀介質(zhì),該可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序??勺x存儲介質(zhì)上包含的程序代碼可以用任何適當?shù)慕橘|(zhì)傳輸,包括但不限于無線、有線、光纜、rf等等,或者上述的任一合適的組合??梢砸砸环N或多種程序設(shè)計語言的任一組合來編寫用于執(zhí)行本發(fā)明操作的程序代碼,程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言—諸如java、c++等,還包括常規(guī)的過程式程序設(shè)計語言—諸如“c”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算設(shè)備上部分在遠程計算設(shè)備上執(zhí)行、或者完全在遠程計算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠程計算設(shè)備的情形中,遠程計算設(shè)備可以通過任一種類的網(wǎng)絡(luò),包括局域網(wǎng)(lan)或廣域網(wǎng)(wan),連接到用戶計算設(shè)備,或者,可以連接到外部計算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。綜上,本發(fā)明的目的在于提供基于策略中臺的流量處理方法、系統(tǒng)、設(shè)備及存儲介質(zhì),能夠利用kafka和flink的各種特性,實現(xiàn)了百萬級qps數(shù)據(jù)量毫秒級實時策略分析,數(shù)據(jù)處理的無積壓,無延遲,穩(wěn)定運行。以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當視為屬于本發(fā)明的保護范圍。
背景技術(shù):
1、策略中臺在信安-基礎(chǔ)安全中扮演著非常重要的角色;主要的職能為對信安各類安全數(shù)據(jù)/日志/流量,進行實時威脅分析,將安全事件告警輸入到下游業(yè)務(wù)方;基于flink大數(shù)據(jù)流處理框架實現(xiàn),目前已經(jīng)接入了hids、nids、waf、netflow、slb流量、https流量等80多個數(shù)據(jù)源,整體qps達到近300萬;目前共覆蓋了500多條檢測規(guī)則(每條規(guī)則平均包含5條以上運算符);安全檢測范圍涵蓋了att&ck模型的各個攻擊階段。
2、目前策略中臺每秒處理數(shù)據(jù)量近300萬條,其中不乏大報文數(shù)據(jù)(兆級別);每秒需要進行數(shù)億次匹配計算,其中包含了很多復(fù)雜正則計算,窗口計數(shù)統(tǒng)計等高耗時計算;對處理時效、穩(wěn)定性等帶來的挑戰(zhàn)極大。
3、如果一旦產(chǎn)生處理積壓、延遲、宕機等情況,可能就無法快速實時的抓到惡意入侵行為,就有可能導(dǎo)致公司資產(chǎn)面臨入侵風(fēng)險;因此對于處理的時效性,穩(wěn)定性要求較高。
4、因此,本發(fā)明提供了一種基于策略中臺的流量處理方法、系統(tǒng)、設(shè)備及存儲介質(zhì)。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)中的問題,本發(fā)明的目的在于提供基于策略中臺的流量處理方法、系統(tǒng)、設(shè)備及存儲介質(zhì),克服了現(xiàn)有技術(shù)的困難,能夠利用kafka和flink的各種特性,實現(xiàn)了百萬級qps數(shù)據(jù)量毫秒級實時策略分析,數(shù)據(jù)處理的無積壓,無延遲,穩(wěn)定運行。
2、本發(fā)明的實施例提供一種基于策略中臺的流量處理方法,包括以下步驟:
3、s110、將redis集群進行拆分,將高查詢率數(shù)據(jù)源使用單獨的redis集群做資源隔離;
4、s120、采用flink異步函數(shù),增加flink框架對于redis客戶端的并發(fā)請求能力,并增加異步超時機制;
5、s130、基于google正則引擎re2j與jvm正則引擎進行混合匹配長報文;以及
6、s140、調(diào)整內(nèi)存模型,并將對應(yīng)任務(wù)下的子任務(wù)分散在不同的集群中執(zhí)行。
7、優(yōu)選地,所述步驟s110中,包括:
8、s111、將redis集群進行拆分,根據(jù)查詢率基于預(yù)設(shè)閾值對數(shù)據(jù)源進行分組;
9、s112、將查詢率大于預(yù)設(shè)閾值的高查詢率數(shù)據(jù)源使用單獨的redis集群做資源隔離,將查詢率小于預(yù)設(shè)閾值的低查詢率數(shù)據(jù)源使用其余redis集群。
10、優(yōu)選地,所述步驟s120中,包括:
11、s121、采用flink異步函數(shù),增加flink框架對于redis客戶端的并發(fā)請求能力;
12、s122、增加異步超時機制;
13、s123、調(diào)高時間窗口統(tǒng)計粒度由秒到分鐘級別;
14、優(yōu)選地,所述步驟s123中,將redis集群訪問量由700w/s下降到100w/s。
15、優(yōu)選地,所述步驟s130中,包括:
16、s131、將超大并發(fā)任務(wù)拆解到若干子任務(wù)分散在各個yarn集群,
17、s132、建立所述子任務(wù)與消費kafka數(shù)據(jù)的分割方式,對超大并發(fā)任務(wù)根據(jù)所述分割方式進行并行處理。
18、本發(fā)明的實施例還提供一種基于策略中臺的流量處理系統(tǒng),用于實現(xiàn)上述的基于策略中臺的流量處理方法,所述基于策略中臺的流量處理系統(tǒng)包括:
19、集群拆分模塊,將redis集群進行拆分,將高查詢率數(shù)據(jù)源使用單獨的redis集群做資源隔離;
20、并發(fā)請求模塊,采用flink異步函數(shù),增加flink框架對于redis客戶端的并發(fā)請求能力,并增加異步超時機制;
21、混合匹配模塊,基于google正則引擎re2j與jvm正則引擎進行混合匹配長報文;以及
22、任務(wù)分散模塊,調(diào)整內(nèi)存模型,并將對應(yīng)任務(wù)下的子任務(wù)分散在不同的集群中執(zhí)行。
23、本發(fā)明的實施例還提供一種基于策略中臺的流量處理設(shè)備,包括:
24、處理器;
25、存儲器,其中存儲有所述處理器的可執(zhí)行指令;
26、其中,所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行上述基于策略中臺的流量處理方法的步驟。
27、本發(fā)明的實施例還提供一種計算機可讀存儲介質(zhì),用于存儲程序,所述程序被執(zhí)行時實現(xiàn)上述基于策略中臺的流量處理方法的步驟。
28、本發(fā)明的目的在于提供基于策略中臺的流量處理方法、系統(tǒng)、設(shè)備及存儲介質(zhì),能夠利用kafka和flink的各種特性,實現(xiàn)了百萬級qps數(shù)據(jù)量毫秒級實時策略分析,數(shù)據(jù)處理的無積壓,無延遲,穩(wěn)定運行。