方建生, 王福民
1(廣東電信 大數(shù)據(jù)運(yùn)營中心, 廣州 510080)2(廣州速方軟件有限公司, 廣州 510660)
應(yīng)用Hadoop提升數(shù)據(jù)庫審計(jì)系統(tǒng)檢索性能的研究①
方建生1, 王福民2
1(廣東電信 大數(shù)據(jù)運(yùn)營中心, 廣州 510080)2(廣州速方軟件有限公司, 廣州 510660)
鑒于單節(jié)點(diǎn)數(shù)據(jù)庫審計(jì)系統(tǒng)檢索性能低下的現(xiàn)狀, 探討應(yīng)用Hadoop偽分布模式和HBase列存儲(chǔ)模型重構(gòu)數(shù)據(jù)庫審計(jì)系統(tǒng)的檢索存儲(chǔ)體系, 重點(diǎn)研究HDFS存儲(chǔ)機(jī)制、MapReduce運(yùn)算框架和HBase數(shù)據(jù)模型三者的集成, 以提升數(shù)據(jù)庫審計(jì)系統(tǒng)實(shí)時(shí)檢索和綜合分析的性能. 重構(gòu)方案有效提升了檢索性能, 但鑒于數(shù)據(jù)的高可靠性和大體積, 提出結(jié)合生產(chǎn)現(xiàn)狀應(yīng)用Hadoop和HBase分布式集群的展望.
數(shù)據(jù)庫審計(jì)系統(tǒng); Hadoop; HBase; RDMS
數(shù)據(jù)和數(shù)據(jù)庫的安全, 是計(jì)算機(jī)運(yùn)維的一個(gè)重大課題, 催生數(shù)據(jù)庫安全技術(shù)的研究[1], 集中在外部數(shù)據(jù)庫入侵檢測[2,3]和內(nèi)部數(shù)據(jù)庫操作審計(jì)兩個(gè)方面.
數(shù)據(jù)庫審計(jì)系統(tǒng)(Database Audit System, 下稱: DBAS)主要是通過旁路監(jiān)聽的方式采集訪問目標(biāo)數(shù)據(jù)庫的鏡像數(shù)據(jù)流, 實(shí)時(shí)監(jiān)控并記錄以審計(jì), 及時(shí)發(fā)現(xiàn)違規(guī)操作和異常行為[4-6], DBAS的系統(tǒng)部署結(jié)構(gòu)如圖1所示.
DBAS在定位異常數(shù)據(jù)操作行為上, 彌補(bǔ)了數(shù)據(jù)庫自身日志的不足, 已廣泛應(yīng)用在銀行、醫(yī)院、電信等行業(yè)[7], 其核心模塊是:
1) 集引擎模塊, 主要從鏈路層采集網(wǎng)卡數(shù)據(jù)包,提取數(shù)據(jù)庫會(huì)話協(xié)議的內(nèi)容入庫, 涵蓋DQL、DDL、DML、DCL操作記錄, 支持各類數(shù)據(jù)庫協(xié)議的解析,包括Oracle的TNS協(xié)議、Sybase和SQLServer的TDS協(xié)議、DB2的DRDA協(xié)議等.
采集引擎的關(guān)鍵技術(shù)是及時(shí)捕獲網(wǎng)卡接收的數(shù)據(jù)包, 較為常見的是應(yīng)用pcap庫和dpdk庫. Intel開發(fā)的網(wǎng)絡(luò)數(shù)據(jù)包處理轉(zhuǎn)發(fā)套件[8,9](DPDK, Data Plane Development Kit), 利用Linux 的CPU affinity和大內(nèi)存頁機(jī)制提高處理效率, 并提供UIO機(jī)制支撐網(wǎng)卡硬件驅(qū)動(dòng)在用戶態(tài)下運(yùn)行, 具有更強(qiáng)的性能.
2) Web審計(jì)應(yīng)用, 主要是對(duì)采集入庫的SQL語句進(jìn)行語義分析, 重組網(wǎng)絡(luò)會(huì)話, 開展4W審計(jì), 支持多關(guān)鍵字搜索和多維度統(tǒng)計(jì)分析.
Web審計(jì)應(yīng)用的核心是檢索功能, 支持在月表億級(jí)數(shù)據(jù)量中綜合查詢、分析. DBAS由于其功能和生產(chǎn)特性, 多以單機(jī)集成部署采集引擎和Web審計(jì)應(yīng)用,受制于關(guān)系型數(shù)據(jù)庫系統(tǒng)(Relational Database Management System, 下稱 RDMS)的存儲(chǔ)檢索體系以及單機(jī)硬件資源不足的約束, 尤其是磁盤尋址和傳輸?shù)腎O性能, DBAS檢索效能低下.
針對(duì)該問題, DBAS查詢優(yōu)化方案集中在Web應(yīng)用體系和關(guān)系型數(shù)據(jù)庫上, 如應(yīng)用Hibernate架構(gòu)和Web前端緩存技術(shù)[10]、應(yīng)用數(shù)據(jù)庫索引和分表技術(shù)[11],本文則試圖從DBAS存儲(chǔ)檢索體系上研究解決方案.
圖1 數(shù)據(jù)庫審計(jì)系統(tǒng)部署
Hadoop是一套可靠的高性能的共享存儲(chǔ)和分析系統(tǒng)[12], 可靠是首要, 高性能在于克服單機(jī)作業(yè)磁盤IO和并行作業(yè)網(wǎng)絡(luò)帶寬的兩大瓶頸, 核心是負(fù)責(zé)存儲(chǔ)的HDFS[13](Hadoop Distributed File System, 下稱: HDFS)分布式文件系統(tǒng)和負(fù)責(zé)并行分析的MapReduce計(jì)算框架[14].
HBase具有分布式、面向列的存儲(chǔ)模型特性, 存儲(chǔ)的數(shù)據(jù)介于映射(key/value)和關(guān)系型數(shù)據(jù)之間[15]. 通過Hadoop生態(tài)系統(tǒng)圈, 可以看出HBase位于結(jié)構(gòu)化存儲(chǔ)層, 底層依賴HDFS提供的高可靠存儲(chǔ)支持, 上層分析則借重MapReduce的高性能計(jì)算能力[16].
HBase數(shù)據(jù)模型如表1, 其列存儲(chǔ)特性與倒排索引[17]原理一致, 又植根于Hadoop生態(tài)圈, 適合應(yīng)用于全文檢索, 主要組成說明如下:
1) Row Key: Table主鍵、行鍵, Table中記錄按照Row Key排序;
2) Timestamp: 每次對(duì)數(shù)據(jù)操作對(duì)應(yīng)的時(shí)間戳, 可視為數(shù)據(jù)的version number;
3) Column Family: 列簇, 一個(gè)table在水平方向有一個(gè)或者多個(gè)列簇, 列簇可由任意多個(gè)Column組成,列簇支持動(dòng)態(tài)擴(kuò)展, 無須預(yù)定義數(shù)量及類型, 二進(jìn)制存儲(chǔ), 用戶需自行進(jìn)行類型轉(zhuǎn)換.
表1 HBase數(shù)據(jù)模型
得益于Hadoop生態(tài)圈和HBase的列存儲(chǔ)數(shù)據(jù)模型特性, 使HBase適合于廉價(jià)PC Server上實(shí)現(xiàn)實(shí)時(shí)查詢和綜合分析并易于擴(kuò)展成分布式集群生產(chǎn).
傳統(tǒng)上, DBAS存儲(chǔ)檢索體系應(yīng)用RDMS支撐采集引擎模塊的數(shù)據(jù)寫入和Web審計(jì)應(yīng)用模塊的數(shù)據(jù)讀取. 通過剖析DBAS現(xiàn)狀和理解HBase存儲(chǔ)模型特性,結(jié)合DBAS數(shù)據(jù)具有列存儲(chǔ)的基因特征, 顯見基于Hadoop平臺(tái)應(yīng)用HBase可提升DBAS的檢索性能[18,19].
本文研究應(yīng)用Hadoop平臺(tái)的高性能海量數(shù)據(jù)處理能力[20]和HBase數(shù)據(jù)庫的列存儲(chǔ)模型重構(gòu)DBAS存儲(chǔ)檢索體系, 高效及時(shí)挖掘數(shù)據(jù)庫操作的違規(guī)和異常行為. 重構(gòu)核心是基于DBAS單機(jī)生產(chǎn)的特點(diǎn)部署Hadoop偽分布式模式, 并用HBase替換RDMS.
3.1 DBAS存儲(chǔ)檢索需求分析
DBAS數(shù)據(jù)存儲(chǔ)檢索具有單機(jī)大數(shù)據(jù)量存儲(chǔ)和高并發(fā)操作、數(shù)據(jù)持續(xù)寫入和讀取操作的特點(diǎn). DBAS數(shù)據(jù)存儲(chǔ)檢索的基本信息如表2所示, 主要是數(shù)據(jù)庫操作信息的4W記錄, 溯源什么時(shí)間什么人在哪里做了什么.
采集引擎模塊解析網(wǎng)卡數(shù)據(jù)包中訪問數(shù)據(jù)庫操作的信息入庫, 同時(shí)Web審計(jì)應(yīng)用模塊頻繁、大量地讀取數(shù)據(jù)支撐前臺(tái)手工綜合查詢和后臺(tái)自動(dòng)綜合統(tǒng)計(jì),單機(jī)性能和RDMS顯然無法滿足大數(shù)據(jù)的高并發(fā)讀寫.為保證審計(jì)信息及時(shí)入庫, 資源上側(cè)重采集引擎模塊的數(shù)據(jù)處理, 從而嚴(yán)重影響Web審計(jì)應(yīng)用模塊的使用.
DBAS的查詢和分析, 主要集中在SQL語句語義分析的全文關(guān)鍵詞搜索和多關(guān)鍵字聯(lián)合查詢, 較為常用場景是: 操作類型、操作時(shí)間和SQL語句的綜合查詢.
表2 RDMS表信息
3.2 DBAS存儲(chǔ)檢索體系重構(gòu)方案
綜合DBAS的數(shù)據(jù)特征和存儲(chǔ)檢索需求, DBAS存儲(chǔ)檢索體系重構(gòu)方案以Hadoop核心模塊HDFS和MapReduce及其HBase整套體系來替換DBAS傳統(tǒng)上單一RDMS的存儲(chǔ)檢索體系. 重構(gòu)方案以具有列存儲(chǔ)特性的HBase作為DBAS采集引擎模塊寫入和Web審計(jì)應(yīng)用模塊讀取的數(shù)據(jù)庫, 集成偽分布的HDFS存儲(chǔ)和MapReduce運(yùn)算框架, 支持DBAS單機(jī)大數(shù)據(jù)量的高速并發(fā)讀寫, 提升RDMS的讀寫性能.
重構(gòu)方案重點(diǎn)研究HBase表結(jié)構(gòu)設(shè)計(jì)、HBase集成HDFS和MapReduce、以及DBAS實(shí)時(shí)檢索的實(shí)現(xiàn).
1) HBase表結(jié)構(gòu)設(shè)計(jì)
針對(duì)表2信息, 綜合DBAS檢索的常用場景, 重構(gòu)方案中將按照4W審計(jì)需求來定義HBase的列存儲(chǔ)表結(jié)構(gòu), 如表3所示.
在RDMS中, 一般建立操作類型和時(shí)間作為索引滿足常用查詢, 重構(gòu)方案中的HBase存儲(chǔ)結(jié)構(gòu)便以操作類型作為Row行鍵.
表3 HBase表結(jié)構(gòu)
2) HBase集成HDFS和MapReduce
Web審計(jì)應(yīng)用模塊提出的檢索業(yè)務(wù)邏輯, 通過HBase提交到MapReduce作業(yè), 而MapReduce基于HDFS上存儲(chǔ)的HBase表運(yùn)算并輸出HBase表, 提供給Web審計(jì)應(yīng)用統(tǒng)計(jì)分析結(jié)果, 三者集成的具體數(shù)據(jù)流如圖2所示.
圖2 DBAS數(shù)據(jù)流圖
HBase按行鍵分成<key,value>對(duì)存儲(chǔ)在HDFS, key 值對(duì)應(yīng)行健, value 值為該行所包含的數(shù)據(jù), 定義MapReduce的Mapper類和Reducer 類支持Web審計(jì)應(yīng)用模塊提出的檢索業(yè)務(wù)需求.
3) DBAS實(shí)時(shí)檢索的實(shí)現(xiàn)
不同于RDMS滿足規(guī)范性數(shù)據(jù)持續(xù)性寫入的存儲(chǔ)和分析需求, Hadoop適合應(yīng)用于一次寫入、多次讀取的數(shù)據(jù)操作場景. 針對(duì)DBAS持續(xù)性寫入HBase的需求, 重點(diǎn)研究數(shù)據(jù)實(shí)時(shí)存儲(chǔ)到HDFS的實(shí)現(xiàn).
HBase底層的存儲(chǔ)是采用key/value的文件結(jié)構(gòu),寫操作有三個(gè)步驟: 1)寫入HLog, 防止宕機(jī)丟失數(shù)據(jù); 2)按row有序?qū)懭雽?duì)應(yīng)的memstore內(nèi)存; 3)當(dāng)memstore寫滿時(shí), 數(shù)據(jù)被flush到HDFS, 持久化到新的storefile數(shù)據(jù)文件. 基于HBase的存儲(chǔ)機(jī)制, 應(yīng)結(jié)合實(shí)際生產(chǎn)情況來設(shè)置memstore被flush時(shí)的閾值, 同時(shí)采集引擎模塊建立多級(jí)緩存.
DBAS部署在X86結(jié)構(gòu)的單服務(wù)器上, 操作系統(tǒng)為centos, 采用RAID1鏡像結(jié)構(gòu), 整體資源優(yōu)先滿足網(wǎng)卡采集的IP包持續(xù)性寫入, 再而盡快響應(yīng)大數(shù)據(jù)量讀取的檢索. 實(shí)驗(yàn)以某三甲醫(yī)院DBAS為案例, 存儲(chǔ)記錄月表8000萬條左右、存儲(chǔ)空間50G左右.
在軟硬環(huán)境一致、讀寫數(shù)據(jù)量和頻度一致的情況下, 部署兩套獨(dú)立的DBAS及其存儲(chǔ)檢索數(shù)據(jù)庫, A方案采用Mysql, B方案基于Hadoop平臺(tái)的HBase. 實(shí)驗(yàn)中, 在正常生產(chǎn)情況下和資源優(yōu)先保障磁盤寫入下,分別對(duì)兩套獨(dú)立的DBAS執(zhí)行三類常見的檢索場景,觀察磁盤IO和CPU/內(nèi)存利用率, 比較兩個(gè)方案三類場景的執(zhí)行響應(yīng)時(shí)間.
場景一: 統(tǒng)計(jì)delete操作的次數(shù), delete的數(shù)據(jù)庫操作記錄比較少, 是審計(jì)中的敏感點(diǎn), 經(jīng)常被檢索;場景二: 統(tǒng)計(jì)select操作的次數(shù), select記錄最多, 經(jīng)常用于統(tǒng)計(jì)各類審計(jì)事件; 場景三: 查詢兩類處方藥聯(lián)合出現(xiàn)的記錄, 是醫(yī)院防統(tǒng)方的主要審計(jì)點(diǎn). 三類場景執(zhí)行的響應(yīng)速度如圖3執(zhí)行時(shí)間, 并觀察執(zhí)行區(qū)間的資源利用率.
圖3 執(zhí)行時(shí)間
首先, A方案中, 磁盤IO保持在較高水平, 接近30M/S的滿負(fù)荷狀態(tài), 而B方案基本在10M/S左右,在同樣數(shù)據(jù)量寫入情況下, A方案Mysql在讀取IO請(qǐng)求上占用過高資源; 其次, A方案的CPU和內(nèi)存占用80%以上, 而B方案基本維持在50%左右. A方案的資源利用率達(dá)到臨界, 一旦出現(xiàn)突發(fā)數(shù)據(jù)請(qǐng)求, 則會(huì)出現(xiàn)系統(tǒng)各類響應(yīng)延遲, 寫入溢出; 而B方案還有很多資源空間來滿足生產(chǎn).
最后, 分析兩個(gè)方案三個(gè)場景的執(zhí)行時(shí)間: 1)場景一上A方案響應(yīng)快, 主要在于delete記錄少且Mysql針對(duì)操作類型建立索引; 2)場景二隨著查詢數(shù)據(jù)量的體積倍增, B方案優(yōu)勢明顯, 且實(shí)驗(yàn)中A方案僅做單表統(tǒng)計(jì), 如果涉及跨月聯(lián)表查詢, A方案性能更低; 3)場景三兩個(gè)方案的執(zhí)行速度和場景二一樣, 對(duì)A方案來說, 處方藥聯(lián)合出現(xiàn)的查詢事前無法建立索引和存儲(chǔ)塊, 全表檢索耗時(shí)巨大.
在實(shí)驗(yàn)案例中, 更多的同類場景執(zhí)行, 發(fā)現(xiàn)B方案的響應(yīng)時(shí)間基本穩(wěn)定在20秒上下, 而A方案檢索大數(shù)據(jù)量的情況就要到60秒以上, 可見HBase列存儲(chǔ)模型、HDFS流式數(shù)據(jù)讀取模式、MapReduce批處理方式在大數(shù)據(jù)檢索方面的優(yōu)勢.
本文基于DBAS存儲(chǔ)檢索的現(xiàn)狀, 應(yīng)用Hadoop平臺(tái)及其生態(tài)圈數(shù)據(jù)庫HBase重構(gòu)DBAS存儲(chǔ)檢索體系, 從DBAS的檢索需求和數(shù)據(jù)特點(diǎn)出發(fā), 研究HDFS及MapReduce機(jī)制和HBase的集成, 使三者有效發(fā)揮以提高DBAS單節(jié)點(diǎn)檢索性能.
在實(shí)際產(chǎn)品運(yùn)行中, 重構(gòu)方案明顯提升了DBAS檢索性能, 但數(shù)據(jù)體積的不斷膨脹和高可靠性要求,面對(duì)審計(jì)產(chǎn)品行業(yè)應(yīng)用的個(gè)性化要求, 展望未來, 綜合權(quán)衡DBAS的生產(chǎn)現(xiàn)狀和成本下, 研究Hadoop和HBase分布式[21,22]來支持DBAS存儲(chǔ)檢索是一個(gè)方向.
1 吳溥峰,張玉清.數(shù)據(jù)庫安全綜述.計(jì)算機(jī)工程,2006, 32(12):85–88.
2 葉碧野.計(jì)算機(jī)數(shù)據(jù)庫入侵檢測技術(shù)探析.電腦知識(shí)與技術(shù), 2012,8(2X):1012–1014.
3 肖大薇.計(jì)算機(jī)數(shù)據(jù)庫入侵檢測技術(shù)分析研究.信息系統(tǒng)工程,2012,(4):54–55.
4 晏明春,李酒.一種新型在線數(shù)據(jù)庫審計(jì)系統(tǒng).計(jì)算機(jī)工程與設(shè)計(jì),2007,28(5):1012–1015.
5 楊磊.數(shù)據(jù)庫安全審計(jì)檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[碩士學(xué)位論文].北京:北京交通大學(xué),2014.
6 安鵬.基于云架構(gòu)的統(tǒng)一審計(jì)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[碩士學(xué)位論文].長春:吉林大學(xué),2015.
7 聶元銘,吳曉明.基于數(shù)據(jù)庫安全審計(jì)的研究.信息網(wǎng)絡(luò)安全, 2009,(6):4–6.
8 Cerrato I, Annarumma M, Risso F. Supporting fine-grained network functions through intel DPDK. 2014 Third European Workshop on Software Defined Networks (EWSDN). IEEE Computer Society. 2014. 1–6.
9 Pongracz G, Molnar L, Kis ZL. Removing roadblocks from SDN: OpenFlow software switch performance on intel DPDK. 2013 Second European Workshop on Software Defined Networks. IEEE Computer Society. 2013. 62–67.
10 劉晨瑩.數(shù)據(jù)庫審計(jì)系統(tǒng)中數(shù)據(jù)快速查詢與智能分析設(shè)計(jì)與實(shí)現(xiàn)[碩士學(xué)位論文].保定:華北電力大學(xué),2015.
11 李凱,楊永清,范淵.一種在大數(shù)據(jù)量存儲(chǔ)中快速檢索的方法:CN, 2012. CN 102184222 B.
12 White T. Hadoop: The definitive guide. O’reilly Media IncGravenstein Highway North, 2010, 215(11): 1–4.
13 Kaushik RT, Bhandarkar M, Nahrstedt K. Evaluation and analysis of GreenHDFS: A self-adaptive, energy-conserving variant of the Hadoop distributed file system. IEEE Second International Conference on Cloud Computing Technology and Science (CloudCom), 2010. IEEE. 2010. 274–287.
14 Wang L, Tao J, Ranjan R, et al. G-Hadoop: MapReduce across distributed data centers for data-intensive computing . Future Generation Computer Systems, 2013, 29(3): 739–750.
15 George L. HBase: The definitive guide. Andre, 2011, 12(1): 1–4.
16 Taylor RC. An overview of the Hadoop/MapReduce/HBase framework and its current applications in bioinformatics. Bmc Bioinformatics, 2010, 11(6): 3395–3407.
17 鄧攀,劉功申.一種高效的倒排索引存儲(chǔ)結(jié)構(gòu).計(jì)算機(jī)工程與應(yīng)用,2008,44(31):149–152.
18 王歡,許暖,沈波.基于大數(shù)據(jù)的智能審計(jì)平臺(tái)研究.電信工程技術(shù)與標(biāo)準(zhǔn)化,2014,(12):19–22.
19 張萌.基于hadoop的網(wǎng)絡(luò)安全日志審計(jì)系統(tǒng)關(guān)鍵技術(shù)研究[碩士學(xué)位論文].哈爾濱:哈爾濱工程大學(xué),2013.
20 翟巖龍,羅壯,楊凱,等.基于Hadoop的高性能海量數(shù)據(jù)處理平臺(tái)研究.計(jì)算機(jī)科學(xué),2013,40(3):100–103.
21 施磊磊,施化吉,束長波,等.基于Hadoop和HBase的分布式索引模型的研究.信息技術(shù),2015,(6):109–111.
22 萬軼,向廣利.基于hadoop和hbase的分布式索引集群研究.信息技術(shù)與信息化,2015,(1):102–103.
Study on Applying Hadoop to Enhance the Retrieval Performance of Database Audit Systems
FANG Jian-Sheng1, WANG Fu-Min212
(Operation Center of Big Data, Guangdong Telecom, Guangzhou 510080, China) (Guangzhou Soofound Software Co. Ltd., Guangzhou 510660, China)
Based on the present situation of lower retrieval performance of the single node database audit system, this paper carries out research of application of the Hadoop pseudo distribution model and the HBase column storage model to reconstruct the database audit system of the single node deployment for enhancing the retrieval performance. This paper focuses on the study of integrating HDFS storage mechanism, MapReduce computing framework and HBase data model to improve the performance of real-time retrieval and comprehensive analysis of database audit system. Reconstruction scheme can effectively improve the retrieval performance, but in view of the high reliability and large volume of the data, the application of Hadoop and HBase distributed cluster is proposed in combination with the production status.
DB audit system; Hadoop; HBase; RDMS
2016-03-30;收到修改稿時(shí)間:2016-06-06
10.15888/j.cnki.csa.005562