日志校驗方法及裝置的制造方法
【專利摘要】本公開是關(guān)于一種日志校驗方法及裝置,屬于分布式技術(shù)領(lǐng)域。所述方法包括:獲取待校驗的日志數(shù)據(jù),所述日志數(shù)據(jù)中包括多條消息的中間結(jié)果數(shù)據(jù);根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù);對于每一組分類數(shù)據(jù),根據(jù)第二解析字段,對所述分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑;基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗。由于在非日志處理的其他時段對日志數(shù)據(jù)進(jìn)行了分類并基于分類對中間結(jié)果數(shù)據(jù)進(jìn)行了路徑關(guān)聯(lián)性合并,進(jìn)而完成日志完整性校驗,減少了中間結(jié)果數(shù)據(jù)的長度,校驗效果較佳,可靠性好。
【專利說明】
曰志校驗方法及裝置
技術(shù)領(lǐng)域
[0001 ]本公開涉及分布式技術(shù)領(lǐng)域,特別涉及一種日志校驗方法及裝置。
【背景技術(shù)】
[0002]在分布式環(huán)境下,用于對用戶行為進(jìn)行記錄的日志通常會存儲在HDFS(Had00pDistributed File System,分布式文件系統(tǒng))中,再使用Storm等工具對日志進(jìn)行處理。在處理過程中,由于日志散落在分布式集群的各個節(jié)點中,這便需要主動對每條日志的處理流程進(jìn)行校驗,檢查每條日志在處理時是否經(jīng)過了全部的處理流程,以確保日志處理流程的完整性。
[0003]相關(guān)技術(shù)中直接在日志處理過程中對日志處理流程的完整性進(jìn)行校驗,一般是一邊進(jìn)行日志處理,一邊進(jìn)行中間結(jié)果數(shù)據(jù)合并,使得同一條消息的所有中間結(jié)果數(shù)據(jù)都被合并在一起。
【發(fā)明內(nèi)容】
[0004]為克服相關(guān)技術(shù)中存在的問題,本公開提供一種日志校驗方法及裝置。
[0005]根據(jù)本公開實施例的第一方面,提供一種日志校驗方法,所述方法包括:
[0006]獲取待校驗的日志數(shù)據(jù),所述日志數(shù)據(jù)中包括多條消息的中間結(jié)果數(shù)據(jù);
[0007]根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù);
[0008]對于每一組分類數(shù)據(jù),根據(jù)第二解析字段,對所述分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑;
[0009]基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗。
[0010]在另一個實施例中,所述基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗,包括:
[0011]對于每一條消息,對所述消息的處理路徑上中間結(jié)果數(shù)據(jù)的合并處理執(zhí)行先后順序進(jìn)行排序,確定最后一次合并處理形成的中間結(jié)果數(shù)據(jù)集合;
[0012]對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計;
[0013]若任意一條處理路徑的出口數(shù)大于入口數(shù),則檢測出所述日志數(shù)據(jù)不完整。
[0014]在另一個實施例中,所述根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù)之前,所述方法還包括:
[0015]將所述日志數(shù)據(jù)上傳至消息隊列中;
[0016]所述根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù),包括:
[0017]當(dāng)通過設(shè)置的處理線程監(jiān)聽到所述消息隊列中存儲有所述日志數(shù)據(jù)時,執(zhí)行所述根據(jù)第一解析字段對所述待校驗的日志數(shù)據(jù)進(jìn)行初步分類,得到至少一組分類數(shù)據(jù)的步驟。
[0018]在另一個實施例中,所述根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù)之后,所述方法還包括:
[0019]將所述至少一組分類數(shù)據(jù)分列存儲在中間表中。
[0020]在另一個實施例中,所述對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計,包括:
[0021]采用鍵值對的形式,對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計。
[0022]根據(jù)本公開實施例的第二方面,提供一種日志校驗裝置,所述裝置包括:
[0023]獲取模塊,被配置為獲取待校驗的日志數(shù)據(jù),所述日志數(shù)據(jù)中包括多條消息的中間結(jié)果數(shù)據(jù);
[0024]分類模塊,被配置為根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù);
[0025]合并模塊,被配置為對于每一組分類數(shù)據(jù),根據(jù)第二解析字段,對所述分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑;
[0026]校驗?zāi)K,被配置為基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗。
[0027]在另一個實施例中,所述校驗?zāi)K,被配置為對于每一條消息,對所述消息的處理路徑上中間結(jié)果數(shù)據(jù)的合并處理執(zhí)行先后順序進(jìn)行排序,確定最后一次合并處理形成的中間結(jié)果數(shù)據(jù)集合;對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計;若任意一條處理路徑的出口數(shù)大于入口數(shù),則檢測出所述日志數(shù)據(jù)不完整。
[0028]在另一個實施例中,所述裝置還包括:
[0029]上傳模塊,被配置為將所述日志數(shù)據(jù)上傳至消息隊列中;
[0030]所述分類模塊,被配置為當(dāng)通過設(shè)置的處理線程監(jiān)聽到所述消息隊列中存儲有所述日志數(shù)據(jù)時,執(zhí)行所述根據(jù)第一解析字段對所述待校驗的日志數(shù)據(jù)進(jìn)行初步分類,得到至少一組分類數(shù)據(jù)的步驟。
[0031]在另一個實施例中,所述裝置還包括:
[0032]存儲模塊,被配置為將所述至少一組分類數(shù)據(jù)分列存儲在中間表中。
[0033]在另一個實施例中,所述校驗?zāi)K,被配置為采用鍵值對的形式,對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計。
[0034]本公開的實施例提供的技術(shù)方案可以包括以下有益效果:
[0035]在獲取到待校驗的日志數(shù)據(jù)后,根據(jù)第一解析字段對日志數(shù)據(jù)進(jìn)行分類得到至少一組分類數(shù)據(jù);之后,對于每一組分類數(shù)據(jù),根據(jù)第二解析字對該分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑,最終基于每一條消息的處理路徑對日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗,由于在非日志處理的其他時段對日志數(shù)據(jù)進(jìn)行了分類并基于分類對中間結(jié)果數(shù)據(jù)進(jìn)行了路徑關(guān)聯(lián)性合并,進(jìn)而完成日志完整性校驗,減少了中間結(jié)果數(shù)據(jù)的長度,校驗效果較佳,可靠性好。
[0036]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
【附圖說明】
[0037]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
[0038]圖1是根據(jù)一示例性實施例示出的一種日志校驗方法的流程圖。
[0039]圖2是根據(jù)一示例性實施例示出的一種日志校驗方法的流程圖。
[0040]圖3A是根據(jù)一示例性實施例示出的一種日志校驗裝置的框圖。
[0041 ]圖3B是根據(jù)一示例性實施例示出的一種日志校驗裝置的框圖。
[0042]圖3C是根據(jù)一示例性實施例示出的一種日志校驗裝置的框圖。
[0043]圖4是根據(jù)一示例性實施例示出的一種日志校驗裝置400的框圖。
【具體實施方式】
[0044]這里將詳細(xì)地對示例性實施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0045]圖1是根據(jù)一示例性實施例示出的一種日志校驗方法的流程圖,如圖1所示,該方法用于服務(wù)器中,包括以下步驟。
[0046]在步驟101中,獲取待校驗的日志數(shù)據(jù),所述日志數(shù)據(jù)中包括多條消息的中間結(jié)果數(shù)據(jù)。
[0047]在步驟102中,根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù)。
[0048]在步驟103中,對于每一組分類數(shù)據(jù),根據(jù)第二解析字段,對所述分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑。
[0049]在步驟104中,基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗。
[0050]本公開實施例提供的方法,在獲取到待校驗的日志數(shù)據(jù)后,根據(jù)第一解析字段對日志數(shù)據(jù)進(jìn)行分類得到至少一組分類數(shù)據(jù);之后,對于每一組分類數(shù)據(jù),根據(jù)第二解析字對該分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑,最終基于每一條消息的處理路徑對日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗,由于在非日志處理的其他時段對日志數(shù)據(jù)進(jìn)行了分類并基于分類對中間結(jié)果數(shù)據(jù)進(jìn)行了路徑關(guān)聯(lián)性合并,進(jìn)而完成日志完整性校驗,減少了中間結(jié)果數(shù)據(jù)的長度,校驗效果較佳,可靠性好。
[0051]在另一個實施例中,所述基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗,包括:
[0052]對于每一條消息,對所述消息的處理路徑上中間結(jié)果數(shù)據(jù)的合并處理執(zhí)行先后順序進(jìn)行排序,確定最后一次合并處理形成的中間結(jié)果數(shù)據(jù)集合;
[0053]對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計;
[0054]若任意一條處理路徑的出口數(shù)大于入口數(shù),則檢測出所述日志數(shù)據(jù)不完整。
[0055]在另一個實施例中,所述根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù)之前,所述方法還包括:
[0056]將所述日志數(shù)據(jù)上傳至消息隊列中;
[0057]所述根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù),包括:
[0058]當(dāng)通過設(shè)置的處理線程監(jiān)聽到所述消息隊列中存儲有所述日志數(shù)據(jù)時,執(zhí)行所述根據(jù)第一解析字段對所述待校驗的日志數(shù)據(jù)進(jìn)行初步分類,得到至少一組分類數(shù)據(jù)的步驟。
[0059]在另一個實施例中,所述根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù)之后,所述方法還包括:
[0060]將所述至少一組分類數(shù)據(jù)分列存儲在中間表中。
[0061]在另一個實施例中,所述對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計,包括:
[0062]采用鍵值對的形式,對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計。
[0063]上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本公開的可選實施例,在此不再
--贅述。
[0064]圖2是根據(jù)一示例性實施例示出的一種日志校驗方法的流程圖,如圖2所示,該日志校驗方法用于服務(wù)器中,包括以下步驟。
[0065]在步驟201中,獲取待校驗的日志數(shù)據(jù),將待校驗的日志數(shù)據(jù)上傳至消息隊列中。
[0066]在本公開實施例中,可通過開源的日志收集系統(tǒng)scribe從各種數(shù)據(jù)源上對用于記錄用戶行為的日志數(shù)據(jù)進(jìn)行收集。其中,scribe為日志收集提供了一種容錯且可擴(kuò)展的方案,scribe可以從不同數(shù)據(jù)源、不同機(jī)器上收集日志數(shù)據(jù)。需要說明的是,為了保證能夠獲取到日志數(shù)據(jù)以對日志數(shù)據(jù)進(jìn)行校驗,在獲取待校驗的日志數(shù)據(jù)之前,還需進(jìn)行各個數(shù)據(jù)源的數(shù)據(jù)訂閱。也即,僅在訂閱某個數(shù)據(jù)源的數(shù)據(jù)之后,才能從該數(shù)據(jù)源中獲取日志數(shù)據(jù)??蛇x地,在獲取到待校驗的日志數(shù)據(jù)后,還需通過scribe將待校驗的日志數(shù)據(jù)上傳到分布式的消息隊列中。
[0067]其中,本公開實施例還定義了多個處理線程,多個處理線程用于監(jiān)聽該消息隊列。當(dāng)該消息隊列中有待校驗的日志數(shù)據(jù)出現(xiàn)時,立即啟動下述步驟202,對該日志數(shù)據(jù)進(jìn)行校驗處理,詳細(xì)過程參見后續(xù)步驟。其中,消息隊列可為阻塞隊列,即該消息隊列中僅能存放預(yù)設(shè)數(shù)目的日志數(shù)據(jù);若當(dāng)前獲取到待校驗的日志數(shù)據(jù)后,該消息隊列中的日志數(shù)據(jù)已達(dá)到預(yù)設(shè)數(shù)目,則直至該消息隊列中出現(xiàn)空閑位置后,才將該當(dāng)前獲取到的待校驗的日志數(shù)據(jù)存儲在該消息隊列中,本公開實施例對此不進(jìn)行具體限定。其中,日志數(shù)據(jù)中包括多條消息的中間結(jié)果數(shù)據(jù)。
[0068]在步驟202中,根據(jù)第一解析字段對日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù)。
[0069]其中,第一解析字段可為用戶標(biāo)識或者消息類型等,本公開實施例對此不進(jìn)行具體限定。本步驟是對待校驗的日志數(shù)據(jù)進(jìn)行初步分類。其中,在根據(jù)用戶標(biāo)識對日志數(shù)據(jù)進(jìn)行分類時,可將每個用戶產(chǎn)生的日志數(shù)據(jù)獨立分類出來。一組分類數(shù)據(jù)可對一個用戶執(zhí)行的購買行為、游戲行為、聽歌行為、瀏覽行為等進(jìn)行記錄。在根據(jù)消息類型對日志數(shù)據(jù)進(jìn)行分類時,可將同一種操作行為對應(yīng)的日志數(shù)據(jù)分類為一組。比如,將由聽歌行為產(chǎn)生的日志數(shù)據(jù)全部分類在一起,將由游戲行為產(chǎn)生的日志數(shù)據(jù)全部分類在一起等,本公開實施例對此不進(jìn)行具體限定。
[0070]需要說明的是,在將待校驗的日志數(shù)據(jù)進(jìn)行初步分類,得到至少一組分類數(shù)據(jù)后,為了后續(xù)過程中更有利于校驗,本公開實施例設(shè)計了一個按列存儲的中間表,并將至少一組分類數(shù)據(jù)分列存儲在該中間表中,這樣便于后續(xù)過程中根據(jù)第二解析字段對待校驗的日志數(shù)據(jù)進(jìn)行進(jìn)一步地處理。
[0071 ]在步驟203中,對于每一組分類數(shù)據(jù),根據(jù)第二解析字段,對該分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成一條消息的處理路徑。
[0072]其中,第二解析字段與第一解析字段不同。若第一解析字段為用戶標(biāo)識,則第二解析字段可為消息類型;若第一解析字段為消息類型,則第二解析字段寧可為用戶標(biāo)識,本公開實施例對此不進(jìn)行具體限定。比如,在根據(jù)用戶標(biāo)識將待校驗的日志數(shù)據(jù)進(jìn)行初步分類,得到多個分類數(shù)據(jù)后。對于一個用戶對應(yīng)的一組分類數(shù)據(jù),可根據(jù)消息類型將該分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,得到一條消息的處理路徑。
[0073]其中,該組分類數(shù)據(jù)中可能包括多個不同的用戶行為產(chǎn)生的日志數(shù)據(jù),而通過消息類型可將諸如聽歌行為產(chǎn)生的至少一條消息的中間結(jié)果數(shù)據(jù)、瀏覽行為產(chǎn)生的至少一條消息的中間結(jié)果數(shù)據(jù)、購買行為產(chǎn)生的至少一條消息的中間結(jié)果數(shù)據(jù)分別分類開來。之后,再將同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,使得同一條消息的所有中間結(jié)果數(shù)據(jù)都被合并在一起,便可形成一條消息的處理路徑。其中,處理路徑記錄了一條消息經(jīng)過的處理流程,每一個處理步驟都會產(chǎn)生一個中間結(jié)果數(shù)據(jù)。
[0074]在步驟204中,基于每一條消息的處理路徑對待校驗的日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗。
[0075]在本公開實施例中,為了解決重試、日志分裂等情況造成的不良影響,還需要對每條消息的處理路徑上的中間結(jié)果數(shù)據(jù)進(jìn)行排序,使得整個消息成鏈?zhǔn)浇Y(jié)構(gòu),并以最近的一次中間結(jié)果集合為進(jìn)行主動校驗的依據(jù)。其中,重試指代的是在用戶操作過程中,可能由于誤操作或者前一次的操作服務(wù)器無響應(yīng)所以再次執(zhí)行了同樣的操作,這樣的行為便稱之為重試。需要說明的是,對于同一條消息來說,在將其對應(yīng)的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并時,由于這多個中間結(jié)果數(shù)據(jù)可能來自不同的集群或服務(wù)器,而鑒于不同的集群或服務(wù)器的反饋響應(yīng)速度有差別,因此在進(jìn)行數(shù)據(jù)合并時,可能并不會按照處理流程從前往后的順序依次合并,以處理流程依次為1-2-3-4-5,中間結(jié)果數(shù)據(jù)依次為a-b-c-d-e為例,則在進(jìn)行中間結(jié)果數(shù)據(jù)合并時,可能并不是按照處理流程執(zhí)行的先后順序a-b-c-d-e進(jìn)行合并的,而是按照類似d和e合并,再跟b合并,再跟a和c合并這樣的順序來進(jìn)行的,因此還需要對每條消息的處理路徑上的中間結(jié)果數(shù)據(jù)進(jìn)行排序,也即對該消息的處理路徑上中間結(jié)果數(shù)據(jù)的合并處理執(zhí)行先后順序進(jìn)行排序,確定最后一次合并處理形成的中間結(jié)果數(shù)據(jù)集合。并根據(jù)最后一次合并處理行程的中間結(jié)果數(shù)據(jù)集合為準(zhǔn)進(jìn)行主動校驗過程。其中,在基于每一條消息的處理路徑對待校驗的日志數(shù)據(jù)的完整性進(jìn)行校驗時,可采取下述方式實現(xiàn):對于每一條消息,對該消息的處理路徑上中間結(jié)果數(shù)據(jù)的合并處理執(zhí)行先后順序進(jìn)行排序,確定最后一次合并處理形成的中間結(jié)果數(shù)據(jù)集合;對中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計;若任意一條處理路徑的出口數(shù)大于入口數(shù),則檢測出日志數(shù)據(jù)不完整。
[0076]在本公開實施例中,采用鍵值對(key-value)對中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計。即,本公開實施例采用實時性好且線程安全的key-value數(shù)據(jù)庫,比如redis來作為計數(shù)工具。其中,采用解析字段、消息的具體內(nèi)容和處理路徑作為聯(lián)合key,標(biāo)識入口數(shù)和出口數(shù)。由于key-value數(shù)據(jù)可以部署在其他服務(wù)器,因此可大大減少運(yùn)行節(jié)點機(jī)器的壓力,同時提高了計數(shù)檢測的實時性。以處理流程依次為1-2-3-4-5為例,對于處理過程2來說,其僅對應(yīng)有處理過程I至處理過程2—個入口,和處理過程2至處理過程3—個出口,入口數(shù)等于出口數(shù),因此此處無分裂。如果此處有分裂的話,還可以繼續(xù)檢查下一個入口的計數(shù),看是否同上一個出口相吻合,依次類推,完成整個分布式日志的處理路徑的完整性校驗。
[0077]本公開實施例提供的方法,在獲取到待校驗的日志數(shù)據(jù)后,根據(jù)第一解析字段對日志數(shù)據(jù)進(jìn)行分類得到至少一組分類數(shù)據(jù);之后,對于每一組分類數(shù)據(jù),根據(jù)第二解析字對該分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑,最終基于每一條消息的處理路徑對日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗,由于在非日志處理的其他時段對日志數(shù)據(jù)進(jìn)行了分類并基于分類對中間結(jié)果數(shù)據(jù)進(jìn)行了路徑關(guān)聯(lián)性合并,進(jìn)而完成日志完整性校驗,減少了中間結(jié)果數(shù)據(jù)的長度,校驗效果較佳,可靠性好。
[0078]圖3A是根據(jù)一示例性實施例示出的一種日志校驗裝置的框圖。參照圖3A,該裝置包括獲取模塊301,分類模塊302,合并模塊303和校驗?zāi)K304。
[0079]獲取模塊301,被配置為獲取待校驗的日志數(shù)據(jù),所述日志數(shù)據(jù)中包括多條消息的中間結(jié)果數(shù)據(jù);
[0080]分類模塊302,被配置為根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù);
[0081 ]合并模塊303,被配置為對于每一組分類數(shù)據(jù),根據(jù)第二解析字段,對所述分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑;
[0082]校驗?zāi)K304,被配置為基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗。
[0083]在另一個實施例中,所述校驗?zāi)K304,被配置為對于每一條消息,對所述消息的處理路徑上中間結(jié)果數(shù)據(jù)的合并處理執(zhí)行先后順序進(jìn)行排序,確定最后一次合并處理形成的中間結(jié)果數(shù)據(jù)集合;對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計;若任意一條處理路徑的出口數(shù)大于入口數(shù),則檢測出所述日志數(shù)據(jù)不完整。
[0084]在另一個實施例中,參見圖3B,該裝置還包括:
[0085]上傳模塊305,被配置為將所述日志數(shù)據(jù)上傳至消息隊列中;
[0086]所述分類模塊,被配置為當(dāng)通過設(shè)置的處理線程監(jiān)聽到所述消息隊列中存儲有所述日志數(shù)據(jù)時,執(zhí)行所述根據(jù)第一解析字段對所述待校驗的日志數(shù)據(jù)進(jìn)行初步分類,得到至少一組分類數(shù)據(jù)的步驟。
[0087]在另一個實施例中,參見圖3C,該裝置還包括:
[0088]存儲模塊306,被配置為將所述至少一組分類數(shù)據(jù)分列存儲在中間表中。
[0089]在另一個實施例中,所述校驗?zāi)K,被配置為采用鍵值對的形式,對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計。
[0090]本公開實施例提供的裝置,在獲取到待校驗的日志數(shù)據(jù)后,根據(jù)第一解析字段對日志數(shù)據(jù)進(jìn)行分類得到至少一組分類數(shù)據(jù);之后,對于每一組分類數(shù)據(jù),根據(jù)第二解析字對該分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑,最終基于每一條消息的處理路徑對日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗,由于在非日志處理的其他時段對日志數(shù)據(jù)進(jìn)行了分類并基于分類對中間結(jié)果數(shù)據(jù)進(jìn)行了路徑關(guān)聯(lián)性合并,進(jìn)而完成日志完整性校驗,減少了中間結(jié)果數(shù)據(jù)的長度,校驗效果較佳,可靠性好。
[0091]關(guān)于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
[0092]圖4是根據(jù)一示例性實施例示出的一種日志校驗裝置400的框圖。例如,裝置400可以被提供為一服務(wù)器。參照圖4,裝置400包括處理組件422,其進(jìn)一步包括一個或多個處理器,以及由存儲器432所代表的存儲器資源,用于存儲可由處理組件422的執(zhí)行的指令,例如應(yīng)用程序。存儲器432中存儲的應(yīng)用程序可以包括一個或一個以上的每一個對應(yīng)于一組指令的模塊。此外,處理組件422被配置為執(zhí)行指令,以執(zhí)行上述方法實施例。
[0093]裝置400還可以包括一個電源組件426被配置為執(zhí)行裝置400的電源管理,一個有線或無線網(wǎng)絡(luò)接口 450被配置為將裝置400連接到網(wǎng)絡(luò),和一個輸入輸出(I/O)接口 458。裝置400可以操作基于存儲在存儲器432的操作系統(tǒng),例如Windows Server?,Mac OS X?,Unix?,LinuxTM,F(xiàn)reeBSD? 或類似。
[0094]本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
[0095]應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。
【主權(quán)項】
1.一種日志校驗方法,其特征在于,所述方法包括: 獲取待校驗的日志數(shù)據(jù),所述日志數(shù)據(jù)中包括多條消息的中間結(jié)果數(shù)據(jù); 根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù); 對于每一組分類數(shù)據(jù),根據(jù)第二解析字段,對所述分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑; 基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗,包括: 對于每一條消息,對所述消息的處理路徑上中間結(jié)果數(shù)據(jù)的合并處理執(zhí)行先后順序進(jìn)行排序,確定最后一次合并處理形成的中間結(jié)果數(shù)據(jù)集合; 對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計; 若任意一條處理路徑的出口數(shù)大于入口數(shù),則檢測出所述日志數(shù)據(jù)不完整。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù)之前,所述方法還包括: 將所述日志數(shù)據(jù)上傳至消息隊列中; 所述根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù),包括: 當(dāng)通過設(shè)置的處理線程監(jiān)聽到所述消息隊列中存儲有所述日志數(shù)據(jù)時,執(zhí)行所述根據(jù)第一解析字段對所述待校驗的日志數(shù)據(jù)進(jìn)行初步分類,得到至少一組分類數(shù)據(jù)的步驟。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù)之后,所述方法還包括: 將所述至少一組分類數(shù)據(jù)分列存儲在中間表中。5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計,包括: 采用鍵值對的形式,對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計。6.—種日志校驗裝置,其特征在于,所述裝置包括: 獲取模塊,被配置為獲取待校驗的日志數(shù)據(jù),所述日志數(shù)據(jù)中包括多條消息的中間結(jié)果數(shù)據(jù); 分類模塊,被配置為根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù); 合并模塊,被配置為對于每一組分類數(shù)據(jù),根據(jù)第二解析字段,對所述分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑; 校驗?zāi)K,被配置為基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述校驗?zāi)K,被配置為對于每一條消息,對所述消息的處理路徑上中間結(jié)果數(shù)據(jù)的合并處理執(zhí)行先后順序進(jìn)行排序,確定最后一次合并處理形成的中間結(jié)果數(shù)據(jù)集合;對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計;若任意一條處理路徑的出口數(shù)大于入口數(shù),則檢測出所述日志數(shù)據(jù)不完整。8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 上傳模塊,被配置為將所述日志數(shù)據(jù)上傳至消息隊列中; 所述分類模塊,被配置為當(dāng)通過設(shè)置的處理線程監(jiān)聽到所述消息隊列中存儲有所述日志數(shù)據(jù)時,執(zhí)行所述根據(jù)第一解析字段對所述待校驗的日志數(shù)據(jù)進(jìn)行初步分類,得到至少一組分類數(shù)據(jù)的步驟。9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 存儲模塊,被配置為將所述至少一組分類數(shù)據(jù)分列存儲在中間表中。10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述校驗?zāi)K,被配置為采用鍵值對的形式,對所述中間結(jié)果數(shù)據(jù)集合中每一條處理路徑的入口數(shù)和出口數(shù)進(jìn)行統(tǒng)計。11.一種日志校驗裝置,其特征在于,包括: 處理器; 用于存儲處理器可執(zhí)行指令的存儲器; 其中,所述處理器被配置為:獲取待校驗的日志數(shù)據(jù),所述日志數(shù)據(jù)中包括多條消息的中間結(jié)果數(shù)據(jù);根據(jù)第一解析字段對所述日志數(shù)據(jù)進(jìn)行分類,得到至少一組分類數(shù)據(jù);對于每一組分類數(shù)據(jù),根據(jù)第二解析字段,對所述分類數(shù)據(jù)中同一條消息的多個中間結(jié)果數(shù)據(jù)進(jìn)行合并,形成至少一條消息的處理路徑;基于每一條消息的處理路徑對所述日志數(shù)據(jù)的處理流程完整性進(jìn)行校驗。
【文檔編號】G06F17/30GK105843941SQ201610204404
【公開日】2016年8月10日
【申請日】2016年4月1日
【發(fā)明人】張旭華, 張濤, 陳志軍
【申請人】北京小米移動軟件有限公司