日志處理方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種日志處理方法和裝置。其中,日志處理方法包括:集群服務(wù)器接收用戶端的日志文件;集群服務(wù)器存儲日志文件;集群服務(wù)器對日志文件進(jìn)行分析,得到分析結(jié)果;以及集群服務(wù)器輸出分析結(jié)果。通過本發(fā)明,達(dá)到了提高日志處理效率的效果。
【專利說明】日志處理方法和裝置
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及日志處理領(lǐng)域,具體而言,涉及一種日志處理方法和裝置。
【背景技術(shù)】
[0002]現(xiàn)有的日志處理系統(tǒng)通常采用傳統(tǒng)數(shù)據(jù)庫作為大數(shù)據(jù)載體,將非結(jié)構(gòu)化數(shù)據(jù)或半結(jié)構(gòu)化數(shù)據(jù)存儲于數(shù)據(jù)表中,這樣日志數(shù)據(jù)的讀寫較為復(fù)雜,且性能較低,伸縮性差,無法適應(yīng)業(yè)務(wù)的快速變化。傳統(tǒng)的日志處理系統(tǒng)對海量日志數(shù)據(jù)的存儲和分析的時間很長,且隨著日志數(shù)據(jù)的爆炸式增長,只能一味地靠硬件提高數(shù)據(jù)處理效率及增加存儲量,不僅成本高,處理高維數(shù)據(jù)的效率也不會提高很多。
[0003]傳統(tǒng)架構(gòu)無法實現(xiàn)日志處理系統(tǒng)的存儲性能的線性擴(kuò)展,當(dāng)存儲性能壓力達(dá)到存儲的極限時,無法快速有效的提升存儲的讀寫性能。隨著日志數(shù)據(jù)的爆炸式增長,現(xiàn)有的日志處理效率低的問題日益嚴(yán)峻。
[0004]針對現(xiàn)有技術(shù)中日志處理效率低的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種日志處理方法和裝置,以解決日志處理效率低的問題。
[0006]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了 一種日志處理方法。根據(jù)本發(fā)明的日志處理方法包括:集群服務(wù)器接收用戶端的日志文件;集群服務(wù)器存儲日志文件;集群服務(wù)器對日志文件進(jìn)行分析,得到分析結(jié)果;以及集群服務(wù)器輸出分析結(jié)果。
[0007]進(jìn)一步地,集群服務(wù)器存儲日志文件包括:集群服務(wù)器將日志文件拆分成日志數(shù)據(jù);以及集群服務(wù)器將日志數(shù)據(jù)傳送到分布式消息隊列中,其中,集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù),并對日志數(shù)據(jù)進(jìn)行分析。
[0008]進(jìn)一步地,在集群服務(wù)器將日志數(shù)據(jù)傳送到分布式消息隊列中之后,日志處理方法還包括:集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù);集群服務(wù)器對讀取的日志數(shù)據(jù)進(jìn)行解析,得到解析結(jié)果;集群服務(wù)器根據(jù)解析結(jié)果生成日志數(shù)據(jù)對應(yīng)的鍵值對;以及集群服務(wù)器通過將鍵值對存儲到分布式數(shù)據(jù)庫中來存儲日志文件。
[0009]進(jìn)一步地,集群服務(wù)器對日志文件進(jìn)行分析包括:集群服務(wù)器從分布式數(shù)據(jù)庫中實時獲取增量的日志數(shù)據(jù);以及集群服務(wù)器對增量的日志數(shù)據(jù)采用流式計算進(jìn)行統(tǒng)計。
[0010]進(jìn)一步地,集群服務(wù)器對日志文件進(jìn)行分析包括:集群服務(wù)器按照預(yù)設(shè)周期從分布式數(shù)據(jù)庫中獲取增量的日志數(shù)據(jù);以及集群服務(wù)器對增量的日志數(shù)據(jù)進(jìn)行統(tǒng)計計算。
[0011]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種日志處理裝置。根據(jù)本發(fā)明的日志處理裝置包括:接收單元,用于使得集群服務(wù)器接收用戶端的日志文件;存儲單元,用于使得集群服務(wù)器存儲日志文件;分析單元,用于使得集群服務(wù)器對日志文件進(jìn)行分析,得到分析結(jié)果;以及輸出單元,用于使得集群服務(wù)器輸出分析結(jié)果。
[0012]進(jìn)一步地,存儲單元包括:拆分模塊,用于使得集群服務(wù)器將日志文件拆分成日志數(shù)據(jù);以及傳送模塊,用于使得集群服務(wù)器將日志數(shù)據(jù)傳送到分布式消息隊列中,其中,集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù),并對日志數(shù)據(jù)進(jìn)行分析。
[0013]進(jìn)一步地,存儲單元還包括:讀取模塊,用于在集群服務(wù)器將日志數(shù)據(jù)傳送到分布式消息隊列中之后,使得集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù);解析模塊,用于使得集群服務(wù)器對讀取的日志數(shù)據(jù)進(jìn)行解析,得到解析結(jié)果;生成模塊,用于使得集群服務(wù)器根據(jù)解析結(jié)果生成日志數(shù)據(jù)對應(yīng)的鍵值對;以及存儲模塊,用于使得集群服務(wù)器通過將鍵值對存儲到分布式數(shù)據(jù)庫中來存儲日志文件。
[0014]進(jìn)一步地,分析單元包括:第一獲取模塊,用于使得集群服務(wù)器從分布式數(shù)據(jù)庫中實時獲取增量的日志數(shù)據(jù);以及第一計算模塊,用于使得集群服務(wù)器對增量的日志數(shù)據(jù)采用流式計算進(jìn)行統(tǒng)計。
[0015]進(jìn)一步地,分析單元包括:第二獲取模塊,用于使得集群服務(wù)器按照預(yù)設(shè)周期從分布式數(shù)據(jù)庫中獲取增量的日志數(shù)據(jù);以及第二計算模塊,用于使得集群服務(wù)器對增量的日志數(shù)據(jù)進(jìn)行統(tǒng)計計算。
[0016]通過本發(fā)明,采用集群服務(wù)器來存儲和分析的分類處理來達(dá)到海量日志處理的高效能,實現(xiàn)了海量日志分析,解決了現(xiàn)有技術(shù)中日志處理效率低的問題,達(dá)到了提高日志處理效率的效果。
【專利附圖】
【附圖說明】
[0017]構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0018]圖1是根據(jù)本發(fā)明實施例的日志處理方法的流程圖;
[0019]圖2是根據(jù)本發(fā)明實施例一種優(yōu)選的日志處理方法的流程圖;
[0020]圖3是根據(jù)本發(fā)明實施例的日志處理裝置的示意圖;以及
[0021]圖4是根據(jù)本發(fā)明實施例的一種優(yōu)選的日志處理裝置的示意圖。
【具體實施方式】
[0022]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本發(fā)明。
[0023]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0024]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。[0025]本發(fā)明實施例還提供了一種日志處理方法。該方法運行在計算機(jī)設(shè)備上。
[0026]圖1是根據(jù)本發(fā)明實施例的日志處理方法的流程圖。如圖1所示,該日志處理方法包括步驟如下:
[0027]步驟S102,集群服務(wù)器接收用戶端的日志文件。
[0028]用戶端可以是需要采集日志的服務(wù)器,也可以是用戶那一側(cè)需要采集日志的客戶端。例如,用戶通過一臺服務(wù)器對應(yīng)客戶端,不同的客戶端分別運行各自的業(yè)務(wù),客戶端會產(chǎn)生日志。同時,服務(wù)器在為個客戶端提供后臺服務(wù),服務(wù)器在運行過程中也會產(chǎn)生一些日志。集群服務(wù)器可以接收服務(wù)器或者客戶端的發(fā)送過來的日志文件,用于對日志文件進(jìn)行處理。集群服務(wù)器可以同時接收多個用戶端的日志文件,對不同用戶端的日志文件分別進(jìn)行處理。
[0029]本發(fā)明實施例中,可以在需要采集日志的用戶端設(shè)置或者搭載一個代理模塊,用于定時采集日志文件,發(fā)送到集群服務(wù)器。用戶端通過HTTP協(xié)議發(fā)送請求及其對應(yīng)的日志文件,集群服務(wù)器響應(yīng)請求后,通過提供的服務(wù)接口接收日志文件,以便于將日志文件存儲在集群服務(wù)器上。
[0030]步驟S104,集群服務(wù)器存儲日志文件。
[0031]在接收到用戶端的日志文件之后,可以將日志文件存儲到集群服務(wù)器。
[0032]具體地,存儲日志文件可以是先將日志文件拆分成多行日志數(shù)據(jù),然后將多行日志數(shù)據(jù)依次傳送至分布式消息隊列中,例如kafka消息隊列,以便于集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù)進(jìn)行分析。在將日志數(shù)據(jù)依次傳送至分布式消息隊列之后,集群服務(wù)器還可以從分布式消息隊列中讀取日志數(shù)據(jù),對讀取的日志數(shù)據(jù)進(jìn)行解析,并生成鍵值對(key-value)的形式存儲在分布式數(shù)據(jù)庫中。在存儲日志文件的同時,可以獲取日志文件的描述信息(如日志文件的路徑、創(chuàng)建時間等),存放在集群服務(wù)器的數(shù)據(jù)庫中。
[0033]步驟S106,集群服務(wù)器對日志文件進(jìn)行分析,得到分析結(jié)果。
[0034]當(dāng)用戶端將日志文件傳輸?shù)郊悍?wù)器之后,用戶可以訪問集群服務(wù)器,查詢集群服務(wù)器對日志文件的分析結(jié)果。例如,通過日志分析,可以得到用戶端業(yè)務(wù)的運行狀況或者故障狀況。對日志文件進(jìn)行分析可以是對日志文件中的信息進(jìn)行統(tǒng)計,得到統(tǒng)計結(jié)果。
[0035]由于用戶對日志文件的分析結(jié)果的查詢情況的不同,根據(jù)查詢要求的及時性可以將日志的分析分為實時分析和離線分析。實時分析通常要求在數(shù)秒內(nèi)返回上億行日志數(shù)據(jù)的分析,才能達(dá)到不影響用戶查詢分析結(jié)果的目的。對日志數(shù)據(jù)進(jìn)行實時統(tǒng)計,這部分日志數(shù)據(jù)量一般不會太大,可以通過流式計算來統(tǒng)計分析,結(jié)果暫存數(shù)據(jù)庫例如redis數(shù)據(jù)庫中,處理后再對分析結(jié)果進(jìn)行存儲。
[0036]離線分析對統(tǒng)計數(shù)據(jù)的及時性要求不高,可以隔天或者隔月分析結(jié)果進(jìn)行展示。把解析后的日志數(shù)據(jù)先存放在分布式數(shù)據(jù)庫如Hbase數(shù)據(jù)庫中,事先根據(jù)業(yè)務(wù)邏輯要求寫好任務(wù)job,按預(yù)設(shè)周期定時跑任務(wù)來計算統(tǒng)計分析日志。
[0037]步驟S108,集群服務(wù)器輸出分析結(jié)果。
[0038]輸出分析結(jié)果可以是將分析結(jié)果輸出給相應(yīng)的用戶端,在用戶端可以通過網(wǎng)頁或者應(yīng)用程序?qū)Ψ治鼋Y(jié)果進(jìn)行展示,以便于工作人員進(jìn)行查看。
[0039]本發(fā)明實施例中,集群服務(wù)器中多個服務(wù)器用于接收日志文件,多個服務(wù)器用于存儲日志文件,以及多個服務(wù)器用于分析日志文件,本發(fā)明實施例將復(fù)雜的運算均分配到各臺服務(wù)器,實現(xiàn)了整個系統(tǒng)的高并發(fā)能力,處理能力可以達(dá)到傳統(tǒng)架構(gòu)的10倍以上。通過集群服務(wù)器來存儲和分析的分類處理來達(dá)到海量日志處理的高效能,實現(xiàn)了海量日志分析,解決了現(xiàn)有技術(shù)中日志處理效率低的問題,達(dá)到了提高日志處理效率的效果。
[0040]本發(fā)明實施例可以是采用云計算原理,對日志文件進(jìn)行處理。其中,云計算(cloudcomputing)是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增加、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。云是網(wǎng)絡(luò)、互聯(lián)網(wǎng)的一種比喻說法。過去在圖中往往用云來表示電信網(wǎng),后來也用來表示互聯(lián)網(wǎng)和底層基礎(chǔ)設(shè)施的抽象。狹義云計算指IT基礎(chǔ)設(shè)施的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需資源;廣義云計算指服務(wù)的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需服務(wù)。這種服務(wù)可以是IT和軟件、互聯(lián)網(wǎng)相關(guān),也可是其他服務(wù)。它意味著計算能力也可作為一種商品通過互聯(lián)網(wǎng)進(jìn)行流通。云計算作為一種新興的技術(shù)理念,其提供的云存儲(海量數(shù)據(jù)分布存儲技術(shù))、云計算(hadoop的map reduce、流式實時計算)、云安全等很適用于大數(shù)據(jù)存儲、挖掘、分析、預(yù)警、統(tǒng)計等需求,且其高效的性能讓數(shù)據(jù)處理的及時和準(zhǔn)確得到保障。基于云計算平臺的原理,進(jìn)行前期日志數(shù)據(jù)存儲的選擇和根據(jù)數(shù)據(jù)量和查詢實時性的要求做了分類處理,最主要的是做到了一個業(yè)務(wù)任務(wù)分析的并行處理,而不是的多任務(wù)的并行處理,大大提升了查詢效率和統(tǒng)計結(jié)果的正確性。
[0041]本發(fā)明實施例的目的在于解決海量日志的云存儲,以及海量日志能夠得到及時分析和深入分析挖掘的云計算服務(wù),并且保證日志數(shù)據(jù)的安全性、準(zhǔn)確性。同時解決了日志量的增長只要通過新的計算節(jié)點來解決,而無需只是一味地靠硬件提高數(shù)據(jù)處理效率及增加
存儲量。
[0042]優(yōu)選地,集群服務(wù)器存儲日志文件的步驟包括以下步驟:
[0043]步驟SI,集群服務(wù)器將日志文件拆分成日志數(shù)據(jù)。
[0044]由于不同用戶端的日志文件的格式各不相同,而每個日志文件中包含有多個日志記錄,將日志文件拆分成日志數(shù)據(jù)可以是將日志文件拆分成多行日志數(shù)據(jù),形成數(shù)據(jù)行,以便于將不通過格式的日志文件拆分成日志數(shù)據(jù)傳送至分布式消息列中。
[0045]步驟S2,集群服務(wù)器將日志數(shù)據(jù)傳送到分布式消息隊列中。其中,集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù),并對日志數(shù)據(jù)進(jìn)行分析。
[0046]分布式消息隊列可以是kafka消息隊列,kafka的分布式消息隊列比較適合簡單的消息傳遞和分發(fā),能支持大數(shù)據(jù)量,尤其是日志數(shù)據(jù),而且與mapreduce結(jié)合做實時分析也能達(dá)到很好的效果。
[0047]優(yōu)選地,在集群服務(wù)器將日志數(shù)據(jù)傳送到分布式消息隊列中的步驟之后,日志處理方法還包括:集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù);集群服務(wù)器對讀取的日志數(shù)據(jù)進(jìn)行解析,得到解析結(jié)果;集群服務(wù)器根據(jù)解析結(jié)果生成日志數(shù)據(jù)對應(yīng)的鍵值對;以及集群服務(wù)器通過將鍵值對存儲到分布式數(shù)據(jù)庫中來存儲日志文件。
[0048]具體地,從分布式消息隊列中讀取日志數(shù)據(jù),對每條日志數(shù)據(jù)進(jìn)行解析,解析得到日志的關(guān)鍵字,例如mac地址、流量、具體應(yīng)用等,基于這些解析結(jié)果生成日志數(shù)據(jù)對應(yīng)的鍵值對,如利用mac地址為key,其他的解析結(jié)果為value,然后得到日志數(shù)據(jù)的鍵值對,然后把日志數(shù)據(jù)映射存儲到分布式數(shù)據(jù)庫如hbase數(shù)據(jù)庫中。
[0049]本發(fā)明實施例,利用分布式數(shù)據(jù)庫hbase存儲日志解析的數(shù)據(jù),由于hbase數(shù)據(jù)庫是基于key-value的數(shù)據(jù)存儲模式,擴(kuò)展性好,從hbase取數(shù)進(jìn)行分析速度夠快,而且結(jié)果可以任意存儲,要繼續(xù)存儲hbase、關(guān)系型數(shù)據(jù)或者redis均可,不會有不兼容的情況出現(xiàn)。
[0050]優(yōu)選地,集群服務(wù)器對日志文件進(jìn)行分析包括:集群服務(wù)器從分布式數(shù)據(jù)庫中實時獲取增量的日志數(shù)據(jù);以及集群服務(wù)器對增量的日志數(shù)據(jù)采用流式計算進(jìn)行統(tǒng)計。
[0051]由于日志文件的不斷累加,存儲在分布式數(shù)據(jù)庫中的日志數(shù)據(jù)也不斷增加,本發(fā)明實施例中的實時分析可以是集群服務(wù)器實時從分布式數(shù)據(jù)庫中實時獲取增量的日志數(shù)據(jù),對增量的日志數(shù)據(jù)進(jìn)行計算統(tǒng)計,避免對已經(jīng)計算過的日志數(shù)據(jù)進(jìn)行重復(fù)計算。實時獲取增量的日志數(shù)據(jù),采用流式計算對增量的數(shù)據(jù)進(jìn)行統(tǒng)計。其中,流式計算是采用storm的bolt來完成,bolt中自帶過濾、聚合、查詢數(shù)據(jù)庫等一系列操作,其中,過濾操作可以在前期的parse分析中完成,以DB表的形式存放在hbase中,只在流式計算中做了 map映射把需要的數(shù)據(jù)組織起來進(jìn)行聚合計算分析。
[0052]具體地,首先,從kafka隊列中取出日志數(shù)據(jù)經(jīng)過parse解析存放在hbase中,此過程將日志記錄進(jìn)行拆分,映射成DB表的形式存放在hbase中。然后,采用流式計算來進(jìn)行實時分析統(tǒng)計,流式計算是采用storm的bolt來完成,bolt中自帶過濾、聚合、查詢數(shù)據(jù)庫等一系列操作,其中,過濾操作可以在前期的parse分析中完成,以DB表的形式存放在hbase中,只在流式計算中做了 map映射把需要的數(shù)據(jù)組織起來進(jìn)行聚合計算分析。接著將流式計算統(tǒng)計完的結(jié)果存放在數(shù)據(jù)庫如redis數(shù)據(jù)庫中。最后,把存儲在redis的結(jié)果數(shù)據(jù)依據(jù)實際需要存放在hbase數(shù)據(jù)庫,或者關(guān)系型數(shù)據(jù)庫mysql中,供用戶查詢這些統(tǒng)計數(shù)據(jù)。
[0053]上述實施例描述了日志分析中的實時分析的一個流程,根據(jù)實時分析流程處理海量日志的實時分析,瞬間把結(jié)果反饋給客戶,提高日志分析結(jié)果的及時性。
[0054]優(yōu)選地,集群服務(wù)器對日志文件進(jìn)行分析包括:集群服務(wù)器按照預(yù)設(shè)周期從分布式數(shù)據(jù)庫中獲取增量的日志數(shù)據(jù);以及集群服務(wù)器對增量的日志數(shù)據(jù)進(jìn)行統(tǒng)計計算。
[0055]由于用戶對日志文件的分析結(jié)果的查詢情況的不同可以采用離線分析的方式對日志數(shù)據(jù)進(jìn)行分析處理。可以預(yù)先設(shè)置分析的周期即預(yù)設(shè)周期,預(yù)設(shè)周期可以根據(jù)需要進(jìn)行設(shè)置,例如一個星期或者一個月等。按照預(yù)設(shè)周期從分布式數(shù)據(jù)庫中獲取增量的日志數(shù)據(jù),在對增量的日志數(shù)據(jù)進(jìn)行統(tǒng)計計算。
[0056]具體地,可以通過以下步驟實現(xiàn):
[0057]步驟一,從kafka隊列中取出日志數(shù)據(jù)經(jīng)過parse解析存放在hbase中,此過程將日志記錄進(jìn)行拆分,映射成DB表的形式存放在hbase中。
[0058]步驟二,根據(jù)具體需要創(chuàng)建一個個的作業(yè)任務(wù),任務(wù)邏輯根據(jù)實際的業(yè)務(wù)邏輯而定。
[0059]步驟三,創(chuàng)建周期性調(diào)度Task,就是設(shè)置周期性的調(diào)度作業(yè)任務(wù),比如預(yù)先創(chuàng)建任務(wù)1,每天零點跑任務(wù)I。
[0060]步驟四,到達(dá)的調(diào)度時間,依據(jù)調(diào)度內(nèi)容啟動任務(wù)。
[0061]步驟五,執(zhí)行具體的任務(wù)邏輯計算統(tǒng)計日志數(shù)據(jù)。
[0062]步驟六,如果任務(wù)執(zhí)行失敗,則通過預(yù)先設(shè)置的通知模塊以短信或者mail的方式通知相關(guān)用戶,用戶在手動排查原因后重啟作業(yè)任務(wù)。
[0063]步驟七,任務(wù)執(zhí)行成功后,把執(zhí)行結(jié)果存放在hbase數(shù)據(jù)庫中,方便用戶查詢。[0064]步驟八,任務(wù)執(zhí)行成功并且把結(jié)果存放在hbase數(shù)據(jù)庫后,可以通過通知模塊以短信或者mail的方式通知用戶,任務(wù)執(zhí)行成功。
[0065]上述實施例描述了日志分析中的離線分析的一個流程,根據(jù)這樣的離線分析流程并行處理海量日志的離線分析,并且把結(jié)果上報給前端供用戶展示。
[0066]圖2是根據(jù)本發(fā)明實施例一種優(yōu)選的日志處理方法的流程圖。如圖2所示,該日志處理方法包括步驟如下:
[0067]步驟202,提取用戶端的日志文件。提取日志文件可以是提取預(yù)設(shè)關(guān)鍵字相關(guān)的日志文件。通過設(shè)計一個腳本類型的agent代理模塊,將其搭建在用戶端的服務(wù)器上,基于業(yè)務(wù)需要每隔一定時間采集需要的日志。提取用戶端的日志文件之后,可以將提取的日志文件推送到集群服務(wù)器。
[0068]步驟204,將推送出的日志文件存儲在集群服務(wù)器。集群服務(wù)器上存儲日志文件包括:首先是存儲日志文件,其次是把日志的描述文件(包括日志存放的路徑、大小、時間等)存儲在redis中。
[0069]步驟206,集群服務(wù)器讀取日志數(shù)據(jù),把日志數(shù)據(jù)傳送到分布式消息隊列中。
[0070]步驟208,集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù),并對日志數(shù)據(jù)進(jìn)行解析。先進(jìn)行日志解析,把有用的數(shù)據(jù)解析出來,解析后的數(shù)據(jù)存儲在hbase相應(yīng)的表字段中。
[0071]步驟210,讀取日志解析后的數(shù)據(jù)進(jìn)行分析,得到分析結(jié)果。對解析后的數(shù)據(jù)可以采取實時分析和離線分析兩種方式。
[0072]步驟212,把分析結(jié)果通過展示在用戶端??梢允峭ㄟ^Thrift以網(wǎng)頁或者手機(jī)APP的形式來展現(xiàn)。
[0073]上述實施例描述了一個日志從采集到分析最后到結(jié)果展示整個一個流程,通過集群服務(wù)器來存儲和分析的分類處理來達(dá)到海量日志處理的高效能,實現(xiàn)了海量日志分析。
[0074]下面通過本發(fā)明實施例的日志處理方法的一個應(yīng)用場景來詳細(xì)描述本發(fā)明。
[0075]對于聚合視頻流量日志的處理過程包括:首先,采集聚合視頻流量日志。然后,集群服務(wù)器把采集到的流量日志拆分成日志數(shù)據(jù)行傳送到kfaka隊列中。
[0076]在流量日志傳送到kfaka隊列中之后,集群服務(wù)器從kfaka隊列中依次讀取日志數(shù)據(jù),對每條日志進(jìn)行解析,解析成一些關(guān)鍵字,比如mac地址、流量、具體應(yīng)用等。
[0077]集群服務(wù)器解析后的結(jié)果,會形成日志數(shù)據(jù)對應(yīng)的key-value的模式,如利用mac為key,其余為value,把日志數(shù)據(jù)映射存儲到hbase中。
[0078]然后可以根據(jù)需要,采用實時分析或者離線分析的方式對日志文件進(jìn)行分析統(tǒng)計。其中,離線分析可以是每2H作為一次調(diào)度周期,調(diào)度時刻一到啟動事先設(shè)計好的任務(wù),增量計算這2H的流量情況并且更新每月的流量記錄。同時告知用戶任務(wù)的執(zhí)行情況。
[0079]實時分析可根據(jù)查詢指令,迅速查詢上一次任務(wù)跑完到查詢點的流量信息,并把實時查詢的結(jié)果和上一次任務(wù)跑完的統(tǒng)計數(shù)據(jù)作為實際的流量數(shù)據(jù)反饋給用戶。
[0080]最后,將分析結(jié)果界面展示給用戶。
[0081]基于云計算平臺的原理,進(jìn)行前期數(shù)據(jù)存儲的選擇和根據(jù)數(shù)據(jù)量和查詢實時性的要求做了分類處理,最主要的是做到了一個業(yè)務(wù)任務(wù)分析的并行處理,而不是的多任務(wù)的并行處理,大大提升了查詢效率和統(tǒng)計結(jié)果的正確性。[0082]本發(fā)明實施例提供了一種日志處理裝置,該裝置可以通過集群服務(wù)器實現(xiàn)其功能。需要說明的是,本發(fā)明實施例的日志處理裝置可以用于執(zhí)行本發(fā)明實施例所提供的日志處理方法,本發(fā)明實施例的日志處理方法也可以通過本發(fā)明實施例所提供的日志處理裝置來執(zhí)行。
[0083]圖3是根據(jù)本發(fā)明實施例的日志處理裝置的示意圖。如圖3所示,該日志處理裝置包括接收單元10、存儲單元30、分析單元50和輸出單元70。
[0084]接收單元10用于使得集群服務(wù)器接收用戶端的日志文件。
[0085]用戶端可以是需要采集日志的服務(wù)器,也可以是用戶那一側(cè)需要采集日志的客戶端。例如,用戶通過一臺服務(wù)器對應(yīng)客戶端,不同的客戶端分別運行各自的業(yè)務(wù),客戶端會產(chǎn)生日志。同時,服務(wù)器在為個客戶端提供后臺服務(wù),服務(wù)器在運行過程中也會產(chǎn)生一些日志。集群服務(wù)器可以接收服務(wù)器或者客戶端的發(fā)送過來的日志文件,用于對日志文件進(jìn)行處理。集群服務(wù)器可以同時接收多個用戶端的日志文件,對不同用戶端的日志文件分別進(jìn)行處理。
[0086]本發(fā)明實施例中,可以在需要采集日志的用戶端設(shè)置或者搭載一個代理模塊,用于定時采集日志文件,發(fā)送到集群服務(wù)器。用戶端通過HTTP協(xié)議發(fā)送請求及其對應(yīng)的日志文件,集群服務(wù)器響應(yīng)請求后,通過提供的服務(wù)接口接收日志文件,以便于將日志文件存儲在集群服務(wù)器上。
[0087]存儲單元30用于使得集群服務(wù)器存儲日志文件。
[0088]在接收到用戶端的日志文件之后,可以將日志文件存儲到集群服務(wù)器。
[0089]具體地,存儲日志文件可以是先將日志文件拆分成多行日志數(shù)據(jù),然后將多行日志數(shù)據(jù)依次傳送至分布式消息隊列中,例如kafka消息隊列,以便于集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù)進(jìn)行分析。在將日志數(shù)據(jù)依次傳送至分布式消息隊列之后,集群服務(wù)器還可以從分布式消息隊列中讀取日志數(shù)據(jù),對讀取的日志數(shù)據(jù)進(jìn)行解析,并生成鍵值對(key-value)的形式存儲在分布式數(shù)據(jù)庫中。在存儲日志文件的同時,可以獲取日志文件的描述信息(如日志文件的路徑、創(chuàng)建時間等),存放在集群服務(wù)器的數(shù)據(jù)庫中。
[0090]分析單元50用于使得集群服務(wù)器對日志文件進(jìn)行分析,得到分析結(jié)果。
[0091]當(dāng)用戶端將日志文件傳輸?shù)郊悍?wù)器之后,用戶可以訪問集群服務(wù)器,查詢集群服務(wù)器對日志文件的分析結(jié)果。例如,通過日志分析,可以得到用戶端業(yè)務(wù)的運行狀況或者故障狀況。對日志文件進(jìn)行分析可以是對日志文件中的信息進(jìn)行統(tǒng)計,得到統(tǒng)計結(jié)果。
[0092]由于用戶對日志文件的分析結(jié)果的查詢情況的不同,根據(jù)查詢要求的及時性可以將日志的分析分為實時分析和離線分析。實時分析通常要求在數(shù)秒內(nèi)返回上億行日志數(shù)據(jù)的分析,才能達(dá)到不影響用戶查詢分析結(jié)果的目的。對日志數(shù)據(jù)進(jìn)行實時統(tǒng)計,這部分日志數(shù)據(jù)量一般不會太大,可以通過流式計算來統(tǒng)計分析,結(jié)果暫存數(shù)據(jù)庫例如redis數(shù)據(jù)庫中,處理后再對分析結(jié)果進(jìn)行存儲。
[0093]離線分析對統(tǒng)計數(shù)據(jù)的及時性要求不高,可以隔天或者隔月分析結(jié)果進(jìn)行展示。把解析后的日志數(shù)據(jù)先存放在分布式數(shù)據(jù)庫如Hbase數(shù)據(jù)庫中,事先根據(jù)業(yè)務(wù)邏輯要求寫好任務(wù)job,按預(yù)設(shè)周期定時跑任務(wù)來計算統(tǒng)計分析日志。
[0094]輸出單元70用于使得集群服務(wù)器輸出分析結(jié)果。
[0095]輸出分析結(jié)果可以是將分析結(jié)果輸出給相應(yīng)的用戶端,在用戶端可以通過網(wǎng)頁或者應(yīng)用程序?qū)Ψ治鼋Y(jié)果進(jìn)行展示,以便于工作人員進(jìn)行查看。
[0096]本發(fā)明實施例中,集群服務(wù)器中多個服務(wù)器用于接收日志文件,多個服務(wù)器用于存儲日志文件,以及多個服務(wù)器用于分析日志文件,本發(fā)明實施例將復(fù)雜的運算均分配到各臺服務(wù)器,實現(xiàn)了整個系統(tǒng)的高并發(fā)能力,處理能力可以達(dá)到傳統(tǒng)架構(gòu)的10倍以上。通過集群服務(wù)器來存儲和分析的分類處理來達(dá)到海量日志處理的高效能,實現(xiàn)了海量日志分析,解決了現(xiàn)有技術(shù)中日志處理效率低的問題,達(dá)到了提高日志處理效率的效果。
[0097]本發(fā)明實施例可以是采用云計算原理,對日志文件進(jìn)行處理。其中,云計算(cloudcomputing)是基于互聯(lián)網(wǎng)的相關(guān)服務(wù)的增力卩、使用和交付模式,通常涉及通過互聯(lián)網(wǎng)來提供動態(tài)易擴(kuò)展且經(jīng)常是虛擬化的資源。云是網(wǎng)絡(luò)、互聯(lián)網(wǎng)的一種比喻說法。過去在圖中往往用云來表示電信網(wǎng),后來也用來表示互聯(lián)網(wǎng)和底層基礎(chǔ)設(shè)施的抽象。狹義云計算指IT基礎(chǔ)設(shè)施的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需資源;廣義云計算指服務(wù)的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需服務(wù)。這種服務(wù)可以是IT和軟件、互聯(lián)網(wǎng)相關(guān),也可是其他服務(wù)。它意味著計算能力也可作為一種商品通過互聯(lián)網(wǎng)進(jìn)行流通。云計算作為一種新興的技術(shù)理念,其提供的云存儲(海量數(shù)據(jù)分布存儲技術(shù))、云計算(hadoop的map reduce、流式實時計算)、云安全等很適用于大數(shù)據(jù)存儲、挖掘、分析、預(yù)警、統(tǒng)計等需求,且其高效的性能讓數(shù)據(jù)處理的及時和準(zhǔn)確得到保障。基于云計算平臺的原理,進(jìn)行前期日志數(shù)據(jù)存儲的選擇和根據(jù)數(shù)據(jù)量和查詢實時性的要求做了分類處理,最主要的是做到了一個業(yè)務(wù)任務(wù)分析的并行處理,而不是的多任務(wù)的并行處理,大大提升了查詢效率和統(tǒng)計結(jié)果的正確性。
[0098]本發(fā)明實施例的目的在于解決海量日志的云存儲,以及海量日志能夠得到及時分析和深入分析挖掘的云計算服務(wù),并且保證日志數(shù)據(jù)的安全性、準(zhǔn)確性。同時解決了日志量的增長只要通過新的計算節(jié)點來解決,而無需只是一味地靠硬件提高數(shù)據(jù)處理效率及增加
存儲量。
[0099]優(yōu)選地,存儲單元包括拆分模塊和傳送模塊。
[0100]拆分模塊用于使得集群服務(wù)器將日志文件拆分成日志數(shù)據(jù)。
[0101]由于不同用戶端的日志文件的格式各不相同,而每個日志文件中包含有多個日志記錄,將日志文件拆分成日志數(shù)據(jù)可以是將日志文件拆分成多行日志數(shù)據(jù),形成數(shù)據(jù)行,以便于將不通過格式的日志文件拆分成日志數(shù)據(jù)傳送至分布式消息列中。
[0102]傳送模塊用于使得集群服務(wù)器將日志數(shù)據(jù)傳送到分布式消息隊列中。其中,集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù),并對日志數(shù)據(jù)進(jìn)行分析。
[0103]分布式消息隊列可以是kafka消息隊列,kafka的分布式消息隊列比較適合簡單的消息傳遞和分發(fā),能支持大數(shù)據(jù)量,尤其是日志數(shù)據(jù),而且與mapreduce結(jié)合做實時分析也能達(dá)到很好的效果。
[0104]優(yōu)選地,存儲單元還包括讀取模塊、解析模塊、生成模塊和存儲模塊。
[0105]讀取模塊用于在集群服務(wù)器將日志數(shù)據(jù)傳送到分布式消息隊列中之后,使得集群服務(wù)器從分布式消息隊列中讀取日志數(shù)據(jù)。解析模塊用于使得集群服務(wù)器對讀取的日志數(shù)據(jù)進(jìn)行解析,得到解析結(jié)果。生成模塊用于使得集群服務(wù)器根據(jù)解析結(jié)果生成日志數(shù)據(jù)對應(yīng)的鍵值對。存儲模塊用于使得集群服務(wù)器通過將鍵值對存儲到分布式數(shù)據(jù)庫中來存儲日志文件。[0106]具體地,從分布式消息隊列中讀取日志數(shù)據(jù),對每條日志數(shù)據(jù)進(jìn)行解析,解析得到日志的關(guān)鍵字,例如mac地址、流量、具體應(yīng)用等,基于這些解析結(jié)果生成日志數(shù)據(jù)對應(yīng)的鍵值對,如利用mac地址為key,其他的解析結(jié)果為value,然后得到日志數(shù)據(jù)的鍵值對,然后把日志數(shù)據(jù)映射存儲到分布式數(shù)據(jù)庫如hbase數(shù)據(jù)庫中。
[0107]本發(fā)明實施例,利用分布式數(shù)據(jù)庫hbase存儲日志解析的數(shù)據(jù),由于hbase數(shù)據(jù)庫是基于key-value的數(shù)據(jù)存儲模式,擴(kuò)展性好,從hbase取數(shù)進(jìn)行分析速度夠快,而且結(jié)果可以任意存儲,要繼續(xù)存儲hbase、關(guān)系型數(shù)據(jù)或者redis均可,不會有不兼容的情況出現(xiàn)。
[0108]優(yōu)選地,分析單元包括第一獲取模塊和第一計算模塊。
[0109]第一獲取模塊用于使得集群服務(wù)器從分布式數(shù)據(jù)庫中實時獲取增量的日志數(shù)據(jù)。第一計算模塊用于使得集群服務(wù)器對增量的日志數(shù)據(jù)采用流式計算進(jìn)行統(tǒng)計。
[0110]由于日志文件的不斷累加,存儲在分布式數(shù)據(jù)庫中的日志數(shù)據(jù)也不斷增加,本發(fā)明實施例中的實時分析可以是集群服務(wù)器實時從分布式數(shù)據(jù)庫中實時獲取增量的日志數(shù)據(jù),對增量的日志數(shù)據(jù)進(jìn)行計算統(tǒng)計,避免對已經(jīng)計算過的日志數(shù)據(jù)進(jìn)行重復(fù)計算。實時獲取增量的日志數(shù)據(jù),采用流式計算對增量的數(shù)據(jù)進(jìn)行統(tǒng)計。其中,流式計算是采用storm的bolt來完成,bolt中自帶過濾、聚合、查詢數(shù)據(jù)庫等一系列操作,其中,過濾操作可以在前期的parse分析中完成,以DB表的形式存放在hbase中,只在流式計算中做了 map映射把需要的數(shù)據(jù)組織起來進(jìn)行聚合計算分析。
[0111]具體地,首先,從kafka隊列中取出日志數(shù)據(jù)經(jīng)過parse解析存放在hbase中,此過程將日志記錄進(jìn)行拆分,映射成DB表的形式存放在hbase中。然后,采用流式計算來進(jìn)行實時分析統(tǒng)計,流式計算是采用storm的bolt來完成,bolt中自帶過濾、聚合、查詢數(shù)據(jù)庫等一系列操作,其中,過濾操作可以在前期的parse分析中完成,以DB表的形式存放在hbase中,只在流式計算中做了 map映射把需要的數(shù)據(jù)組織起來進(jìn)行聚合計算分析。接著將流式計算統(tǒng)計完的結(jié)果存放在數(shù)據(jù)庫如redis數(shù)據(jù)庫中。最后,把存儲在redis的結(jié)果數(shù)據(jù)依據(jù)實際需要存放在hbase數(shù)據(jù)庫,或者關(guān)系型數(shù)據(jù)庫mysql中,供用戶查詢這些統(tǒng)計數(shù)據(jù)。
[0112]上述實施例描述了日志分析中的實時分析的一個流程,根據(jù)實時分析流程處理海量日志的實時分析,瞬間把結(jié)果反饋給客戶,提高日志分析結(jié)果的及時性。
[0113]優(yōu)選地,分析單元包括第二獲取模塊和第二計算模塊。
[0114]第二獲取模塊用于使得集群服務(wù)器按照預(yù)設(shè)周期從分布式數(shù)據(jù)庫中獲取增量的日志數(shù)據(jù)。第二計算模塊用于使得集群服務(wù)器對增量的日志數(shù)據(jù)進(jìn)行統(tǒng)計計算。
[0115]由于用戶對日志文件的分析結(jié)果的查詢情況的不同可以采用離線分析的方式對日志數(shù)據(jù)進(jìn)行分析處理??梢灶A(yù)先設(shè)置分析的周期即預(yù)設(shè)周期,預(yù)設(shè)周期可以根據(jù)需要進(jìn)行設(shè)置,例如一個星期或者一個月等。按照預(yù)設(shè)周期從分布式數(shù)據(jù)庫中獲取增量的日志數(shù)據(jù),在對增量的日志數(shù)據(jù)進(jìn)行統(tǒng)計計算。
[0116]具體地,可以通過以下步驟實現(xiàn):
[0117]步驟一,從kafka隊列中取出日志數(shù)據(jù)經(jīng)過parse解析存放在hbase中,此過程將日志記錄進(jìn)行拆分,映射成DB表的形式存放在hbase中。
[0118]步驟二,根據(jù)具體需要創(chuàng)建一個個的作業(yè)任務(wù),任務(wù)邏輯根據(jù)實際的業(yè)務(wù)邏輯而定。[0119]步驟三,創(chuàng)建周期性調(diào)度Task,就是設(shè)置周期性的調(diào)度作業(yè)任務(wù),比如預(yù)先創(chuàng)建任務(wù)1,每天零點跑任務(wù)I。
[0120]步驟四,到達(dá)的調(diào)度時間,依據(jù)調(diào)度內(nèi)容啟動任務(wù)。
[0121 ] 步驟五,執(zhí)行具體的任務(wù)邏輯計算統(tǒng)計日志數(shù)據(jù)。
[0122]步驟六,如果任務(wù)執(zhí)行失敗,則通過預(yù)先設(shè)置的通知模塊以短信或者mail的方式通知相關(guān)用戶,用戶在手動排查原因后重啟作業(yè)任務(wù)。
[0123]步驟七,任務(wù)執(zhí)行成功后,把執(zhí)行結(jié)果存放在hbase數(shù)據(jù)庫中,方便用戶查詢。
[0124]步驟八,任務(wù)執(zhí)行成功并且把結(jié)果存放在hbase數(shù)據(jù)庫后,可以通過通知模塊以短信或者mail的方式通知用戶,任務(wù)執(zhí)行成功。
[0125]上述實施例描述了日志分析中的離線分析的一個流程,根據(jù)這樣的離線分析流程并行處理海量日志的離線分析,并且把結(jié)果上報給前端供用戶展示。
[0126]圖4是根據(jù)本發(fā)明實施例的一種優(yōu)選的日志處理裝置的示意圖。如圖4所示,該實施例的日志處理裝置包括日志采集模塊20、日志存儲模塊40、日志分析模塊60和顯示模塊80。
[0127]日志采集模塊20用于從外部系統(tǒng)上提取相關(guān)日志。外部系統(tǒng)可以是需要采集日志的服務(wù)器,也可以是用戶那一側(cè)需要采集日志的客戶端,即,本發(fā)明實施例中提供的用戶端。具體地,可以是通過設(shè)計的一個agent代理,搭載在需要采集日志的服務(wù)器上,定時采集相關(guān)日志往存儲模塊傳送。
[0128]日志存儲模塊40用于把采集來的日志存儲在collector集群服務(wù)器上。日志存儲模塊40具有兩部分功能,一是通過HTTP協(xié)議將采集來的日志文件存放在集群服務(wù)器上,并且把日志文件的描述信息(例如文件路徑、創(chuàng)建時間等)存放在Redis中;二是processor處理過程,通過redis讀取日志文件的描述信息把具體日志文件數(shù)據(jù)傳送到kafka消息隊列中,供日志分析模塊60調(diào)用分析。日志存儲模塊40可以通過本發(fā)明實施例中的存儲單元來實現(xiàn)其功能。
[0129]日志分析模塊60用于計算統(tǒng)計日志相關(guān)數(shù)據(jù),根據(jù)查詢要求的及時性分為實時分析和離線分析。日志分析模塊60可以通過本發(fā)明實施例的分析單元實現(xiàn)其功能。
[0130]實時分析通常要求在數(shù)秒內(nèi)返回上億行數(shù)據(jù)的分析,從日志存儲模塊40中分發(fā)出即時的日志數(shù)據(jù)進(jìn)行實時統(tǒng)計,這部分?jǐn)?shù)據(jù)量一般不會太大,可以通過流式計算來統(tǒng)計分析,結(jié)果暫存redis中,處理后往hbase中存放,方便取數(shù)前端展示。
[0131]離線分析對統(tǒng)計數(shù)據(jù)的及時性要求不高,可以隔天或者隔月展示。從日志存儲模塊中把解析后的日志數(shù)據(jù)先存放在Hbase數(shù)據(jù)庫中,根據(jù)業(yè)務(wù)邏輯要求預(yù)先寫好任務(wù)job,定時跑任務(wù)來計算統(tǒng)計分析日志。
[0132]顯示模塊80用于將日志分析結(jié)果通過網(wǎng)頁或者手機(jī)APP展示給用戶。
[0133]本發(fā)明實施例的優(yōu)點在于:第一,采用可搭可卸的agent代理采集日志,可以方便配置采集日志類型,不需要也可以隨時卸載,方便快捷,無需重新定制開發(fā)。第二,采用集群存儲,作為一個日志中心,可接受所有傳送過來的日志,集中進(jìn)行key-value處理后進(jìn)行存儲,尤其是隨著日志量的增長,只要通過增加硬盤、內(nèi)存等硬件來擴(kuò)容即可,即方便快捷又節(jié)省開銷。第三,日志分析模塊60針對日志量和實際需求進(jìn)行分類處理,對大數(shù)據(jù)量的分析速率較快,且準(zhǔn)確性較高,對于結(jié)果的反饋可自動通知用戶,及時性得到很好的保障。第四,利用hbase存儲日志解析的數(shù)據(jù),由于hbase是基于key value的數(shù)據(jù)存儲模式,擴(kuò)展性好,從hbase數(shù)據(jù)庫取數(shù)進(jìn)行分析速度夠快,而且結(jié)果可以任意存儲,要繼續(xù)存儲hbase數(shù)據(jù)庫、關(guān)系型數(shù)據(jù)或者redis數(shù)據(jù)庫均可,不會有不兼容的情況出現(xiàn)。
[0134]綜上,本發(fā)明具有如下效果:
[0135]高運算能力,將復(fù)雜的運算均分配到各臺服務(wù)器,實現(xiàn)了整個裝置的高并發(fā)能力,處理能力是傳統(tǒng)架構(gòu)的10倍以上。
[0136]在用戶實際應(yīng)用環(huán)境中,各種不同類型的軟硬件故障發(fā)生的概率較高,如硬件損壞、網(wǎng)絡(luò)中斷、系統(tǒng)崩潰等異常都會引起服務(wù)中斷,甚至造成數(shù)據(jù)丟失。本發(fā)明實施例是一個構(gòu)建在云平臺之上的海量日志的日志處理裝置,因此它可利用云計算環(huán)境的多主機(jī)冗余來保障服務(wù)的高可靠性。
[0137]本發(fā)明實施例能夠?qū)⑺杏脩舳说谋镜卮鎯ψ鰠R總,可支持PB規(guī)模的存儲容量,且非常容易進(jìn)行存儲擴(kuò)容,整個擴(kuò)展過程不會影響服務(wù)的持續(xù)運行。
[0138]本發(fā)明實施例使用的軟件產(chǎn)品為開源產(chǎn)品,硬件采用低端的PC-SERVER,總成本較低。
[0139]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
[0140]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0141]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置,可通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
[0142]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0143]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0144]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可為個人計算機(jī)、移動終端、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲器(RAM, Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0145]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種日志處理方法,其特征在于,包括: 集群服務(wù)器接收用戶端的日志文件; 所述集群服務(wù)器存儲所述日志文件; 所述集群服務(wù)器對所述日志文件進(jìn)行分析,得到分析結(jié)果;以及 所述集群服務(wù)器輸出所述分析結(jié)果。
2.根據(jù)權(quán)利要求1所述的日志處理方法,其特征在于,所述集群服務(wù)器存儲所述日志文件包括: 所述集群服務(wù)器將所述日志文件拆分成日志數(shù)據(jù);以及 所述集群服務(wù)器將所述日志數(shù)據(jù)傳送到分布式消息隊列中, 其中,所述集群服務(wù)器從所述分布式消息隊列中讀取所述日志數(shù)據(jù),并對所 述日志數(shù)據(jù)進(jìn)行分析。
3.根據(jù)權(quán)利要求2所述的日志處理方法,其特征在于,在所述集群服務(wù)器將所述日志數(shù)據(jù)傳送到分布式消息隊列中之后,所述日志處理方法還包括: 所述集群服務(wù)器從所述分布式消息隊列中讀取所述日志數(shù)據(jù); 所述集群服務(wù)器對讀取的日志數(shù)據(jù)進(jìn)行解析,得到解析結(jié)果; 所述集群服務(wù)器根據(jù)所述解析結(jié)果生成所述日志數(shù)據(jù)對應(yīng)的鍵值對;以及 所述集群服務(wù)器通過將所述鍵值對存儲到分布式數(shù)據(jù)庫中來存儲所述日志文件。
4.根據(jù)權(quán)利要求3所述的日志處理方法,其特征在于,所述集群服務(wù)器對所述日志文件進(jìn)行分析包括: 所述集群服務(wù)器從所述分布式數(shù)據(jù)庫中實時獲取增量的日志數(shù)據(jù);以及 所述集群服務(wù)器對所述增量的日志數(shù)據(jù)采用流式計算進(jìn)行統(tǒng)計。
5.根據(jù)權(quán)利要求3所述的日志處理方法,其特征在于,所述集群服務(wù)器對所述日志文件進(jìn)行分析包括: 所述集群服務(wù)器按照預(yù)設(shè)周期從所述分布式數(shù)據(jù)庫中獲取增量的日志數(shù)據(jù);以及 所述集群服務(wù)器對所述增量的日志數(shù)據(jù)進(jìn)行統(tǒng)計計算。
6.一種日志處理裝置,其特征在于,包括: 接收單元,用于使得集群服務(wù)器接收用戶端的日志文件; 存儲單元,用于使得所述集群服務(wù)器存儲所述日志文件; 分析單元,用于使得所述集群服務(wù)器對所述日志文件進(jìn)行分析,得到分析結(jié)果;以及 輸出單元,用于使得所述集群服務(wù)器輸出所述分析結(jié)果。
7.根據(jù)權(quán)利要求6所述的日志處理裝置,其特征在于,所述存儲單元包括: 拆分模塊,用于使得所述集群服務(wù)器將所述日志文件拆分成日志數(shù)據(jù);以及 傳送模塊,用于使得所述集群服務(wù)器將所述日志數(shù)據(jù)傳送到分布式消息隊列中, 其中,所述集群服務(wù)器從所述分布式消息隊列中讀取所述日志數(shù)據(jù),并對所述日志數(shù)據(jù)進(jìn)行分析。
8.根據(jù)權(quán)利要求7所述的日志處理裝置,其特征在于,所述存儲單元還包括: 讀取模塊,用于在所述集群服務(wù)器將所述日志數(shù)據(jù)傳送到分布式消息隊列中之后,使得所述集群服務(wù)器從所述分布式消息隊列中讀取所述日志數(shù)據(jù); 解析模塊,用于使得所述集群服務(wù)器對讀取的日志數(shù)據(jù)進(jìn)行解析,得到解析結(jié)果;生成模塊,用于使得所述集群服務(wù)器根據(jù)所述解析結(jié)果生成所述日志數(shù)據(jù)對應(yīng)的鍵值對;以及 存儲模塊,用于使得所述集群服務(wù)器通過將所述鍵值對存儲到分布式數(shù)據(jù)庫中來存儲所述日志文件。
9.根據(jù)權(quán)利要求8所述的日志處理裝置,其特征在于,所述分析單元包括: 第一獲取模塊,用于使得所述集群服務(wù)器從所述分布式數(shù)據(jù)庫中實時獲取增量的日志數(shù)據(jù);以及 第一計算模塊,用于使得所述集群服務(wù)器對所述增量的日志數(shù)據(jù)采用流式計算進(jìn)行統(tǒng)計。
10.根據(jù)權(quán)利要求8所述的日志處理裝置,其特征在于,所述分析單元包括: 第二獲取模塊,用于使得所述集群服務(wù)器按照預(yù)設(shè)周期從所述分布式數(shù)據(jù)庫中獲取增量的日志數(shù)據(jù);以及 第二計算模塊,用于使得所述集群服務(wù)器對所述增量的日志數(shù)據(jù)進(jìn)行統(tǒng)計計算。
【文檔編號】G06F17/30GK103838867SQ201410106430
【公開日】2014年6月4日 申請日期:2014年3月20日 優(yōu)先權(quán)日:2014年3月20日
【發(fā)明者】洪珂, 劉華明, 盧榮斌, 閔杰, 李波, 陳燕華 申請人:網(wǎng)宿科技股份有限公司