日志聚合方法及裝置的制造方法【專利摘要】本發(fā)明提供了一種日志聚合方法及裝置,該方法包括:根據(jù)網(wǎng)絡(luò)設(shè)備生成的日志的種類(lèi),將所述日志中需要輸出的字段內(nèi)容封裝在結(jié)構(gòu)體中;獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容,根據(jù)所述結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容在鏈表中進(jìn)行查詢;若判斷獲知鏈表的節(jié)點(diǎn)中已存儲(chǔ)有與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則將該日志的重復(fù)次數(shù)加1;若判斷獲知該日志的重復(fù)次數(shù)大于或等于預(yù)設(shè)的重復(fù)閾值,則將該日志中需要輸出的字段內(nèi)容輸出,并將該日志的重復(fù)次數(shù)清零。與現(xiàn)有技術(shù)相比本發(fā)明提供的日志聚合方法對(duì)日志的格式和類(lèi)型沒(méi)有限制,能夠適用于各類(lèi)日志,從而能夠?qū)θ罩具M(jìn)行更好的聚合,優(yōu)化日志性能。【專利說(shuō)明】曰志聚合方法及裝置
技術(shù)領(lǐng)域:
[0001]本發(fā)明屬于計(jì)算機(jī)
技術(shù)領(lǐng)域:
,特別涉及一種日志聚合方法及裝置?!?br>背景技術(shù):
】[0002]網(wǎng)絡(luò)設(shè)備、系統(tǒng)及服務(wù)程序等,在運(yùn)作時(shí)都會(huì)產(chǎn)生一個(gè)叫Log的事件記錄,這里的Log也即日志。每一行日志都記載著日期、時(shí)間、使用者及動(dòng)作等相關(guān)操作的描述。網(wǎng)絡(luò)設(shè)備根據(jù)防護(hù)領(lǐng)域的不同記錄的日志多種多樣,有實(shí)時(shí)性較強(qiáng)的攻擊日志,也有普通的流量探測(cè)和記錄日志。普通的流量記錄日志往往不具備實(shí)時(shí)性,但又不可缺少,例如會(huì)話日志。會(huì)話日志記錄了網(wǎng)絡(luò)安全設(shè)備處理的流量信息,主要包括五元組,出接口,入接口等信息。如果流量較大,記錄的日志量也是巨大的,且這些日志中存在許多同樣的日志。為了防止同樣的日志重復(fù)輸出,這種情況下,就出現(xiàn)了對(duì)重復(fù)日志進(jìn)行聚合的日志聚合技術(shù)。[0003]現(xiàn)有的日志聚合技術(shù),大多需要根據(jù)日志類(lèi)型以及日志中的有效字段(比如IP地址等)進(jìn)行hashkey計(jì)算,從而對(duì)根據(jù)hashkey的鏈表查詢結(jié)果對(duì)在同一鏈表中日志進(jìn)行摩人口ο[0004]然而,這種聚合方案只適合特定日志格式或類(lèi)型,例如含有例如IP地址等字段的日志格式或類(lèi)型,限制了能夠聚合的日志的類(lèi)型。且現(xiàn)有的日志聚合技術(shù),在日志重復(fù)次數(shù)達(dá)到重復(fù)閾值時(shí)才將該日志輸出,如果沒(méi)有達(dá)到重復(fù)閾值,則可能出現(xiàn)日志延遲輸出或者一直不輸出的情況?!?br/>發(fā)明內(nèi)容】[0005]本發(fā)明的目的是,提供一種適用于各類(lèi)格式及類(lèi)型的日志、且保證日志能夠正常輸出的日志聚合方法。[0006]為了達(dá)到上述目的,本發(fā)明提供了一種日志聚合方法及裝置。[0007]第一方面,本發(fā)明提供了一種日志聚合方法,包括:[0008]根據(jù)網(wǎng)絡(luò)設(shè)備生成的日志的種類(lèi),將所述日志中需要輸出的字段內(nèi)容封裝在結(jié)構(gòu)體中;[0009]獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容,根據(jù)所述結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容在鏈表中進(jìn)行查詢;[0010]若判斷獲知鏈表的節(jié)點(diǎn)中已存儲(chǔ)有與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則將該日志的重復(fù)次數(shù)加I;[0011]若判斷獲知該日志的重復(fù)次數(shù)大于或等于預(yù)設(shè)的重復(fù)閾值,則將該日志中需要輸出的字段內(nèi)容輸出,并將該日志的重復(fù)次數(shù)清零。[0012]優(yōu)選地,所述方法還包括:[0013]若判斷獲知鏈表的節(jié)點(diǎn)中沒(méi)有存儲(chǔ)與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則創(chuàng)建新節(jié)點(diǎn),在所述新節(jié)點(diǎn)中存儲(chǔ)該日志的結(jié)構(gòu)體,并將所述新節(jié)點(diǎn)加入鏈表。[0014]優(yōu)選地,所述方法還包括:[0015]若判斷獲知鏈表的節(jié)點(diǎn)當(dāng)前時(shí)間節(jié)點(diǎn)與上一次輸出字段內(nèi)容的時(shí)間節(jié)點(diǎn)的間隔大于或等于預(yù)設(shè)的超時(shí)時(shí)間且當(dāng)前節(jié)點(diǎn)的狀態(tài)為空閑,則判斷該節(jié)點(diǎn)存儲(chǔ)的日志的重復(fù)次數(shù);[0016]若判斷獲知所述日志的重復(fù)次數(shù)大于0,則將該節(jié)點(diǎn)存儲(chǔ)的日志中需要輸出的字段內(nèi)容輸出。[0017]優(yōu)選地,所述方法還包括:[0018]若判斷獲知所述日志的重復(fù)次數(shù)等于0,則刪除該節(jié)點(diǎn)。[0019]優(yōu)選地,所述獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容,根據(jù)所述結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容在鏈表中進(jìn)行查詢的步驟具體包括:[0020]獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容;[0021]計(jì)算所述結(jié)構(gòu)體的長(zhǎng)度以及字段內(nèi)容的哈希關(guān)鍵詞;[0022]根據(jù)所述哈希關(guān)鍵詞在鏈表中進(jìn)行查詢。[0023]第二方面,本發(fā)明提供了一種日志聚合裝置,包括:[0024]結(jié)構(gòu)化模塊,用于根據(jù)網(wǎng)絡(luò)設(shè)備生成的日志的種類(lèi),將所述日志中需要輸出的字段內(nèi)容封裝在結(jié)構(gòu)體中;[0025]查詢模塊,用于獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容,根據(jù)所述結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容在鏈表中進(jìn)行查詢;[0026]處理模塊,用于若判斷獲知鏈表的節(jié)點(diǎn)中已存儲(chǔ)有與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則將該日志的重復(fù)次數(shù)加I;[0027]所述處理模塊,還用于若判斷獲知該日志的重復(fù)次數(shù)大于或等于預(yù)設(shè)的重復(fù)閾值,則將該日志中需要輸出的字段內(nèi)容輸出,并將該日志的重復(fù)次數(shù)清零。[0028]優(yōu)選地,其特征在于,[0029]所述處理模塊,還用于若判斷獲知鏈表的節(jié)點(diǎn)中沒(méi)有存儲(chǔ)與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則創(chuàng)建新節(jié)點(diǎn),在所述新節(jié)點(diǎn)中存儲(chǔ)該日志的結(jié)構(gòu)體,并將所述新節(jié)點(diǎn)加入鏈表。[0030]優(yōu)選地,所述處理模塊,還用于若判斷獲知鏈表的節(jié)點(diǎn)當(dāng)前時(shí)間節(jié)點(diǎn)與上一次輸出字段內(nèi)容的時(shí)間節(jié)點(diǎn)的間隔大于或等于預(yù)設(shè)的超時(shí)時(shí)間且當(dāng)前節(jié)點(diǎn)的狀態(tài)為空閑,則判斷該節(jié)點(diǎn)存儲(chǔ)的日志的重復(fù)次數(shù);[0031]所述處理模塊,還用于若判斷獲知所述日志的重復(fù)次數(shù)大于0,則將該節(jié)點(diǎn)存儲(chǔ)的日志中需要輸出的字段內(nèi)容輸出。[0032]優(yōu)選地,所述處理模塊,還用于若判斷獲知所述日志的重復(fù)次數(shù)等于0,則刪除該節(jié)點(diǎn)。[0033]優(yōu)選地,所述查詢模塊還用于:[0034]獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容;[0035]計(jì)算所述結(jié)構(gòu)體的長(zhǎng)度以及字段內(nèi)容的哈希關(guān)鍵詞;[0036]根據(jù)所述哈希關(guān)鍵詞在鏈表中進(jìn)行查詢。[0037]本發(fā)明提供的日志聚合方法中通過(guò)將日志封裝為結(jié)構(gòu)體,再利用結(jié)構(gòu)體中的長(zhǎng)度和內(nèi)容在鏈表中查找重復(fù)日志,并在重復(fù)日志次數(shù)超過(guò)預(yù)設(shè)閾值時(shí)將日志輸出,與現(xiàn)有技術(shù)相比對(duì)日志的格式和類(lèi)型沒(méi)有限制,能夠適用于各類(lèi)日志,從而能夠?qū)θ罩具M(jìn)行更好的聚合,優(yōu)化日志性能。【附圖說(shuō)明】[0038]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些示例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0039]圖1是本發(fā)明提供的日志聚合方法實(shí)施例流程圖;[0040]圖2是圖1中步驟S102方法流程圖;[0041]圖3是本發(fā)明提供的日志聚合方法實(shí)施例流程圖;[0042]圖4是本發(fā)明提供的一種優(yōu)選地日志聚合方法實(shí)施例流程圖;[0043]圖5是本發(fā)明提供的日志聚合裝置實(shí)施例結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】[0044]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。[0045]第一方面,本發(fā)明提供了一種日志聚合方法實(shí)施例,如圖1所示,包括:[0046]S101、根據(jù)網(wǎng)絡(luò)設(shè)備生成的日志的種類(lèi),將日志中需要輸出的字段內(nèi)容封裝在結(jié)構(gòu)體中;[0047]S102、獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容,根據(jù)結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容在鏈表中進(jìn)行查詢;[0048]S103、若判斷獲知鏈表的節(jié)點(diǎn)中已存儲(chǔ)有與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則將該日志的重復(fù)次數(shù)加I;[0049]S104、若判斷獲知該日志的重復(fù)次數(shù)大于或等于預(yù)設(shè)的重復(fù)閾值,則將該日志中需要輸出的字段內(nèi)容輸出,并將該日志的重復(fù)次數(shù)清零。[0050]本發(fā)明實(shí)施例提供的日志聚合方法中通過(guò)將日志封裝為結(jié)構(gòu)體,再利用結(jié)構(gòu)體中的長(zhǎng)度和內(nèi)容在鏈表中查找重復(fù)日志,并在重復(fù)日志次數(shù)超過(guò)預(yù)設(shè)閾值時(shí)將日志輸出,與現(xiàn)有技術(shù)相比對(duì)日志的格式和類(lèi)型沒(méi)有限制,能夠適用于各類(lèi)日志,從而能夠?qū)θ罩具M(jìn)行更好的聚合,優(yōu)化日志性能。[0051]在實(shí)際應(yīng)用時(shí),這里的網(wǎng)絡(luò)設(shè)備可以為網(wǎng)絡(luò)安全設(shè)備,具體可以為路由器、防火墻、IPS(入侵檢測(cè)),IDP(入侵檢測(cè)防御)、行為管理器、核心交換機(jī)等等。這里的預(yù)設(shè)的重復(fù)閾值可以為用戶自定義設(shè)置的閾值,也可以為系統(tǒng)默認(rèn)的重復(fù)閾值,本發(fā)明對(duì)此不做具體限定。[0052]在具體實(shí)施時(shí),本發(fā)明提供的日志聚合方法實(shí)施例在步驟S103之后還包括:若判斷獲知鏈表的節(jié)點(diǎn)中沒(méi)有存儲(chǔ)與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則創(chuàng)建新節(jié)點(diǎn),在新節(jié)點(diǎn)中存儲(chǔ)該日志的結(jié)構(gòu)體,并將新節(jié)點(diǎn)加入鏈表。[0053]也就是說(shuō),若遍歷了鏈表節(jié)點(diǎn)也沒(méi)有找到存儲(chǔ)有與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,這也就意味著該日志第一次生成沒(méi)有被存儲(chǔ),或由于某些原因已被刪除目前沒(méi)有相應(yīng)的存儲(chǔ)記錄。此時(shí),可以創(chuàng)建新的節(jié)點(diǎn),在該節(jié)點(diǎn)中存儲(chǔ)該日志的結(jié)構(gòu)體,并將這一新的節(jié)點(diǎn)加入到鏈表中,若在這之后網(wǎng)絡(luò)設(shè)備又生成了與之相同的日志,則該日志的重復(fù)次數(shù)加I。因此,本發(fā)明實(shí)施例提供的日志聚合方法中鏈表節(jié)點(diǎn)中能夠根據(jù)不同的日志情況進(jìn)行自動(dòng)更新,從而能夠更有效的進(jìn)行日志聚合。[0054]在具體實(shí)施時(shí),如圖2所示,步驟S102可以包括:[0055]S1021、獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容;[0056]S1022、計(jì)算所述結(jié)構(gòu)體的長(zhǎng)度以及字段內(nèi)容的哈希關(guān)鍵詞;[0057]S1023、根據(jù)所述哈希關(guān)鍵詞在鏈表中進(jìn)行查詢。[0058]為了方便理解,下面簡(jiǎn)單說(shuō)明一下哈希表以及哈希關(guān)鍵詞。哈希表(Hashtable,也叫散列表),是根據(jù)哈希關(guān)鍵碼值(Keyvalue)而直接進(jìn)行訪問(wèn)的數(shù)據(jù)結(jié)構(gòu)。也就是說(shuō),它通過(guò)把關(guān)鍵碼值映射到表中一個(gè)位置來(lái)訪問(wèn)記錄,以加快查找的速度。這個(gè)映射函數(shù)叫做散列函數(shù),存放記錄的數(shù)組叫做散列表。給定表M,存在函數(shù)f(key),對(duì)任意給定的關(guān)鍵字值key,代入函數(shù)后若能得到包含該關(guān)鍵字的記錄在表中的地址,則稱表M為哈希(Hash)表,函數(shù)f(key)為哈希(Hash)函數(shù)。[0059]因此,本發(fā)明實(shí)施例提供的日志聚合方法在獲取了封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容后,可以計(jì)算其哈希關(guān)鍵詞,并根據(jù)所述哈希關(guān)鍵詞在鏈表中進(jìn)行,從而加快了查找速度,提供了日志聚合的效率。優(yōu)選地,這里可以利用jhash算法計(jì)算結(jié)構(gòu)體內(nèi)的字段內(nèi)容哈希關(guān)鍵詞,還可以利用其它算法,本發(fā)明對(duì)此不做具體限定。[0060]在實(shí)際應(yīng)用時(shí),由于日志的分類(lèi)不同,很有可能會(huì)出現(xiàn)某一種日志產(chǎn)生的數(shù)量較少,重復(fù)次數(shù)一直無(wú)法達(dá)到閾值,從而延遲輸出或不輸出,使用戶無(wú)法及時(shí)獲取日志內(nèi)容這樣的情況。為了防止這一情況的發(fā)生,如圖3所示,本發(fā)明實(shí)施例提供的日志聚合方法中還包括:[0061]S301、若判斷獲知鏈表節(jié)點(diǎn)的當(dāng)前時(shí)間節(jié)點(diǎn)與上一次輸出字段內(nèi)容的時(shí)間節(jié)點(diǎn)的間隔大于或等于預(yù)設(shè)的超時(shí)時(shí)間且當(dāng)前節(jié)點(diǎn)的狀態(tài)為空閑,則判斷該節(jié)點(diǎn)存儲(chǔ)的日志的重復(fù)次數(shù);[0062]S302、若判斷獲知所述日志的重復(fù)次數(shù)大于0,則將該節(jié)點(diǎn)存儲(chǔ)的日志中需要輸出的字段內(nèi)容輸出。[0063]本發(fā)明實(shí)施例提供的日志聚合方法通過(guò)設(shè)置超時(shí)時(shí)間,對(duì)于鏈表中的每一節(jié)點(diǎn)進(jìn)行時(shí)間監(jiān)控,當(dāng)間隔時(shí)間大于或等于超時(shí)時(shí)間時(shí),無(wú)論該節(jié)點(diǎn)此時(shí)存儲(chǔ)的日志的重復(fù)次數(shù)是否大于重復(fù)閾值,均將存儲(chǔ)的日志輸出,從而避免了現(xiàn)有技術(shù)中由于重復(fù)次數(shù)達(dá)不到重復(fù)閾值導(dǎo)致日志延遲輸出或不輸出的情況的發(fā)生,確保用戶能夠及時(shí)準(zhǔn)確的獲得日志內(nèi)容。[0064]需要說(shuō)明的是,對(duì)于同一節(jié)點(diǎn),這里的超時(shí)時(shí)間判定步驟與步驟S103中的鏈表節(jié)點(diǎn)查詢和S104中的重復(fù)閾值判定不會(huì)同時(shí)發(fā)生。也就是說(shuō)在當(dāng)前時(shí)刻對(duì)于該節(jié)點(diǎn)只可能進(jìn)行超時(shí)判定或查詢或重復(fù)閾值判定,不可能三者或其中的兩者同時(shí)進(jìn)行。但這三者進(jìn)行沒(méi)有必然的時(shí)間先后順序,也就是說(shuō)對(duì)于同一節(jié)點(diǎn)這三種操作時(shí)相互獨(dú)立的,且互不影響。[0065]可以理解的是,同樣地,這里的超時(shí)時(shí)間也可以為用戶自定義設(shè)置的閾值或?yàn)橄到y(tǒng)默認(rèn)的重復(fù)閾值,本發(fā)明對(duì)此不做具體限定。[0066]在具體實(shí)施時(shí),本發(fā)明實(shí)施例提供的日志聚合方法在步驟S301之后還包括:在若判斷獲知日志的重復(fù)次數(shù)等于O,則刪除該節(jié)點(diǎn)。[0067]也就是說(shuō),若某一節(jié)點(diǎn)當(dāng)前時(shí)刻與上一次日志輸出的時(shí)間間隔已經(jīng)超過(guò)了超時(shí)時(shí)間,那么首先判斷節(jié)點(diǎn)中存儲(chǔ)的日志的重復(fù)次數(shù),若等于0,也就意味著該節(jié)點(diǎn)沒(méi)有存儲(chǔ)日志,則此時(shí)沒(méi)有日志內(nèi)容可以輸出,因此刪除該節(jié)點(diǎn),從而釋放內(nèi)存,節(jié)約內(nèi)存空間。[0068]不難理解的是,本發(fā)明實(shí)施方式提供的日志聚合方法可以將上述所有的優(yōu)選實(shí)施方式組合到一起,具體方法流程圖如圖4所示,由于在前文已經(jīng)對(duì)每一種實(shí)施方式的具體步驟進(jìn)行了說(shuō)明,在此不再對(duì)組合得到的方法實(shí)施例進(jìn)行贅述。[0069]需要說(shuō)明的是,上述實(shí)施例中的舉例說(shuō)明只是為了便于更好地理解本發(fā)明實(shí)施例提供的方法,并不能構(gòu)成對(duì)本發(fā)明的具體限定。且上述的各個(gè)優(yōu)選實(shí)施方式之間不會(huì)相互影響,各個(gè)優(yōu)選實(shí)施方式之間的任意組合所得到的方案均應(yīng)該落入本發(fā)明的保護(hù)范圍。[0070]第二方面,本發(fā)明提供了一種日志聚合裝置,如圖5所示,包括:[0071]結(jié)構(gòu)化模塊501,用于根據(jù)網(wǎng)絡(luò)設(shè)備生成的日志的種類(lèi),將所述日志中需要輸出的字段內(nèi)容封裝在結(jié)構(gòu)體中;[0072]查詢模塊502,用于獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容,根據(jù)所述結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容在鏈表中進(jìn)行查詢;[0073]處理模塊503,用于若判斷獲知鏈表的節(jié)點(diǎn)中已存儲(chǔ)有與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則將該日志的重復(fù)次數(shù)加I;[0074]所述處理模塊503,還用于若判斷獲知該日志的重復(fù)次數(shù)大于或等于預(yù)設(shè)的重復(fù)閾值,則將該日志中需要輸出的字段內(nèi)容輸出,并將該日志的重復(fù)次數(shù)清零。[0075]在具體實(shí)施時(shí),所述處理模塊503,還用于若判斷獲知鏈表的節(jié)點(diǎn)中沒(méi)有存儲(chǔ)與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則創(chuàng)建新節(jié)點(diǎn),在所述新節(jié)點(diǎn)中存儲(chǔ)該日志的結(jié)構(gòu)體,并將所述新節(jié)點(diǎn)加入鏈表。[0076]在具體實(shí)施時(shí),所述處理模塊503,還用于若判斷獲知鏈表的節(jié)點(diǎn)當(dāng)前時(shí)間節(jié)點(diǎn)與上一次輸出字段內(nèi)容的時(shí)間節(jié)點(diǎn)的間隔大于或等于預(yù)設(shè)的超時(shí)時(shí)間且當(dāng)前節(jié)點(diǎn)的狀態(tài)為空閑,則判斷該節(jié)點(diǎn)存儲(chǔ)的日志的重復(fù)次數(shù);所述處理模塊,還用于若判斷獲知所述日志的重復(fù)次數(shù)大于O,則將該節(jié)點(diǎn)存儲(chǔ)的日志中需要輸出的字段內(nèi)容輸出。[0077]在具體實(shí)施時(shí),所述處理模塊503,還用于若判斷獲知所述日志的重復(fù)次數(shù)等于O,則刪除該節(jié)點(diǎn)。[0078]在具體實(shí)施時(shí),所述查詢模塊502還用于:[0079]獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容;[0080]計(jì)算所述結(jié)構(gòu)體的長(zhǎng)度以及字段內(nèi)容的哈希關(guān)鍵詞;[0081]根據(jù)所述哈希關(guān)鍵詞在鏈表中進(jìn)行查詢。[0082]由于本實(shí)施例所介紹的日志聚合裝置為可以執(zhí)行本發(fā)明實(shí)施例中的日志聚合方法的裝置,故而基于本發(fā)明實(shí)施例中所介紹的日志聚合方法,本領(lǐng)域所屬技術(shù)人員能夠了解本實(shí)施例的日志聚合裝置的【具體實(shí)施方式】以及其各種變化形式,所以在此對(duì)于該日志聚合裝置如何實(shí)現(xiàn)本發(fā)明實(shí)施例中的日志聚合方法不再詳細(xì)介紹。只要本領(lǐng)域所屬技術(shù)人員實(shí)施本發(fā)明實(shí)施例中日志聚合方法所采用的裝置,都屬于本申請(qǐng)所欲保護(hù)的范圍。[0083]以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。[0084]通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。[0085]應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。[0086]最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍?!局鳈?quán)項(xiàng)】1.一種日志聚合方法,其特征在于,包括:根據(jù)網(wǎng)絡(luò)設(shè)備生成的日志的種類(lèi),將所述日志中需要輸出的字段內(nèi)容封裝在結(jié)構(gòu)體中;獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容,根據(jù)所述結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容在鏈表中進(jìn)行查詢;若判斷獲知鏈表的節(jié)點(diǎn)中已存儲(chǔ)有與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則將該日志的重復(fù)次數(shù)加I;若判斷獲知該日志的重復(fù)次數(shù)大于或等于預(yù)設(shè)的重復(fù)閾值,則將該日志中需要輸出的字段內(nèi)容輸出,并將該日志的重復(fù)次數(shù)清零。2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括:若判斷獲知鏈表的節(jié)點(diǎn)中沒(méi)有存儲(chǔ)與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則創(chuàng)建新節(jié)點(diǎn),在所述新節(jié)點(diǎn)中存儲(chǔ)該日志的結(jié)構(gòu)體,并將所述新節(jié)點(diǎn)加入鏈表。3.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括:若判斷獲知鏈表節(jié)點(diǎn)的當(dāng)前時(shí)間節(jié)點(diǎn)與上一次輸出字段內(nèi)容的時(shí)間節(jié)點(diǎn)的間隔大于或等于預(yù)設(shè)的超時(shí)時(shí)間且當(dāng)前節(jié)點(diǎn)的狀態(tài)為空閑,則判斷該節(jié)點(diǎn)存儲(chǔ)的日志的重復(fù)次數(shù);若判斷獲知所述日志的重復(fù)次數(shù)大于O,則將該節(jié)點(diǎn)存儲(chǔ)的日志中需要輸出的字段內(nèi)容輸出。4.如權(quán)利要求3所述的方法,其特征在于,所述方法還包括:若判斷獲知所述日志的重復(fù)次數(shù)等于O,則刪除該節(jié)點(diǎn)。5.如權(quán)利要求1所述的方法,其特征在于,所述獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容,根據(jù)所述結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容在鏈表中進(jìn)行查詢的步驟具體包括:獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容;計(jì)算所述結(jié)構(gòu)體的長(zhǎng)度以及字段內(nèi)容的哈希關(guān)鍵詞;根據(jù)所述哈希關(guān)鍵詞在鏈表中進(jìn)行查詢。6.—種日志聚合裝置,其特征在于,包括:結(jié)構(gòu)化模塊,用于根據(jù)網(wǎng)絡(luò)設(shè)備生成的日志的種類(lèi),將所述日志中需要輸出的字段內(nèi)容封裝在結(jié)構(gòu)體中;查詢模塊,用于獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容,根據(jù)所述結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容在鏈表中進(jìn)行查詢;處理模塊,用于若判斷獲知鏈表的節(jié)點(diǎn)中已存儲(chǔ)有與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則將該日志的重復(fù)次數(shù)加I;所述處理模塊,還用于若判斷獲知該日志的重復(fù)次數(shù)大于或等于預(yù)設(shè)的重復(fù)閾值,則將該日志中需要輸出的字段內(nèi)容輸出,并將該日志的重復(fù)次數(shù)清零。7.如權(quán)利要求6所述的裝置,其特征在于,所述處理模塊,還用于若判斷獲知鏈表的節(jié)點(diǎn)中沒(méi)有存儲(chǔ)與該日志的結(jié)構(gòu)體的長(zhǎng)度及字段內(nèi)容均相同的結(jié)構(gòu)體,則創(chuàng)建新節(jié)點(diǎn),在所述新節(jié)點(diǎn)中存儲(chǔ)該日志的結(jié)構(gòu)體,并將所述新節(jié)點(diǎn)加入鏈表。8.如權(quán)利要求1所述的裝置,其特征在于,所述處理模塊,還用于若判斷獲知鏈表的節(jié)點(diǎn)當(dāng)前時(shí)間節(jié)點(diǎn)與上一次輸出字段內(nèi)容的時(shí)間節(jié)點(diǎn)的間隔大于或等于預(yù)設(shè)的超時(shí)時(shí)間且當(dāng)前節(jié)點(diǎn)的狀態(tài)為空閑,則判斷該節(jié)點(diǎn)存儲(chǔ)的日志的重復(fù)次數(shù);所述處理模塊,還用于若判斷獲知所述日志的重復(fù)次數(shù)大于O,則將該節(jié)點(diǎn)存儲(chǔ)的日志中需要輸出的字段內(nèi)容輸出。9.如權(quán)利要求8所述的裝置,其特征在于,所述處理模塊,還用于若判斷獲知所述日志的重復(fù)次數(shù)等于O,則刪除該節(jié)點(diǎn)。10.如權(quán)利要求6所述的裝置,其特征在于,所述查詢模塊還用于:獲取日志被封裝之后的結(jié)構(gòu)體的長(zhǎng)度,以及封裝在結(jié)構(gòu)體內(nèi)的字段內(nèi)容;計(jì)算所述結(jié)構(gòu)體的長(zhǎng)度以及字段內(nèi)容的哈希關(guān)鍵詞;根據(jù)所述哈希關(guān)鍵詞在鏈表中進(jìn)行查詢?!疚臋n編號(hào)】H04L12/24GK105847062SQ201610297447【公開(kāi)日】2016年8月10日【申請(qǐng)日】2016年5月6日【發(fā)明人】劉仙鳳【申請(qǐng)人】漢柏科技有限公司