。
[0154]另外,作為對(duì)上述各實(shí)施例的實(shí)現(xiàn),本公開(kāi)實(shí)施例還提供了一種日志處理裝置,該裝置位于服務(wù)器中,如圖8所示,該裝置包括:歸類訪問(wèn)日志獲取模塊10、關(guān)鍵字確定模塊20、屬性值獲取模塊30、閾值判斷模塊40和日志發(fā)送模塊50,其中,
[0155]歸類訪問(wèn)日志獲取模塊10被配置為獲取預(yù)先分為不同類型的歸類訪問(wèn)日志;
[0156]可以結(jié)合圖1中的實(shí)施例進(jìn)行說(shuō)明,其中,Redis服務(wù)器300接收到nginx服務(wù)器100的歸類日志,為nginx服務(wù)器100預(yù)先處理進(jìn)行分類的。
[0157]關(guān)鍵字確定模塊20被配置為確定每一類歸類訪問(wèn)日志對(duì)應(yīng)的屬性關(guān)鍵字;
[0158]由于nginx服務(wù)器100在對(duì)訪問(wèn)日志進(jìn)行分類時(shí),是依據(jù)屬性關(guān)鍵字進(jìn)行分類,因此每一類歸類日志都對(duì)應(yīng)有屬性關(guān)鍵字,這里只需找到或提取該屬性關(guān)鍵字就可以。示例性的,nginx服務(wù)器100可以將每一類歸類日志的屬性關(guān)鍵字包含在歸類日志當(dāng)中,將攜帶有屬性關(guān)鍵字的歸類日志發(fā)送給Redis服務(wù)器300,Redis服務(wù)器300在接收到nginx服務(wù)器100發(fā)送的歸類日志后,可以將其中包含的屬性關(guān)鍵字提取出來(lái)。如果收到的歸類日志中不包含屬性關(guān)鍵字,Redis服務(wù)器300也可以根據(jù)該歸類日志生成對(duì)應(yīng)的屬性關(guān)鍵字。
[0159]屬性值獲取模塊30被配置為根據(jù)所述屬性關(guān)鍵字獲取所述每一類訪問(wèn)日志對(duì)應(yīng)的屬性值;
[0160]歸類訪問(wèn)日志中,每一歸類訪問(wèn)日志對(duì)應(yīng)的屬性關(guān)鍵字可以有對(duì)應(yīng)的屬性值,該屬性值可以是該歸類訪問(wèn)日志的大小、存活時(shí)間等信息值。
[0161]閾值判斷模塊40被配置為判斷所述屬性值是否大于預(yù)先設(shè)置的屬性閾值;
[0162]日志發(fā)送模塊50被配置為在所述屬性值大于預(yù)先設(shè)置的屬性閾值時(shí),將所述歸類訪問(wèn)日志發(fā)送給分布式文件系統(tǒng)HDFS。
[0163]可以將上述屬性值中的信息值分別與預(yù)先設(shè)置的屬性閾值進(jìn)行比較,如果屬性值中的信息值都分別大于對(duì)應(yīng)的屬性閾值,那么可以將該歸類訪問(wèn)日志上傳給HDFS。否則,還需要在Redis服務(wù)器300中繼續(xù)判斷。
[0164]本公開(kāi)實(shí)施例提供的日志處理裝置,在獲取到用戶的不同類型的訪問(wèn)日志后,會(huì)提取每一歸類訪問(wèn)日志中的屬性關(guān)鍵字,根據(jù)該屬性關(guān)鍵字獲取每一類訪問(wèn)日志對(duì)應(yīng)的屬性值,如果該屬性值滿足條件,那么將滿足條件的歸類訪問(wèn)日志上傳到HDFS中。這樣可以快速響應(yīng)客戶端請(qǐng)求,也不需要維護(hù)額外的日志打點(diǎn)服務(wù)。另外,可以實(shí)現(xiàn)對(duì)線上日志進(jìn)行實(shí)時(shí)監(jiān)控,可以很方便的滿足實(shí)際的需要。
[0165]在本公開(kāi)又一實(shí)施例中,基于圖8,如圖9所示,所述屬性值包括信息占用容量;所述閾值判斷模塊40,包括:閾值獲取子模塊41、閾值判斷子模塊42和第一屬性閾值確定子模塊43,其中,
[0166]閾值獲取子模塊41被配置為根據(jù)所述屬性關(guān)鍵字獲取每一類訪問(wèn)日志對(duì)應(yīng)的預(yù)設(shè)容量閾值;
[0167]閾值判斷子模塊42被配置為判斷所述信息占用容量是否大于對(duì)應(yīng)的預(yù)設(shè)容量閾值;
[0168]第一屬性閾值確定子模塊43被配置為在所述信息占用容量大于對(duì)應(yīng)的預(yù)設(shè)容量閾值,確定所述屬性值大于預(yù)先設(shè)置的屬性閾值。
[0169]該預(yù)設(shè)容量閾值是預(yù)先設(shè)置的,當(dāng)然,也可以根據(jù)臨時(shí)需要進(jìn)行設(shè)置的。示例性的,當(dāng)該屬性關(guān)鍵字為“聊天記錄”時(shí),可以預(yù)先為該屬性關(guān)鍵字設(shè)定的預(yù)設(shè)容量閾值為5G,當(dāng)該屬性關(guān)鍵字對(duì)應(yīng)的用戶訪問(wèn)日志的信息占用量大于5G時(shí),確定用戶訪問(wèn)日志的屬性值大于預(yù)先設(shè)定的屬性閾值。
[0170]根據(jù)需要,可以通過(guò)靈活、動(dòng)態(tài)的調(diào)整每一類訪問(wèn)日志對(duì)應(yīng)的預(yù)設(shè)容量閾值,然后獲取該預(yù)設(shè)容量閾值,通過(guò)將該類用戶訪問(wèn)日志信息占用容量與對(duì)應(yīng)預(yù)設(shè)容量閾值相比較,可以使服務(wù)器快速的做出反應(yīng),做出是否上傳該類用戶訪問(wèn)日志的選擇。
[0171 ]在本公開(kāi)又一實(shí)施例中,基于圖8,如圖10所示,所述屬性值包括計(jì)時(shí)時(shí)長(zhǎng);所述閾值判斷模塊40,包括:計(jì)時(shí)子模塊44、閾值時(shí)長(zhǎng)獲取子模塊45、時(shí)長(zhǎng)判斷子模塊46和第二屬性閾值確定子模塊47,其中,
[0172]計(jì)時(shí)子模塊44被配置為在獲取到所述歸類訪問(wèn)日志時(shí)開(kāi)始計(jì)時(shí),得到計(jì)時(shí)時(shí)長(zhǎng);
[0173]閾值時(shí)長(zhǎng)獲取子模塊45被配置為根據(jù)所述屬性關(guān)鍵字獲取每一類訪問(wèn)日志對(duì)應(yīng)的預(yù)設(shè)閾值時(shí)長(zhǎng);
[0174]時(shí)長(zhǎng)判斷子模塊46被配置為判斷所述計(jì)時(shí)時(shí)長(zhǎng)是否大于對(duì)應(yīng)的預(yù)設(shè)閾值時(shí)長(zhǎng);
[0175]第二屬性閾值確定子模塊47被配置為在所述計(jì)時(shí)時(shí)長(zhǎng)大于對(duì)應(yīng)的預(yù)設(shè)閾值時(shí)長(zhǎng)時(shí),確定所述屬性值大于預(yù)先設(shè)置的屬性閾值。
[0176]該預(yù)設(shè)容量閾值是預(yù)先設(shè)置的,當(dāng)然,也可以根據(jù)臨時(shí)需要進(jìn)行設(shè)置的。示例性的,當(dāng)該屬性關(guān)鍵字為“聊天記錄”時(shí),可以預(yù)先為該屬性關(guān)鍵字設(shè)定的預(yù)設(shè)閾值時(shí)長(zhǎng)為5h,當(dāng)獲取到該屬性關(guān)鍵字對(duì)應(yīng)的用戶訪問(wèn)日志的計(jì)時(shí)時(shí)長(zhǎng)大于5h時(shí),確定用戶訪問(wèn)日志的屬性值大于預(yù)先設(shè)定的屬性閾值。
[0177]根據(jù)需要,可以通過(guò)靈活、動(dòng)態(tài)的調(diào)整每一類訪問(wèn)日志對(duì)應(yīng)的預(yù)設(shè)閾值時(shí)長(zhǎng),然后獲取該預(yù)設(shè)閾值時(shí)長(zhǎng),通過(guò)將該類用戶訪問(wèn)日志計(jì)時(shí)時(shí)長(zhǎng)與對(duì)應(yīng)預(yù)設(shè)閾值時(shí)長(zhǎng)相比較,可以使服務(wù)器快速的做出反應(yīng),做出是否上傳該類用戶訪問(wèn)日志的選擇。
[0178]在本公開(kāi)又一實(shí)施例中,基于圖8,如圖11所示,所述裝置還包括:日志刪除模塊60,其中,
[0179]日志刪除模塊60被配置為將本地存在且已經(jīng)發(fā)送給所述HDFS的訪問(wèn)日志刪除。
[0180]由于Redis服務(wù)器300的存儲(chǔ)空間有限,為了給后續(xù)nginx服務(wù)器100發(fā)送的用戶訪問(wèn)日志讓出存儲(chǔ)空間,需要將本地存在且已經(jīng)發(fā)送給HDFS的訪問(wèn)日志刪除。
[0181]在本公開(kāi)又一實(shí)施例中,如圖12所示,提供了一種日志處理裝置,包括:訪問(wèn)日志獲取模塊710、關(guān)鍵字提取模塊720、日志歸類模塊730和歸類日志發(fā)送模塊740,其中,
[0182]訪問(wèn)日志獲取模塊710被配置為獲取用戶的訪問(wèn)日志;
[0183]結(jié)合圖1中的實(shí)施例,nginx服務(wù)器100可以與用戶使用的客戶端進(jìn)行數(shù)據(jù)交互,nginx服務(wù)器100可以獲取到用戶的訪問(wèn)日志。
[0184]關(guān)鍵字提取模塊720被配置為提取所述訪問(wèn)日志中的類別關(guān)鍵字;
[0185]通過(guò)對(duì)訪問(wèn)日志中的內(nèi)容信息進(jìn)行分析,或者提取訪問(wèn)日志中的特征信息,確定該訪問(wèn)日志的類別關(guān)鍵字。
[0186]日志歸類模塊730被配置為根據(jù)所述類別關(guān)鍵字將所述訪問(wèn)日志進(jìn)行歸類,得到不同類型的歸類訪問(wèn)日志;
[0187]歸類日志發(fā)送模塊740被配置為將所述歸類訪問(wèn)日志發(fā)送給預(yù)設(shè)終端。
[0188]在本公開(kāi)又一實(shí)施例中,基于圖12,如圖13所示,所述歸類日志發(fā)送模塊740,包括:接口獲取子模塊741和歸類訪問(wèn)日志發(fā)送子模塊742,其中,
[0189]接口獲取子模塊741被配置為利用服務(wù)器Webdis獲取所述預(yù)設(shè)終端的接口;
[0190]歸類訪問(wèn)日志發(fā)送子模塊742被配置為通過(guò)所述接口將所述歸類訪問(wèn)日志發(fā)送給所述預(yù)設(shè)終端。
[0191]結(jié)合圖l,Webdis服務(wù)器200分別與nginx服務(wù)器100、Redis服務(wù)器300相連接,nginx服務(wù)器100需要向Webdis服務(wù)器200發(fā)送請(qǐng)求,以獲取Redis服務(wù)器300的接口,以便將歸類日志通過(guò)該接口發(fā)送給Redis服務(wù)器300。這樣可以通過(guò)Webdis服務(wù)器200直接為nginx服務(wù)器100提供接口,將訪問(wèn)日志寫入Redis服務(wù)器300中,在通過(guò)scribe等上傳工具監(jiān)控Redis服務(wù)器300,將Redis服務(wù)器300中的日志上傳到HDFS中。
[0192]圖14是根據(jù)一示例性實(shí)施例示出的一種用于日志處理的裝置1400的結(jié)構(gòu)示意圖。例如,裝置1400可以被提供為一服務(wù)器。參照?qǐng)D14,裝置1400包括處理組件1422,其進(jìn)一步包括一個(gè)或多個(gè)處理器,以及由存儲(chǔ)器1432所代表的存儲(chǔ)器資源,用于存儲(chǔ)可由處理組件1422的執(zhí)行的指令,例如應(yīng)用程序。存儲(chǔ)器1432中存儲(chǔ)的應(yīng)用程序可以包括一個(gè)或一個(gè)以上的每一個(gè)對(duì)應(yīng)于一組指令的模塊。
[0193]裝置1400還可以包括一個(gè)電源組件1426被配置為執(zhí)行裝置1400的電源管理,一個(gè)有線或無(wú)線網(wǎng)絡(luò)接口 1450被配置為將裝置1400連接到網(wǎng)絡(luò),和一個(gè)輸入輸出(I/O)接口1458。裝置1400可以操作基于存儲(chǔ)在存儲(chǔ)器1432的操作系統(tǒng),例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM或類似。
[0194]—種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由服務(wù)器的處理器執(zhí)行時(shí),使得服務(wù)器能夠執(zhí)行一種日志處理方法,所述方