本發(fā)明涉及計(jì)算機(jī)安全技術(shù)領(lǐng)域,特別涉及一種Hbase數(shù)據(jù)庫訪問日志的生成方法、裝置及系統(tǒng)。
背景技術(shù):
隨著信息技術(shù)的不斷發(fā)展與進(jìn)步,大數(shù)據(jù)及云計(jì)算被廣泛應(yīng)用于各個(gè)領(lǐng)域。在大數(shù)據(jù)及云計(jì)算領(lǐng)域,經(jīng)常有海量的數(shù)據(jù)需要存儲(chǔ)與處理,這就需要高性能的數(shù)據(jù)庫提供支持。Hbase數(shù)據(jù)庫作為一種分布式、面向列的開源數(shù)據(jù)庫,適合于非結(jié)構(gòu)數(shù)據(jù)的存儲(chǔ),另外,Hbase數(shù)據(jù)庫具有可伸縮的特性,使Hbase數(shù)據(jù)庫能夠比其他類型的數(shù)據(jù)庫存儲(chǔ)多的數(shù)據(jù),因而Hbase數(shù)據(jù)庫成為大數(shù)據(jù)領(lǐng)域的一個(gè)經(jīng)典數(shù)據(jù)庫,得到廣泛地應(yīng)用。
Hbase數(shù)據(jù)庫有諸多優(yōu)點(diǎn),但是由于Hbase數(shù)據(jù)庫自身構(gòu)架的原因,目前無法獲取用戶對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問時(shí)的訪問記錄,這就無法實(shí)現(xiàn)對(duì)用戶的訪問行為進(jìn)行監(jiān)控,用戶可以隨意對(duì)Hbase數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行非法修改,但無法明確用戶的責(zé)任,導(dǎo)致Hbase數(shù)據(jù)庫的安全性較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種Hbase數(shù)據(jù)庫訪問日志的生成方法、裝置及系統(tǒng),能夠提高Hbase數(shù)據(jù)庫的安全性。
本發(fā)明實(shí)施例提供了一種Hbase數(shù)據(jù)庫訪問日志的生成方法,包括:
通過所述Hbase數(shù)據(jù)庫節(jié)點(diǎn)RegionServer接收外部客戶端發(fā)送的對(duì)所述Hbase數(shù)據(jù)庫進(jìn)行訪問的請(qǐng)求信息;
對(duì)所述請(qǐng)求信息進(jìn)行解析,獲取所述客戶端對(duì)所述Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息;
將所述詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志內(nèi),并將所述訪問日志存儲(chǔ)到所述Hbase數(shù)據(jù)庫中;
根據(jù)所述詳細(xì)信息,完成所述客戶端對(duì)所述Hbase數(shù)據(jù)庫的訪問。
優(yōu)選地,
在所述將所述訪問日志存儲(chǔ)到所述Hbase數(shù)據(jù)庫中之后進(jìn)一步包括:
每隔預(yù)設(shè)的間隔時(shí)間,通過日志采集工具Flume采集所述Hbase數(shù)據(jù)庫上存儲(chǔ)的訪問日志,并將采集到的所述訪問日志上傳至預(yù)先設(shè)定的監(jiān)控?cái)?shù)據(jù)庫。
優(yōu)選地,
在所述將采集到的所述訪問日志上傳至預(yù)先設(shè)定的監(jiān)控?cái)?shù)據(jù)庫之后進(jìn)一步包括:
將上傳至所述監(jiān)控?cái)?shù)據(jù)庫的訪問日志載入數(shù)據(jù)倉儲(chǔ)工具Hive,通過所述數(shù)據(jù)倉儲(chǔ)工具Hive對(duì)所述訪問日志進(jìn)行統(tǒng)計(jì)分析,形成符合存儲(chǔ)格式要求的訪問日志,并將所述符合存儲(chǔ)格式要求的訪問日志持久化到所述監(jiān)控?cái)?shù)據(jù)庫中。
優(yōu)選地,
所述將所述詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志內(nèi)包括:
預(yù)先對(duì)日志記錄組件Log4j的配置文件進(jìn)行配置,根據(jù)所述配置文件,通過所述日志記錄組件Log4j將所述詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志內(nèi)。
優(yōu)選地,
所述詳細(xì)信息包括:所述客戶端的IP地址、所述客戶端上登錄的Hbase數(shù)據(jù)庫賬號(hào)、訪問類型、被訪問表的ID以及被訪問表索引行rowkey中的任意一個(gè)或多個(gè),其中所述訪問類型包括增加、刪除、修改及查看中的任意一個(gè)。
本發(fā)明實(shí)施例還提供了一種Hbase數(shù)據(jù)庫訪問日志的生成裝置,包括:接收單元、解析單元、生成單元及執(zhí)行單元;
所述接收單元,用于通過所述Hbase數(shù)據(jù)庫節(jié)點(diǎn)RegionServer接收外部客戶端發(fā)送的對(duì)所述Hbase數(shù)據(jù)庫進(jìn)行訪問的請(qǐng)求信息;
所述解析單元,用于對(duì)所述接收單元接收到的請(qǐng)求信息進(jìn)行解析,獲取所述客戶端對(duì)所述Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息;
所述生成單元,用于將所述解析單元獲取到的詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志內(nèi),并將所述訪問日志存儲(chǔ)到所述Hbase數(shù)據(jù)庫中;
所述執(zhí)行單元,用于根據(jù)所述解析單元獲取到的詳細(xì)信息,完成所述客戶端對(duì)所述Hbase數(shù)據(jù)庫的訪問。
優(yōu)選地,
該裝置進(jìn)一步包括:上傳單元;
所述上傳單元,用于每隔預(yù)設(shè)的間隔時(shí)間,通過日志采集工具Flume采集所述Hbase數(shù)據(jù)庫上存儲(chǔ)的訪問日志,并將采集到的所述訪問日志上傳至預(yù)先設(shè)定的監(jiān)控?cái)?shù)據(jù)庫。
優(yōu)選地,
該裝置進(jìn)一步包括:持久化單元;
所述持久化單元,用于將所述上傳單元上傳至所述監(jiān)控?cái)?shù)據(jù)庫的訪問日志載入數(shù)據(jù)倉儲(chǔ)工具Hive,通過所述數(shù)據(jù)倉儲(chǔ)工具Hive對(duì)所述訪問日志進(jìn)行統(tǒng)計(jì)分析,形成符合存儲(chǔ)格式要求的訪問日志,并將所述符合存儲(chǔ)格式要求的訪問日志持久化到所述監(jiān)控?cái)?shù)據(jù)庫中。
優(yōu)選地,
所述生成單元,用于預(yù)先對(duì)日志記錄組件Log4j的配置文件進(jìn)行配置,根據(jù)所述配置文件,通過所述日志記錄組件Log4j將所述詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志內(nèi)。
本發(fā)明實(shí)施例還提供了一種Hbase數(shù)據(jù)庫訪問日志的生成系統(tǒng),包括:客戶端、Hbase數(shù)據(jù)庫及上述實(shí)施例提供的任意一種Hbase數(shù)據(jù)庫訪問日志的生成裝置;
所述客戶端,用于向所述Hbase數(shù)據(jù)庫訪問日志的生成裝置發(fā)送對(duì)所述Hbase數(shù)據(jù)庫進(jìn)行訪問的請(qǐng)求信息;
所述Hbase數(shù)據(jù)庫,用于存儲(chǔ)所述Hbase數(shù)據(jù)庫訪問日志的生成裝置形成的訪問日志。
本發(fā)明實(shí)施例提供了一種Hbase數(shù)據(jù)訪問日志的生成方法、裝置及系統(tǒng),客戶端向Hbase數(shù)據(jù)庫發(fā)出訪問請(qǐng)求后,訪問請(qǐng)求被Hbase數(shù)據(jù)庫節(jié)點(diǎn)RegionServer接收,通過對(duì)訪問請(qǐng)求進(jìn)行解析獲取到客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息,將獲取到的詳細(xì)信息寫入訪問日志后,執(zhí)行客戶端對(duì)Hbase數(shù)據(jù)庫的訪問。這樣,訪問日志中記錄了客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息,通過訪問日志可以獲取客戶端對(duì)Hbase數(shù)據(jù)庫的記錄,從而能夠?qū)蛻舳说脑L問行為進(jìn)行監(jiān)控,以在Hbase數(shù)據(jù)庫被破壞時(shí)明確用戶責(zé)任,對(duì)非法用戶起到警示作用,提高了Hbase數(shù)據(jù)庫的安全性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個(gè)實(shí)施例提供的一種Hbase數(shù)據(jù)庫訪問日志的生成方法流程圖;
圖2是本發(fā)明另一個(gè)實(shí)施例提供的一種Hbase數(shù)據(jù)庫訪問日志的生成方法流程圖;
圖3是本發(fā)明一個(gè)實(shí)施例提供的一種Hbase數(shù)據(jù)庫訪問日志的生成裝置所在設(shè)備的示意圖;
圖4是本發(fā)明一個(gè)實(shí)施例提供的一種Hbase數(shù)據(jù)庫訪問日志的生成裝置的示意圖;
圖5是本發(fā)明另一個(gè)實(shí)施例提供的一種Hbase數(shù)據(jù)庫訪問日志的生成裝置的示意圖;
圖6是本發(fā)明又一個(gè)實(shí)施例提供的一種Hbase數(shù)據(jù)庫訪問日志的生成裝置的示意圖;
圖7是本發(fā)明一個(gè)實(shí)施例提供的一種Hbase數(shù)據(jù)庫訪問日志的生成系統(tǒng)的示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供了一種Hbase數(shù)據(jù)庫訪問日志的生成方法,該方法可以包括以下步驟:
步驟101:通過所述Hbase數(shù)據(jù)庫節(jié)點(diǎn)RegionServer接收外部客戶端發(fā)送的對(duì)所述Hbase數(shù)據(jù)庫進(jìn)行訪問的請(qǐng)求信息;
步驟102:對(duì)所述請(qǐng)求信息進(jìn)行解析,獲取所述客戶端對(duì)所述Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息;
步驟103:將所述詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志內(nèi),并將所述訪問日志存儲(chǔ)到所述Hbase數(shù)據(jù)庫中;
步驟104:根據(jù)所述詳細(xì)信息,完成所述客戶端對(duì)所述Hbase數(shù)據(jù)庫的訪問。
本發(fā)明實(shí)施例提供了一種Hbase數(shù)據(jù)庫訪問日志的生成方法,客戶端向Hbase數(shù)據(jù)庫發(fā)出訪問請(qǐng)求后,訪問請(qǐng)求被Hbase數(shù)據(jù)庫節(jié)點(diǎn)RegionServer接收,通過對(duì)訪問請(qǐng)求進(jìn)行解析獲取到客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息,將獲取到的詳細(xì)信息寫入訪問日志后,執(zhí)行客戶端對(duì)Hbase數(shù)據(jù)庫的訪問。這樣,訪問日志中記錄了客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息,通過訪問日志可以獲取客戶端對(duì)Hbase數(shù)據(jù)庫的記錄,從而能夠?qū)蛻舳说脑L問行為進(jìn)行監(jiān)控,以在Hbase數(shù)據(jù)庫被破壞時(shí)明確用戶責(zé)任,對(duì)非法用戶起到警示作用,提高了Hbase數(shù)據(jù)庫的安全性。
在本發(fā)明一個(gè)實(shí)施例中,在將訪問日志存儲(chǔ)到Hbase數(shù)據(jù)庫中之后,每隔預(yù)設(shè)的間隔時(shí)間,通過日志采集工具Flume采集Hbase數(shù)據(jù)庫上存儲(chǔ)的訪問日志,并將采集到的訪問日志上傳至預(yù)先設(shè)定的監(jiān)控?cái)?shù)據(jù)庫上進(jìn)行統(tǒng)一存儲(chǔ)。由于一個(gè)數(shù)據(jù)庫系統(tǒng)中可能包括有多個(gè)Hbase數(shù)據(jù)庫,將各個(gè)Hbase數(shù)據(jù)庫上存儲(chǔ)的訪問日志上傳至一個(gè)監(jiān)控?cái)?shù)據(jù)庫中,方便對(duì)各個(gè)Hbase數(shù)據(jù)庫的訪問日志進(jìn)行查詢與管理,節(jié)省對(duì)多臺(tái)Hbase數(shù)據(jù)庫的訪問日志進(jìn)行管理時(shí)所需的時(shí)間。
在本發(fā)明一個(gè)實(shí)施例中,在將Hbase數(shù)據(jù)庫的訪問日志上傳至預(yù)設(shè)的監(jiān)控?cái)?shù)據(jù)庫時(shí),首先將上傳至監(jiān)控?cái)?shù)據(jù)庫的訪問日志載入數(shù)據(jù)倉儲(chǔ)工具Hive,通過數(shù)據(jù)倉儲(chǔ)工具Hive對(duì)訪問日志進(jìn)行統(tǒng)計(jì)分析,形成符合存儲(chǔ)格式要求的訪問日志,然后將形成的符合存儲(chǔ)格式要求的訪問日志持久化到監(jiān)控?cái)?shù)據(jù)庫中。這樣,監(jiān)控?cái)?shù)據(jù)庫上存儲(chǔ)的訪問日志具有統(tǒng)一的存儲(chǔ)格式,方便訪問日志的搜索與管理;另外,將訪問日志持久化到監(jiān)控?cái)?shù)據(jù)庫上,對(duì)訪問日志進(jìn)行長(zhǎng)時(shí)間存儲(chǔ),以備需要時(shí)進(jìn)行查看以明確用戶責(zé)任。
在本發(fā)明一個(gè)實(shí)施例中,在將客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息寫入訪問日志時(shí),預(yù)先對(duì)日志記錄組件Log4j的配置文件進(jìn)行配置,在獲取到詳細(xì)信息后,根據(jù)日志記錄組件Log4j的配置文件,通過日志記錄組件Log4j將詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志內(nèi)。通過對(duì)日志記錄組件Log4j的配置文件進(jìn)行配置,可以對(duì)日志記錄組件Log4j的日志記錄過程進(jìn)行靈活配置,以使日志記錄組件Log4j通過不同的形式、路徑將詳細(xì)信息寫入訪問日志中,從而能夠?qū)Ω鞣N形式的訪問請(qǐng)求進(jìn)行記錄,提高了該Hbase數(shù)據(jù)庫訪問日志生成方法的適用性。
在本發(fā)明一個(gè)實(shí)施例中,對(duì)客戶端的訪問請(qǐng)求進(jìn)行解析后獲得訪問的詳細(xì)信息,詳細(xì)信息中包括有客戶端的IP地址、客戶端上登錄的Hbase數(shù)據(jù)庫賬號(hào)、具體的訪問類型、被訪問表的ID以及被訪問表索引行rowkey中的任意一個(gè)或多個(gè),其中訪問類型包括增加、刪除、修改及查看中的任意一個(gè)。詳細(xì)信息中包括有多種訪問信息,將詳細(xì)信息存儲(chǔ)到訪問日志中后,通過訪問日志可以確定用戶的Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)過程,保證訪問日志對(duì)客戶端訪問行為進(jìn)行記錄的準(zhǔn)確性及全面性;訪問類型可以為增加、刪除、修改或查看,從而可以將各種形式的訪問請(qǐng)求記錄到訪問日志中,提高了該Hbase數(shù)據(jù)庫訪問日志的生成方法的適用性。
下面以警務(wù)系統(tǒng)使用的Hbase數(shù)據(jù)庫為例,對(duì)本發(fā)明實(shí)施例提供的Hbase數(shù)據(jù)庫訪問日志的生成方法作進(jìn)一步地詳細(xì)描述。
如圖2所示,本發(fā)明一個(gè)實(shí)施例提供了一種Hbase數(shù)據(jù)庫訪問日志的生成方法,該方法可以包括以下步驟:
步驟201:接收客戶端發(fā)送的訪問請(qǐng)求信息。
在本發(fā)明一個(gè)實(shí)施例中,預(yù)先在Hbase數(shù)據(jù)庫上創(chuàng)建全局的協(xié)處理器coprocessors,通過協(xié)處理器coprocessors控制Hbase數(shù)據(jù)庫的節(jié)點(diǎn)RegionServer實(shí)時(shí)接收客戶端發(fā)送的對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的請(qǐng)求信息。
例如,用戶A在客戶端B上登錄后,用戶A操作客戶端B對(duì)警務(wù)系統(tǒng)Hbase數(shù)據(jù)庫中的戶籍表1進(jìn)行訪問,客戶端B形成對(duì)應(yīng)的請(qǐng)求信息1,并將請(qǐng)求信息1發(fā)送給警務(wù)系統(tǒng)Hbase數(shù)據(jù)庫。在警務(wù)系統(tǒng)Hbase數(shù)據(jù)庫接收到請(qǐng)求信息1之前,請(qǐng)求信息1被節(jié)點(diǎn)RegionServer截獲。
步驟202:對(duì)請(qǐng)求信息進(jìn)行解析,獲取對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息。
在本發(fā)明一個(gè)實(shí)施例中,在節(jié)點(diǎn)RegionServe接收到客戶端發(fā)送的對(duì)Hbase數(shù)據(jù)進(jìn)行訪問的請(qǐng)求信息后,對(duì)獲取到的請(qǐng)求信息進(jìn)行解析,從中獲取到客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息,其中,詳細(xì)信息中包括客戶端的IP地址、客戶端上登錄的Hbase數(shù)據(jù)庫賬號(hào)、訪問類型、被訪問表的ID以及被訪問表索引行rowkey中的任意一個(gè)或多個(gè),其中訪問類型為增加、刪除、修改或查看中的任意一個(gè)。
例如,在RegionServer截獲到客戶端B發(fā)送的請(qǐng)求信息1后,對(duì)截獲到的請(qǐng)求信息1進(jìn)行解析,獲取到請(qǐng)求信息1包括的詳細(xì)信息有:客戶端B的IP地址、用戶A登錄警務(wù)系統(tǒng)Hbase數(shù)據(jù)庫的賬號(hào)、用戶A對(duì)戶籍表1進(jìn)行訪問的訪問類型、戶籍表1的ID以及戶籍表1中被訪問的索引行rowkey。其中用戶A對(duì)戶籍表1進(jìn)行訪問的訪問類型可以是在戶籍表1中新建行、刪除戶籍表1中原有的行、修改戶籍表1中原有的行或查看戶籍表1中的某一行。本實(shí)施例中用戶A對(duì)戶籍表1的訪問類型為對(duì)戶籍表1中的索引行50進(jìn)行查看。
步驟203:將獲取到的詳細(xì)信息寫入預(yù)先設(shè)定的訪問日志中。
在本發(fā)明一個(gè)實(shí)施例中,預(yù)先對(duì)日志記錄組件Log4j的配置文件進(jìn)行配置,定義日志的輸出格式、日志信息的級(jí)別;在獲取到請(qǐng)求信息包括的詳細(xì)信息后,讀取日志記錄組件Log4j的配置文件,通過日志記錄組件Log4j將獲取到的詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志中。
例如,根據(jù)日志記錄組件Log4j的配置文件,通過日志記錄組件Log4j將請(qǐng)求信息1包括的詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志1中。
步驟204:將生成的訪問日志存儲(chǔ)在Hbase數(shù)據(jù)庫上。
在本發(fā)明一個(gè)實(shí)施例中,在將請(qǐng)求信息包括的詳細(xì)信息寫入訪問日志后,將訪問日志存儲(chǔ)在Hbase數(shù)據(jù)庫的本地。
例如,將請(qǐng)求信息1包括的詳細(xì)信息寫入訪問日志1后,將訪問日志1存儲(chǔ)到警務(wù)系統(tǒng)Hbase數(shù)據(jù)庫本地。
步驟205:根據(jù)解析出的詳細(xì)信息,完成客戶端對(duì)Hbase數(shù)據(jù)的訪問。
在本發(fā)明一個(gè)實(shí)施例中,生成訪問日志后,根據(jù)從請(qǐng)求信息中解析出的詳細(xì)信息,對(duì)客戶端發(fā)出的請(qǐng)求信息進(jìn)行執(zhí)行,完成客戶端對(duì)Hbase數(shù)據(jù)的訪問請(qǐng)求。
例如,根據(jù)從請(qǐng)求信息1中解析出的詳細(xì)信息,將用戶A要訪問的戶籍表1中索引行50對(duì)應(yīng)的戶籍信息發(fā)送給客戶端B,在客戶端B上展示戶籍表1中索引行50對(duì)應(yīng)的戶籍信息供用戶A查看。
步驟206:將訪問日志上傳至預(yù)設(shè)的監(jiān)控?cái)?shù)據(jù)庫中。
在本發(fā)明一個(gè)實(shí)施例中,每隔一個(gè)設(shè)定的間隔時(shí)間,通過日志采集工具Flume采集存儲(chǔ)在Hbase數(shù)據(jù)庫本地的訪問日志,將采集到的訪問日志上傳至預(yù)設(shè)的監(jiān)控?cái)?shù)據(jù)庫中。監(jiān)控?cái)?shù)據(jù)庫可以為Hadoop分布式文件系統(tǒng)(HDFS)。
例如,每隔5min,通過日志采集工具Flume采集存儲(chǔ)在警務(wù)系統(tǒng)Hbase數(shù)據(jù)庫本地的訪問日志1,將采集到的訪問日志1上傳至與警務(wù)系統(tǒng)Hbase數(shù)據(jù)庫相連的HDFS上。
步驟207:對(duì)訪問日志進(jìn)行統(tǒng)計(jì)分析后持久化到監(jiān)控?cái)?shù)據(jù)庫中。
在本發(fā)明一個(gè)實(shí)施例中,將訪問日志上傳至監(jiān)控?cái)?shù)據(jù)庫后,將訪問日志載入數(shù)據(jù)倉儲(chǔ)工具Hive,通過倉儲(chǔ)工具Hive對(duì)訪問日志進(jìn)行統(tǒng)計(jì)分析,對(duì)訪問日志包括的各項(xiàng)內(nèi)容進(jìn)行整理,形成符合存儲(chǔ)格式要求的訪問日志,并將符合存儲(chǔ)格式要求的訪問日志持久化到監(jiān)控?cái)?shù)據(jù)庫中。
例如,在將訪問日志1上傳到HDFS上之后,通過數(shù)據(jù)倉儲(chǔ)工具Hive對(duì)訪問日志1進(jìn)行統(tǒng)計(jì)分析,從訪問日志1提取出客戶端B的IP地址、用戶A登錄警務(wù)系統(tǒng)Hbase數(shù)據(jù)庫的賬號(hào)、用戶A對(duì)戶籍表1進(jìn)行訪問的訪問類型、戶籍表1的ID以及戶籍表1中被訪問的索引行rowkey,對(duì)各個(gè)項(xiàng)目的順序及數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換后,形成符合存儲(chǔ)格式要求的訪問日志2,將訪問日志持久化到HDFS上,進(jìn)行長(zhǎng)時(shí)間存儲(chǔ)。
如圖3、圖4所示,本發(fā)明實(shí)施例提供了一種Hbase數(shù)據(jù)庫訪問日志的生成裝置。裝置實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。從硬件層面而言,如圖3所示,為本發(fā)明實(shí)施例提供的Hbase數(shù)據(jù)庫訪問日志的生成裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報(bào)文的轉(zhuǎn)發(fā)芯片等等。以軟件實(shí)現(xiàn)為例,如圖4所示,作為一個(gè)邏輯意義上的裝置,是通過其所在設(shè)備的CPU將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。本實(shí)施例提供的Hbase數(shù)據(jù)庫訪問日志的生成裝置,包括:接收單元401、解析單元402、生成單元403及執(zhí)行單元404;
接收單元401,用于通過Hbase數(shù)據(jù)庫節(jié)點(diǎn)RegionServer接收外部客戶端發(fā)送的對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的請(qǐng)求信息;
解析單元402,用于對(duì)接收單元401接收到的請(qǐng)求信息進(jìn)行解析,獲取客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息;
生成單元403,用于將解析單元402獲取到的詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志內(nèi),并將訪問日志存儲(chǔ)到Hbase數(shù)據(jù)庫中;
執(zhí)行單元404,用于根據(jù)解析單元402獲取到的詳細(xì)信息,完成客戶端對(duì)Hbase數(shù)據(jù)庫的訪問。
本發(fā)明實(shí)施例提供了一種Hbase數(shù)據(jù)庫訪問日志的生成裝置,接收單元通過Hbase數(shù)據(jù)庫的節(jié)點(diǎn)RegionServer截獲客戶端發(fā)送的對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的請(qǐng)求信息,解析單元通過對(duì)請(qǐng)求信息進(jìn)行解析獲取客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息,生成單元將獲取到的詳細(xì)信息寫入訪問日志存儲(chǔ)到Hbase數(shù)據(jù)庫中,之后執(zhí)行單元執(zhí)行客戶端的訪問請(qǐng)求。這樣,在執(zhí)行客戶端的請(qǐng)求信息之前獲取客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息,將訪問的詳細(xì)信息寫入訪問日志進(jìn)行存儲(chǔ),通過訪問日志可以獲悉客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的記錄,以實(shí)現(xiàn)對(duì)客戶端的訪問行為進(jìn)行監(jiān)控,當(dāng)Hbase數(shù)據(jù)庫被非法破壞后,通過訪問日志可以明確非法訪問者,提高了Hbase數(shù)據(jù)庫的安全性。
在本發(fā)明一個(gè)實(shí)施例中,如圖5所示,該Hbase數(shù)據(jù)訪問日志的生成裝置還包括:上傳單元405;
上傳單元405,用于每隔預(yù)設(shè)的間隔時(shí)間,通過日志采集工具Flume采集Hbase數(shù)據(jù)庫上存儲(chǔ)的訪問日志,并將采集到的訪問日志上傳至預(yù)設(shè)的監(jiān)控?cái)?shù)據(jù)庫上。
通過上傳單元將存儲(chǔ)在Hbase數(shù)據(jù)庫本地的訪問日志上傳至監(jiān)控?cái)?shù)據(jù)庫,由于一個(gè)數(shù)據(jù)庫系統(tǒng)中可能包括有多個(gè)Hbase數(shù)據(jù)庫,如果將各個(gè)Hbase數(shù)據(jù)庫的訪問日志分別存儲(chǔ)在各個(gè)Hbase數(shù)據(jù)庫上,不方便對(duì)訪問日志進(jìn)行查看及管理,通過上傳單元將訪問日志上傳至監(jiān)控?cái)?shù)據(jù)庫上,在監(jiān)控?cái)?shù)據(jù)庫可以對(duì)多個(gè)Hbase數(shù)據(jù)庫的訪問日志進(jìn)行查看和管理,提高了對(duì)Hbase數(shù)據(jù)庫訪問日志進(jìn)行管理的效率。
在本發(fā)明一個(gè)實(shí)施例中,如圖6所示,該Hbase數(shù)據(jù)訪問日志的生成裝置還包括:持久化單元406;
持久化單元406,用于將上傳單元405上傳至監(jiān)控?cái)?shù)據(jù)庫的訪問日志載入數(shù)據(jù)庫倉儲(chǔ)工具Hive,通過數(shù)據(jù)倉儲(chǔ)工具Hive對(duì)訪問日志進(jìn)行統(tǒng)計(jì)分析,形成符合存儲(chǔ)格式要求的訪問日志,并將符合存儲(chǔ)格式要求的訪問日志持久化到監(jiān)控?cái)?shù)據(jù)庫中。
持久化單元通過數(shù)據(jù)倉儲(chǔ)工具Hive對(duì)訪問日志進(jìn)行統(tǒng)計(jì)分析,形成符合存儲(chǔ)格式要求的訪問日志,并將符合存儲(chǔ)格式要求的訪問日志持久化到監(jiān)控?cái)?shù)據(jù)庫中,這樣監(jiān)控?cái)?shù)據(jù)庫可以對(duì)訪問日志進(jìn)行長(zhǎng)期存儲(chǔ),以便對(duì)客戶端的訪問過程進(jìn)行查驗(yàn);另外,通過對(duì)訪問日志進(jìn)行統(tǒng)計(jì)分析,不同的訪問日志具有相同的存儲(chǔ)格式,方便訪問日志的管理。
在本發(fā)明一個(gè)實(shí)施例中,生成單元在將解析單元解析出的詳細(xì)信息寫入訪問日志時(shí),生成單元預(yù)先對(duì)日志記錄組件Log4j的配置文件進(jìn)行配置,根據(jù)配置文件,通過日志記錄組件Log4j將詳細(xì)信息寫入預(yù)先創(chuàng)建的訪問日志內(nèi)。通過配置日志記錄組件Log4j的配置文件,可以對(duì)日志記錄組件Log4j的日志記錄過程進(jìn)行靈活配置,以使日志記錄組件Log4j通過不同的形式、路徑將詳細(xì)信息寫入訪問日志中,從而能夠?qū)Ω鞣N形式的訪問請(qǐng)求進(jìn)行記錄,提高了該Hbase數(shù)據(jù)庫訪問日志生成方法的適用性。
如圖7所述,本發(fā)明一個(gè)實(shí)施例提供了一種Hbase數(shù)據(jù)庫訪問日志的生成系統(tǒng),包括:客戶端701、Hbase數(shù)據(jù)庫702及本發(fā)明實(shí)施例提供的任意一種Hbase數(shù)據(jù)庫訪問日志的生成裝置703;
客戶端701,用于向Hbase數(shù)據(jù)庫訪問日志的生成裝置703發(fā)送對(duì)Hbase數(shù)據(jù)庫702進(jìn)行訪問的請(qǐng)求信息;
Hbase數(shù)據(jù)庫702,用于存儲(chǔ)Hbase數(shù)據(jù)庫訪問日志的生成裝置703形成的訪問日志。
在本發(fā)明一個(gè)實(shí)施例中,該Hbase數(shù)據(jù)庫訪問日志的生成系統(tǒng)還可以包括監(jiān)控?cái)?shù)據(jù)庫,Hbase數(shù)據(jù)庫訪問日志的生成裝置生成訪問日志后,將生成的訪問日志上傳至監(jiān)控?cái)?shù)據(jù)庫,將訪問日志持久化到監(jiān)控?cái)?shù)據(jù)庫中。
在本發(fā)明一個(gè)實(shí)施例中,該Hbase數(shù)據(jù)庫訪問日志的生成系統(tǒng)可以包括有一個(gè)監(jiān)控?cái)?shù)據(jù)庫和多個(gè)Hbase數(shù)據(jù)庫,每個(gè)Hbase數(shù)據(jù)庫對(duì)應(yīng)一個(gè)Hbase數(shù)據(jù)庫訪問日志的生成裝置及多個(gè)客戶端,各個(gè)Hbase數(shù)據(jù)庫的訪問日志均上傳至同一個(gè)監(jiān)控?cái)?shù)據(jù)庫中,方便訪問日志的查看及管理。
本發(fā)明提供的各個(gè)實(shí)施例,至少具有如下有益效果:
1、本發(fā)明實(shí)施例中,客戶端向Hbase數(shù)據(jù)庫發(fā)出訪問請(qǐng)求后,訪問請(qǐng)求被Hbase數(shù)據(jù)庫節(jié)點(diǎn)RegionServer接收,通過對(duì)訪問請(qǐng)求進(jìn)行解析獲取到客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息,將獲取到的詳細(xì)信息寫入訪問日志后,執(zhí)行客戶端對(duì)Hbase數(shù)據(jù)庫的訪問。這樣,訪問日志中記錄了客戶端對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問的詳細(xì)信息,通過訪問日志可以獲取客戶端對(duì)Hbase數(shù)據(jù)庫的記錄,從而能夠?qū)蛻舳说脑L問行為進(jìn)行監(jiān)控,以在Hbase數(shù)據(jù)庫被破壞時(shí)明確用戶責(zé)任,對(duì)非法用戶起到警示作用,提高了Hbase數(shù)據(jù)庫的安全性。
2、本發(fā)明實(shí)施例中,生成訪問日志后再對(duì)客戶端的訪問請(qǐng)求進(jìn)行執(zhí)行,這樣可以避免非法用戶通過發(fā)送訪問請(qǐng)求對(duì)訪問日志生成程序進(jìn)行修改,造成訪問日志生成程序無法正常生成訪問日志的情況發(fā)生,保證客戶端每一次對(duì)Hbase數(shù)據(jù)庫進(jìn)行訪問都能夠被準(zhǔn)確的記錄,進(jìn)一步提高了Hbase數(shù)據(jù)庫的安全性。
3、本發(fā)明實(shí)施例中,將生成訪問日志后,每隔一定的間隔時(shí)間,將存儲(chǔ)在Hbase數(shù)據(jù)庫本地的訪問日志上傳至監(jiān)控?cái)?shù)據(jù)庫,這樣當(dāng)數(shù)據(jù)庫系統(tǒng)包括多個(gè)Hbase數(shù)據(jù)庫時(shí),可以在一臺(tái)監(jiān)控?cái)?shù)據(jù)庫上對(duì)多臺(tái)Hbase數(shù)據(jù)塊的訪問日志進(jìn)行管理,提高對(duì)Hbase數(shù)據(jù)庫訪問日志進(jìn)行管理的效率。
4、本發(fā)明實(shí)施例中,在將訪問日志持久化到監(jiān)控?cái)?shù)據(jù)庫上時(shí),通過數(shù)據(jù)倉儲(chǔ)工具Hive對(duì)訪問日志進(jìn)行統(tǒng)計(jì)分析,獲得符合存儲(chǔ)格式要求的訪問日志,這樣存儲(chǔ)在監(jiān)控?cái)?shù)據(jù)庫上的訪問日志具有統(tǒng)一的格式,方便對(duì)訪問日志進(jìn)行查閱及管理。
5、本發(fā)明實(shí)施例中,通過日志記錄組件Log4j將請(qǐng)求信息的詳細(xì)信息寫入訪問日志時(shí),可以預(yù)先對(duì)日志記錄組件Log4j的配置文件進(jìn)行配置,以使日志記錄組件Log4j能夠以不同的形成和路徑將詳細(xì)信息寫入訪問日志,從而能夠?qū)Ω鞣N形式的訪問請(qǐng)求進(jìn)行記錄,提高了該Hbase數(shù)據(jù)庫訪問日志生成方法、裝置及系統(tǒng)的適用性。
需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)〃·····”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)中。
最后需要說明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。