一種網絡流量數據存儲方法及系統、查詢方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及大數據技術以及網絡安全技術領域,尤其涉及一種網絡流量數據存儲 方法及系統、查詢方法及裝置。
【背景技術】
[0002] 早期網絡流量數據的存儲在網絡安全領域并沒有得到廣泛重視,主要由于存儲成 本高,數據利用率低,傳統的網絡安全技術已經能滿足一定的網絡安全需求。但隨著網絡安 全產生的問題日益增多,網絡安全技術已不僅僅是IDS(Intrusion Detection System,入 侵檢測系統)、防火墻、惡意代碼檢測、防病毒軟件等,更多的網絡安全問題將面臨挑戰。
[0003] 隨著大數據時代的到來,新一代的網絡安全技術迎來發展機遇,由大數據技術負 責網絡流量數據的存儲,傳統的網絡安全技術獎與大數據技術進行結合,如基于大數據的 網絡安全審計、網絡威脅檢測、網絡安全預警、DPI (Deep Packet Inspection,深度包檢測) 等,存儲網絡流量數據為應對〇-day攻擊、APT (Advanced Persistent Threat,高級可持續 攻擊)等提供數據基礎。
[0004] 現有技術不足在于:
[0005] 首先,采集設備不適合持久化數據:采集設備本身存儲空間有限,不適合長期存 儲;可靠性和性能不易于兼顧,若采用RAID技術保證可靠性,會嚴重影響采集吞吐量,無法 應對lOgbps的網絡流量;
[0006] 其次,關系型數據庫的吞吐量往往不足以滿足海量實時數據接入的性能要求,或 需要更多的設備成本;
[0007] 再有,傳統的技術架構往往重視模塊間的獨立性,不易于支持基于大數據架構的 數據分析應用。
【發明內容】
[0008] 鑒于上述問題,本發明實施例提出了一種網絡流量數據存儲方法及系統、查詢方 法及裝置,以期能夠解決或部分解決采集設備本身存儲空間有限,以及不能滿足海量數據 進行接入的問題。
[0009] 為達到上述目的,本發明的技術方案是這樣實現的:一種網絡流量數據存儲方法: 其特征在于,所述方法包括:
[0010]步驟一,采集網絡數據;
[0011]步驟二,將所述網絡數據存儲至分布式消息中間件Kafka;
[0012] 步驟三,采用流式計算框架Storm將所述Kafka中網絡流量數據進行拓撲處理; [0013]步驟四,將已經進行拓撲處理的網絡數據存儲到分布式文件系統HDFS以及分布式 鍵值型數據庫HBase;
[0014]步驟五,通過分布式批處理計算框架MapReduce對所述特征向量構建索引系統,并 與所述HDFS及所述HBase進行關聯。
[0015]對所述Kafka中的網絡數據進行拓撲處理,進一步包括,
[0016]對所述網絡數據進行持久化拓撲是指,第一中間件處理單元KafkaSpout從所述 Kafka獲取網絡數據,并將所述網絡數據封裝成包結構體,并發送給會話的處理單元 TransformBolt;
[0017] 所述TransformBolt接收所述第一 KafkaSpout提交的所述包結構體,并封裝成會 話結構體,所述會話結構體包括長會話結構體和短會話結構體;
[0018] 所述TransformBolt將所述長會話結構體提交給HdfsBolt,所述短會話結構體提 交給數據庫處理單元HBaseBolt;
[0019] 其中,所述分布式系統處理單元HdfsBolt將長會話結構體寫入所述HDFS;所述 HBaseBolt將短會話結構體寫入所述HBase。
[0020]進一步包括,對所述網絡數據進行特征向量提取拓撲是指,第二中間件處理單元 KafkaSpout從所述Kafka獲取網絡數據,封裝成包結構體,并發送給特征向量的處理單元 FeatureBolt,
[0021 ] 所述FeatureBolt接收所述第二KafkaSpout提交的所述包結構體,并通過所述包 結構體提取包內容的特征向量,所述分布式系統處理單元HdfsBolt。
[0022] 進一步,所述HBase包括主鍵,所述主鍵包括預分區前綴、會話五元組的Hex值、時 間戳Hex值,其中,所述預分區前綴由五元組Hex值的哈希生成,根據所述預分區前綴按首字 節將所述HBase預分為256區。
[0023]所述索引系統,采用雙向端口對的方式存儲網絡數據。
[0024] 針對上述存儲方法本發明還提供一種網絡流量數據查詢方法,
[0025] 檢索T時間內索引系統中網絡數據的五元組;
[0026]根據所述五元組確定分布式鍵值型數據庫HBase主鍵前綴,并掃描短會話數據; [0027]按照五元組確定分布式文件系統HDFS網絡數據文件路徑,根據時間戳進行長會話 數據下載;
[0028]將輸出結果返回客戶端。
[0029] 另一方面,本發明還提供了一種網絡流量數據存儲系統,其特征在于,所述系統包 括采集裝置,分布式消息中間件Kafka,拓撲裝置,發送裝置,構建裝置:
[0030] 所述采集裝置,用于采集網絡數據,并將采集的網絡數據存儲至分布式消息中間 件Kafka;
[0031] 所述拓撲裝置,用于采用流式計算框架Storm將存儲在所述Kafka中的網絡數據進 行拓撲處理;
[0032]所述發送裝置,用于將已經進行拓撲處理的網絡數據存儲到分布式文件系統HDFS 以及分布式鍵值型數據庫HBase;
[0033] 所述構建裝置,用于通過分布式批處理計算框架MapReduce對所述特征向量構建 索引系統,并與所述HDFS及所述HBase進行關聯。
[0034]所述拓撲裝置包括持久化拓撲模塊,
[0035]所述持久化拓撲模塊包括,第一中間件處理單元KafkaSpout、會話的處理單元 TransformBolt、分布式處理單元HdfsBolt、數據庫處理單元HBaseBolt,其中,
[0036]所述第一 KafkaSpout用于從所述Kafka獲取網絡數據,并將所述網絡數據封裝成 包結構體,發送給所述TransformBolt;
[OO37] 所述TransformBolt用于接收所述第一 KafkaSpout提交的所述包結構體,并封裝 成會話結構體,所述會話結構體包括長會話結構體和短會話結構體。
[0038] 所述TransformBolt還用于將所述長會話結構體提交給HdfsBolt,將短會話結構 體提交給HBaseBolt,
[0039] 所述HdfsBolt用于將長會話結構體寫入HDFS;所述HBaseBolt用于將短會話結構 體寫入HBase。
[0040] 所述拓撲裝置還包括特征向量提取拓撲模塊,
[0041 ] 特征向量提取拓撲模塊包括第二中間件處理單元KafkaSpout單元、特征向量處理 單元FeatureBolt、分布式系統處理單元HdfsBolt,其中,第二KafkaSpout用于從所述Kafka 獲取網絡數據,封裝成包結構體,并發送給FeatureBolt。
[0042] 所述FeatureBolt單元用于接收所述第二KafkaSpout提交的所述包結構體,并通 過所述包結構體提取包內容的特征向量,
[0043] 所述Hdf sBo 11用于將所述特征向量寫入所述HDFS。
[0044] 構建裝置包括生成單元,所述HBase包括主鍵,所述主鍵由預分區前綴、會話五元 組的Hex值、時間戳Hex值構成,其中,生成單元用于根據五元組Hex值哈希生成所述預分區 如綴;
[0045]分區單元,用于根據所述預分區前綴按首字節將所述HBase預分為256區。
[0046] 所述索引系統,采用雙向端口對方式存儲網絡數據。
[0047] 針對上述存儲系統本發明提供一種網絡流量數據查詢裝置,其特征在于,包括
[0048] 檢索模塊,用于檢索T時間內索引系統中網絡數據的五元組;
[0049] 掃描模塊,用于根據所述五元組確定分布式鍵值型數據庫HBase主鍵前綴,并掃描 短會話數據;
[0050] 下載模塊,用于按照五元組確定分布式文件系統HDFS網絡數據文件路徑,根據時 間戳進行長會話數據下載;
[0051] 輸出模塊,用于將輸出結果返回客戶端。
[0052] 有益效果如下:
[0053]本發明提出的一種網絡流量數據存儲方法及系統、查詢方法及裝置,采用Kafka作 為實時數據的消息中間件:易于實現多點采集,統一管理;也可直接提供給第三方的實時分 析預警平臺,比傳統的多次轉發技術更加可靠。本發明采用大數據技術架構,同時保證各環 節的高可靠性與高性能,可應對lOgbps的網絡環境;同時減少無意義的副本冗余以節省成 本;并提供通用的第三方接口,易于其他廠商集成;同時在P級數據量下提供按五元組條件 任意組合檢索的的秒級查詢。
【附圖說明】
[0054]下面將參照附圖描述本發明的具體實施例,其中:
[0055] 圖1示出了本發明的物理架構圖示意圖;
[0056] 圖2示出了本發明實施例一中一種網絡流量數據存儲方法的數據處理流程圖; [0057]圖3示出了本發明實施例一數據接入與分布式消息中間件處理流程圖;
[0058]圖4示出了本發明實施例一中持久化處理拓撲圖;
[0059] 圖5示出了本發明實施例一中TransformBolt流式處理流程圖;
[0060] 圖6示出了本發明實施例一中Transform