一種二進(jìn)制日志解析方法及裝置的制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種二進(jìn)制日志解析方法及裝置,在本發(fā)明實(shí)施例所述技術(shù)方案中,用戶(hù)可以根據(jù)預(yù)置字段體集合,從中選擇字段體構(gòu)成解析模板,該解析模板中包括至少一個(gè)字段體,每個(gè)字段體包括:輸出字段名、表示該輸出字段名的字段值的位置的位置信息、表示該字段值所占的比特位數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型;然后可以通過(guò)解析模板對(duì)二進(jìn)制日志進(jìn)行解析。由于解析模板是用戶(hù)可以根據(jù)字段集合隨意配置的,所以本發(fā)明實(shí)施例提供的二進(jìn)制日志解析方法,無(wú)需為特定的二進(jìn)制日志開(kāi)發(fā)并維護(hù)日志解析應(yīng)用程序,對(duì)解析模板的維護(hù)相對(duì)于對(duì)解析應(yīng)用程序的維護(hù)工作量小,且維護(hù)方便。
【專(zhuān)利說(shuō)明】
一種二進(jìn)制日志解析方法及裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及日志解析技術(shù)領(lǐng)域,尤其涉及一種二進(jìn)制日志解析方法及裝置。
【背景技術(shù)】
[0002] 隨著海量日志分析挖掘技術(shù)的發(fā)展,如何解析設(shè)備或系統(tǒng)的日志備受業(yè)界重視。 日志解析的目的,是將待解析日志(即原始日志)中的數(shù)據(jù)通過(guò)某種邏輯組織成格式化的數(shù) 據(jù),以便于提供給下游系統(tǒng)進(jìn)行分析和挖掘。
[0003] 原始日志包括字符串日志和二進(jìn)制日志,相比較字符串日志,在數(shù)據(jù)量相同時(shí),二 進(jìn)制日志體積小、易壓縮、更便于網(wǎng)絡(luò)傳輸,但是在帶來(lái)諸多優(yōu)勢(shì)的同時(shí),也給日志解析帶 來(lái)很多不便。
[0004] 目前,二進(jìn)制日志多種多樣,一般針對(duì)一種二進(jìn)制日志開(kāi)發(fā)一套對(duì)應(yīng)的日志解析 應(yīng)用程序。由此,現(xiàn)有技術(shù)存在以下缺陷:
[0005] 1 )、一個(gè)日志解析應(yīng)用程序只能解析對(duì)應(yīng)的二進(jìn)制日志,而且每個(gè)解析應(yīng)用程序 都需要維護(hù),導(dǎo)致開(kāi)發(fā)和維護(hù)工作量大。
[0006] 2)、當(dāng)二進(jìn)制日志的解析后的數(shù)據(jù)格式改變時(shí),需要開(kāi)發(fā)人員重新開(kāi)發(fā)日志解析 應(yīng)用程序。
[0007]故此,現(xiàn)有的二進(jìn)制日志解析方法適用范圍小,二進(jìn)制日志解析應(yīng)用程序的開(kāi)發(fā) 效率低,周期長(zhǎng),維護(hù)工作量大。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明實(shí)施例提供了一種二進(jìn)制日志解析方法及裝置,用以解決目前存在的現(xiàn)有 的二進(jìn)制日志解析方法適用范圍小,二進(jìn)制日志解析應(yīng)用程序的開(kāi)發(fā)效率低,周期長(zhǎng),維護(hù) 工作量大等問(wèn)題。
[0009] 本發(fā)明實(shí)施例提供了一種二進(jìn)制日志解析方法,包括:
[0010] 獲取待解析日志;以及預(yù)先配置的解析模板;所述解析模板包括至少一個(gè)字段體, 每個(gè)字段體包括:輸出字段名、表示該輸出字段名的字段值的位置的位置信息、表示該字段 值所占的比特位數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型;
[0011] 針對(duì)每個(gè)字段體,根據(jù)該字段體的位置信息以及長(zhǎng)度信息,從所述待解析日志中 獲取該字段體的字段值對(duì)應(yīng)的二進(jìn)制數(shù);
[0012] 將所述二進(jìn)制數(shù)按照該字段體的輸出字段類(lèi)型進(jìn)行解析,得到字段值;
[0013] 將解析得到的字段值與輸出字段名對(duì)應(yīng)輸出。
[0014] 進(jìn)一步地,本發(fā)明實(shí)施例還提供了一種二進(jìn)制日志解析裝置,包括:
[0015] 獲取模塊,用于獲取待解析日志;以及預(yù)先配置的解析模板;所述解析模板包括至 少一個(gè)字段體,每個(gè)字段體包括:輸出字段名、表示該輸出字段名的字段值的位置的位置信 息、表示該字段值所占的比特位數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型;
[0016] 解析模塊,用于針對(duì)每個(gè)字段體,根據(jù)該字段體的位置信息以及長(zhǎng)度信息,從所述 待解析日志中獲取該字段體的字段值對(duì)應(yīng)的二進(jìn)制數(shù);
[0017] 字段值獲取模塊,用于將所述二進(jìn)制數(shù)按照該字段體的輸出字段類(lèi)型進(jìn)行解析, 得到字段值;
[0018] 輸出模塊,用于將解析得到的字段值與輸出字段名對(duì)應(yīng)輸出。
[0019] 發(fā)明有益效果如下:在本發(fā)明實(shí)施例所述技術(shù)方案中,用戶(hù)可以根據(jù)預(yù)置字段體 集合,從中選擇字段體構(gòu)成解析模板,該解析模板中包括至少一個(gè)字段體,每個(gè)字段體包 括:輸出字段名、表示該輸出字段名的字段值的位置的位置信息、表示該字段值所占的比特 位數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型;然后可以通過(guò)解析模板對(duì)二進(jìn)制日志進(jìn) 行解析。由于解析模板是用戶(hù)可以根據(jù)字段集合隨意配置的,所以本發(fā)明實(shí)施例提供的二 進(jìn)制日志解析方法,無(wú)需為特定的二進(jìn)制日志開(kāi)發(fā)并維護(hù)日志解析應(yīng)用程序,此外,還能夠 適用任意輸出數(shù)據(jù)格式的二進(jìn)制日志的解析,對(duì)解析模板的維護(hù)相對(duì)于對(duì)解析應(yīng)用程序的 維護(hù)工作量小,且維護(hù)方便。
【附圖說(shuō)明】
[0020] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使 用的附圖作簡(jiǎn)要介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本 領(lǐng)域的普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。
[0021] 圖1所示為本發(fā)明實(shí)施例一中所述二進(jìn)制日志解析方法的流程示意圖;
[0022] 圖2所示為本發(fā)明實(shí)施例一中所述字段體的結(jié)構(gòu)示意圖;
[0023] 圖3所示為本發(fā)明實(shí)施例一中所述解析模板的結(jié)構(gòu)示意圖;
[0024] 圖4所示為本發(fā)明實(shí)施例一中所述解析模板的另一結(jié)構(gòu)示意圖;
[0025] 圖5所示為本發(fā)明實(shí)施例二中所述二進(jìn)制日志解析裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0026] 本發(fā)明實(shí)施例提供了一種二進(jìn)制日志解析方法及裝置。在本發(fā)明實(shí)施例所述技術(shù) 方案中,用戶(hù)可以根據(jù)預(yù)置字段體集合,從中選擇字段體構(gòu)成解析模板,該解析模板中包括 至少一個(gè)字段體,每個(gè)字段體包括:輸出字段名、表示該輸出字段名的字段值的位置的位置 信息、表示該字段值所占的比特位數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型;然后可以 通過(guò)解析模板對(duì)二進(jìn)制日志進(jìn)行解析。由于解析模板是用戶(hù)可以根據(jù)字段集合隨意配置 的,所以本發(fā)明實(shí)施例提供的二進(jìn)制日志解析方法,無(wú)需為特定的二進(jìn)制日志開(kāi)發(fā)并維護(hù) 日志解析應(yīng)用程序,此外,還能夠適用任意輸出數(shù)據(jù)格式的二進(jìn)制日志的解析,對(duì)解析模板 的維護(hù)相對(duì)于對(duì)解析應(yīng)用程序的維護(hù)工作量小,且維護(hù)方便。
[0027] 為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn) 一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施 例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的 所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0028] 實(shí)施例一:
[0029]如圖1所示,其為本發(fā)明實(shí)施例一中所述二進(jìn)制日志解析方法的流程示意圖,所述 二進(jìn)制日志解析方法可包括以下步驟:
[0030] 步驟101:獲取待解析日志;以及預(yù)先配置的解析模板;所述解析模板包括至少一 個(gè)字段體,每個(gè)字段體包括:輸出字段名、表示該輸出字段名的字段值的位置的位置信息、 表示該字段值所占的比特位數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型。
[0031] 其中,在一個(gè)實(shí)施例中輸出字段類(lèi)型包括數(shù)據(jù)類(lèi)型,網(wǎng)絡(luò)通信協(xié)議定義類(lèi)型等中 的至少一種。數(shù)據(jù)類(lèi)型例如是以下中的任一種:int(Integer,整數(shù)類(lèi)型)、String(字符串)、 long(整型)、boolean(布爾型)、float(浮點(diǎn)型)、double(雙精度浮點(diǎn)型)、date(日期型)等。 網(wǎng)絡(luò)通信協(xié)議定義類(lèi)型例如是適用于表示MAC地址(Media Access Control,物理地址)的 字段類(lèi)型,適用于表示IPV4(網(wǎng)際協(xié)議版本4)或IPV6(網(wǎng)際協(xié)議版本6)的字段類(lèi)型,例如適 用于表示IP地址的字段類(lèi)型,字段類(lèi)型也可以是適用于表示時(shí)間戳的字段類(lèi)型。具體實(shí)施 時(shí),任何有特定格式要求的字段類(lèi)型均適用于本發(fā)明實(shí)施例,本發(fā)明對(duì)此不做限定。
[0032] 步驟102:針對(duì)每個(gè)字段體,根據(jù)該字段體的位置信息以及長(zhǎng)度信息,從所述待解 析日志中獲取該字段體的字段值對(duì)應(yīng)的二進(jìn)制數(shù)。
[0033] 其中,在一個(gè)實(shí)施例中,位置信息可以為字段值對(duì)應(yīng)的二進(jìn)制數(shù)的起始位置,終止 位置或中間位置中的任一種,本發(fā)明對(duì)此不做限定。只有能夠根據(jù)位置信息確定字段值對(duì) 應(yīng)的二進(jìn)制數(shù)的位置,并根據(jù)長(zhǎng)度信息確定二進(jìn)制數(shù)的位數(shù)的方法均適用于本發(fā)明實(shí)施 例,本發(fā)明對(duì)此不做限定。
[0034] 步驟103:將所述二進(jìn)制數(shù)按照該字段體的輸出字段類(lèi)型進(jìn)行解析,得到字段值。
[0035] 步驟104:將解析得到的字段值與輸出字段名對(duì)應(yīng)輸出。
[0036] 其中,在一個(gè)實(shí)施例中,解析后的待解析日志,需要按照特定的數(shù)據(jù)交換格式輸 出,故此,本發(fā)明實(shí)施例中,解析模板中還可以包括預(yù)置數(shù)據(jù)交換格式,步驟104具體可執(zhí)行 為根據(jù)解析模板中的預(yù)置數(shù)據(jù)交換格式,將解析得到的字段值與輸出字段名對(duì)應(yīng)輸出。其 中,預(yù)設(shè)數(shù)據(jù)交換格式例如是XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語(yǔ)言)、JS0N (JavaScript Object Notation JavaScript 對(duì)象表不法)、YAML(Yet Another Markup Language,另一種標(biāo)記語(yǔ)言)等中的其中一種。需要說(shuō)明的是,任何數(shù)據(jù)交換格式均適用于 本發(fā)明實(shí)施例,本發(fā)明對(duì)此不做限定。
[0037]為便于理解,下面對(duì)本發(fā)明實(shí)施例提供的日志解析方法進(jìn)行進(jìn)一步地說(shuō)明,具體 的,包括以下內(nèi)容:
[0038] 1)、關(guān)于字段體
[0039]其中,在一個(gè)實(shí)施例中,為了可以根據(jù)實(shí)際需求配置解析模板,使得配置解析模板 的操作方便易行,本發(fā)明實(shí)施例中可以預(yù)先定義字段體形成字段體集合,然后根據(jù)字段體 集合生成解析模板。具體的:
[0040] (1)、可以根據(jù)以下方法生成字段體:
[0041]步驟A1:接收用于創(chuàng)建字段體的創(chuàng)建指令;所述創(chuàng)建指令中包括待創(chuàng)建字段體的 輸出字段名、表示該輸出字段名的字段值的位置的位置信息、表示該字段值所占的比特位 數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型。
[0042]其中,在一個(gè)實(shí)施例中,字段體的結(jié)構(gòu)示意圖如圖2所示,其中,Z1表示輸出字段 名,Z2表示位置信息,Z3表示長(zhǎng)度信息、Z4表示輸出字段類(lèi)型,201、202、203均表示分割符。 例如,若創(chuàng)建指令中包括的輸出字段名為U,位置信息用字段值對(duì)應(yīng)的二進(jìn)制數(shù)的起始位相 對(duì)于預(yù)設(shè)基準(zhǔn)位置的偏移量表示,且該偏移量為2,長(zhǎng)度信息為3(表示字段自用3位二進(jìn)制 位表示),輸出字段類(lèi)型為String,用表示分割符,則最終的生成的字段體可以表示為
[0043] U; 2 ; 3 ; String
[0044]需要說(shuō)明的是,字段體中輸出字段名、位置信息、長(zhǎng)度信息以及輸出字段類(lèi)型的先 后順序不限,具體實(shí)施時(shí),可以根據(jù)實(shí)際需要設(shè)定。
[0045] 具體根據(jù)字段體解析待解析日志時(shí),可以根據(jù)分隔符確定出字段體中的各信息 (即輸出字段名、位置信息、長(zhǎng)度信息以及輸出字段類(lèi)型)。
[0046] 步驟A2:根據(jù)所述創(chuàng)建指令創(chuàng)建所述待創(chuàng)建字段體。
[0047] 例如,本發(fā)明實(shí)施例中,提供用戶(hù)自定義字段體的編輯界面,用戶(hù)可以通過(guò)界面化 的操作,通過(guò)界面中的創(chuàng)建字段體按鍵,開(kāi)始創(chuàng)建字段體。在用戶(hù)選擇創(chuàng)建字段體按鍵后, 顯示要求用戶(hù)輸入輸出字段名、位置信息、長(zhǎng)度信息以及輸出字段類(lèi)型的對(duì)話(huà)框,用戶(hù)可以 通過(guò)該對(duì)話(huà)框輸入對(duì)應(yīng)信息,從而完成字段體的創(chuàng)建。
[0048] 這樣,本發(fā)明實(shí)施例中,用戶(hù)可以根據(jù)自身實(shí)際需要?jiǎng)?chuàng)建字段體,開(kāi)發(fā)人員都可以 不用懂得編程語(yǔ)言,也可以完成解析模板的配置,相對(duì)于現(xiàn)有技術(shù)中開(kāi)發(fā)特定的解析應(yīng)用 程序,解析模板的配置更加操作簡(jiǎn)單、人性化。
[0049] (2)、可以根據(jù)方法配置所述解析模板:
[0050] 步驟B1:接收對(duì)預(yù)置字段體集合中的字段體的選擇指令。
[0051]步驟B2:根據(jù)選擇的字段體的集合生成所述解析模板。
[0052]其中,在一個(gè)實(shí)施例中,可以將選擇的字段體的集合作為解析模板。
[0053]這樣,解析模板的配置只需要通過(guò)選擇字段體即可完成,操作簡(jiǎn)便。
[0054] 其中,在一個(gè)實(shí)施例中,二進(jìn)制日志包括日志頭和日志體,為了便于了解哪些字段 體屬于日志頭,哪些字段體屬于日志體以,本發(fā)明實(shí)施例中針對(duì)所述解析模板的每個(gè)字段 體,所述解析模板中還包括表示該字段體隸屬于日志頭還是隸屬于日志體的字段體名稱(chēng), 則步驟B2還可具體包括以下步驟:
[0055] 步驟B21:接收對(duì)選擇的字段體賦予所述字段體名稱(chēng)的命名指令,該命名指令中包 括字段體名稱(chēng)為日志頭標(biāo)識(shí)或日志體標(biāo)識(shí)的指示信息。
[0056] 其中,指示信息可以包括日志頭標(biāo)識(shí)和日志體標(biāo)識(shí),即,若命名指令中包括日志頭 標(biāo)識(shí),則表示字段體的字段體名稱(chēng)為日志頭標(biāo)識(shí),該字段體隸屬于日志頭;若命名指令中包 括日志體標(biāo)識(shí),則表示字段體的字段體名稱(chēng)為日志體標(biāo)識(shí),該字段體隸屬于日志體。這樣, 根據(jù)解析模板就可以確定字段體隸屬于日志頭還是日志體。
[0057] 步驟B22:根據(jù)命名指令對(duì)選擇的字段體賦予所述字段體名稱(chēng),并生成所述解析模 板。
[0058] 最終的解析模板將包括字段頭以及字段體兩部分內(nèi)容,具體的解析模板可表示為 如圖3所不,圖3中,U1表不日志頭標(biāo)識(shí),301為分割符,用于區(qū)分日志頭和日志體,U2表不日 志體標(biāo)識(shí)。
[0059] 例如,預(yù)置字段體集合如表1所示,當(dāng)然,表1僅用于說(shuō)明本發(fā)明實(shí)施例并不用于限 定本發(fā)明實(shí)施例。
[0060] 表1預(yù)置字段體集合示例
[0062] 若選擇字段體Ml和M2并賦予名稱(chēng)為日志頭標(biāo)識(shí),則說(shuō)明日志頭中包括Ml和M2兩個(gè) 字段體,若選擇字段體M3、M4、M5,并賦予名稱(chēng)為日志體標(biāo)識(shí),則表示日志體中包括M3、M4、M5 共3個(gè)字段體。則最終的解析模板可表示為:
[0063] U1[M1,M2],U2[M3,M4,M5]
[0064] 若解析模板中還包括預(yù)置數(shù)據(jù)交換格式,則最終的解析模板可表示為如圖4所示。 圖4中與圖3中相同符號(hào)的含義相同,在此不再贅述,圖4中302表示用于區(qū)分?jǐn)?shù)據(jù)交換格式 和U1的分割符。
[0065] 能夠區(qū)分屬于日志頭和日志體的字段體之后,本發(fā)明實(shí)施例中步驟105(即將解析 得到的字段值與輸出字段名對(duì)應(yīng)輸出)可具體包括將解析得到的字段值與輸出字段名、以 及字段體名稱(chēng)對(duì)應(yīng)輸出。
[0066] 例如表2所示為將將解析得到的字段值與輸出字段名、以及字段體名稱(chēng)對(duì)應(yīng)輸出 的示例,需要說(shuō)明的是表2僅用于說(shuō)明本發(fā)明實(shí)施例,并不用于限定本發(fā)明實(shí)施例。
[0067] 表 2
[0068]
[0069] (3)、為了便于用戶(hù)維護(hù)預(yù)置字段體集合,本發(fā)明實(shí)施例中,還可以接收對(duì)預(yù)置字 段體集合中的編輯指令,所述編輯指令包括以下中的任一種:刪除字段體的刪除指令、向預(yù) 置字段體集合中添加字段體的添加指令、修改字段體的修改指令;并,根據(jù)編輯指令執(zhí)行相 應(yīng)操作。
[0070] 這樣,本發(fā)明示例中,可以編輯指令維護(hù)字段體集合,維護(hù)的操作簡(jiǎn)單易行。
[0071] (4)、其中,在一個(gè)實(shí)施例中,默認(rèn)情況下,一種解析模板可解析一種日志。為了確 保解析模板是對(duì)對(duì)應(yīng)的待解析日志進(jìn)行解析,從而獲得正確的解析結(jié)果,本發(fā)明實(shí)施例中, 在步驟102之前,還可以確定所述待解析日志的比特位總數(shù),與所述解析模板的所有字段值 所占的比特位數(shù)的長(zhǎng)度信息之和相同。若相同則說(shuō)明待解析日志是與解析模板對(duì)應(yīng)的解析 日志,可以進(jìn)行解析操作。其中,長(zhǎng)度信息之和可以是加載該解析模板時(shí)計(jì)算的,這樣只計(jì) 算一次即可,當(dāng)然,具體實(shí)施時(shí),也可以對(duì)每個(gè)待解析日志進(jìn)行解析之前計(jì)算,本發(fā)明實(shí)施 例對(duì)此不做限定。
[0072] 下面使用比較常用的netf low v5日志為例對(duì)本發(fā)明實(shí)施例提供的二進(jìn)制日志解 析方法進(jìn)行說(shuō)明:netflow v5日志格式為已知格式,且包括以下內(nèi)容,如表3所示。表3中,B
[0073] 表 3
[0075]則netf low v5的日志頭的解析模版可表示為:
[0076] head:{length:24,
[0077] fields:[{version:INT;2;0},{count:INT;2;2},{sys_uptime:LONG;4;4}, {unix_secs:U NIXTIME;4;8},{unix_nsecs:UNIXTIME;4;12},{flow_sequence:L0NG;4; 16},{eng ine_type:SHORT;1;20},{engine」d:SHORT;1;21},{sampling_interval:INT; 2;22}]}
[0078] 其中,length: 24表示日志頭占用24位比特位。
[0079] netf low v5的日志的日志體的表示方法與日志頭相同,這里不再贅述。
[0080] 對(duì)待解析日志進(jìn)行解析時(shí),可以依照下述步驟進(jìn)行,當(dāng)然各步驟的執(zhí)行順序可以 依照實(shí)際需要設(shè)定:
[0081 ]第一步:計(jì)算解析模板的比特位總數(shù)length:其中
[0082] length = head. length+body. length
[0083] 其中head. length表示日志頭所占的比特位數(shù),body. length表示日志體占用的比 特位數(shù)。
[0084]第二步:比較待解析日志的比特位總數(shù)與length是否相等,若相等則表示解析模 板與待解析日志對(duì)應(yīng)。
[0085]第三步:分析解析模板,得到所有的字段體(包括日志頭的字段體和日志體的字段 體)形成字段體集合,該集合可表示為
[0086] [M1,M2,…,Mn]
[0087] 第四步:遍歷字段體集合中的每一個(gè)字段體,根據(jù)位置信息和長(zhǎng)度信息找對(duì)對(duì)應(yīng) 的字段值的二進(jìn)制數(shù),然后解析二進(jìn)制數(shù)得出字段值,將字段值賦值給字段輸出名;然后可 以根據(jù)預(yù)置的數(shù)據(jù)交換格式輸出解析后的待解析日志。
[0088] 綜上,在本發(fā)明實(shí)施例所述技術(shù)方案中,用戶(hù)可以根據(jù)預(yù)置字段體集合,從中選擇 字段體構(gòu)成解析模板,該解析模板中包括至少一個(gè)字段體,每個(gè)字段體包括:輸出字段名、 表示該輸出字段名的字段值的位置的位置信息、表示該字段值所占的比特位數(shù)的長(zhǎng)度信 息、以及該字段值的輸出字段類(lèi)型;然后可以通過(guò)解析模板對(duì)二進(jìn)制日志進(jìn)行解析。由于解 析模板是用戶(hù)可以根據(jù)自燉湯集合隨意配置的,所以本發(fā)明實(shí)施例提供的二進(jìn)制日志解析 方法,無(wú)需為特定的二進(jìn)制日志開(kāi)發(fā)并維護(hù)日志解析應(yīng)用程序。此外,還能夠適用任意輸出 數(shù)據(jù)格式的二進(jìn)制日志的解析,對(duì)解析模板的維護(hù)相對(duì)于對(duì)解析應(yīng)用程序的維護(hù)工作量 小,且維護(hù)方便。
[0089] 實(shí)施例二
[0090] 基于相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種二進(jìn)制日志解析裝置,如圖5所 示,為該裝置的結(jié)構(gòu)示意圖,包括:
[0091 ]獲取模塊501,用于獲取待解析日志;以及預(yù)先配置的解析模板;所述解析模板包 括至少一個(gè)字段體,每個(gè)字段體包括:輸出字段名、表示該輸出字段名的字段值的位置的位 置信息、表示該字段值所占的比特位數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型;
[0092]解析模塊502,用于針對(duì)每個(gè)字段體,根據(jù)該字段體的位置信息以及長(zhǎng)度信息,從 所述待解析日志中獲取該字段體的字段值對(duì)應(yīng)的二進(jìn)制數(shù);
[0093]字段值獲取模塊503,用于將所述二進(jìn)制數(shù)按照該字段體的輸出字段類(lèi)型進(jìn)行解 析,得到字段值;
[0094] 輸出模塊504,用于將解析得到的字段值與輸出字段名對(duì)應(yīng)輸出。
[0095] 其中,在一個(gè)實(shí)施例中,所述裝置還包括:
[0096] 解析模板配置模塊,用于根據(jù)以下方法配置所述解析模板:
[0097] 接收對(duì)預(yù)置字段體集合中的字段體的選擇指令;
[0098] 根據(jù)選擇的字段體的集合生成所述解析模板。
[0099] 其中,在一個(gè)實(shí)施例中,針對(duì)所述解析模板的每個(gè)字段體,所述解析模板中還包括 表示該字段體隸屬于日志頭還是隸屬于日志體的字段體名稱(chēng);解析模板配置模塊,具體用 于:
[0100] 接收對(duì)選擇的字段體賦予所述字段體名稱(chēng)的命名指令,該命名指令中包括字段體 名稱(chēng)為日志頭標(biāo)識(shí)或日志體標(biāo)識(shí)的指示信息;
[0101] 根據(jù)命名指令對(duì)選擇的字段體賦予所述字段體名稱(chēng),并生成所述解析模板。
[0102] 其中,在一個(gè)實(shí)施例中,輸出模塊,具體用于:
[0103] 將解析得到的字段值與輸出字段名、以及字段體名稱(chēng)對(duì)應(yīng)輸出。
[0104] 其中,在一個(gè)實(shí)施例中,所述裝置還包括:
[0105]編輯指令接收模塊,用于接收對(duì)預(yù)置字段體集合中的編輯指令,所述編輯指令包 括以下中的任一種:刪除字段體的刪除指令、向預(yù)置字段體集合中添加字段體的添加指令、 修改字段體的修改指令;
[0106] 編輯指令執(zhí)行模塊,用于根據(jù)編輯指令執(zhí)行相應(yīng)操作。
[0107] 其中,在一個(gè)實(shí)施例中,所述裝置還包括:
[0108] 字段體生成模塊,用于根據(jù)以下方法生成字段體:
[0109] 接收用于創(chuàng)建字段體的創(chuàng)建指令;所述創(chuàng)建指令中包括待創(chuàng)建字段體的輸出字段 名、表示該輸出字段名的字段值的位置的位置信息、表示該字段值所占的比特位數(shù)的長(zhǎng)度 信息、以及該字段值的輸出字段類(lèi)型;
[0110] 根據(jù)所述創(chuàng)建指令創(chuàng)建所述待創(chuàng)建字段體。
[0111] 其中,在一個(gè)實(shí)施例中,所述裝置還包括:
[0112] 確定模塊,用于確定所述待解析日志的比特位總數(shù),與所述解析模板的所有字段 值所占的比特位數(shù)的長(zhǎng)度信息之和相同。
[0113] 本發(fā)明實(shí)施例所述技術(shù)方案中,用戶(hù)可以根據(jù)預(yù)置字段體集合,從中選擇字段體 構(gòu)成解析模板,該解析模板中包括至少一個(gè)字段體,每個(gè)字段體包括:輸出字段名、表示該 輸出字段名的字段值的位置的位置信息、表示該字段值所占的比特位數(shù)的長(zhǎng)度信息、以及 該字段值的輸出字段類(lèi)型;然后可以通過(guò)解析模板對(duì)二進(jìn)制日志進(jìn)行解析。由于解析模板 是用戶(hù)可以根據(jù)自燉湯集合隨意配置的,所以本發(fā)明實(shí)施例提供的二進(jìn)制日志解析方法, 無(wú)需為特定的二進(jìn)制日志開(kāi)發(fā)并維護(hù)日志解析應(yīng)用程序。此外,還能夠適用任意輸出數(shù)據(jù) 格式的二進(jìn)制日志的解析,對(duì)解析模板的維護(hù)相對(duì)于對(duì)解析應(yīng)用程序的維護(hù)工作量小,且 維護(hù)方便。
[0114] 關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法 的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說(shuō)明。
[0115] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、裝置、系統(tǒng)、或計(jì)算 機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方 面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的 計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī) 程序產(chǎn)品的形式。
[0116]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(裝置)和計(jì)算機(jī)程序產(chǎn)品的流程圖 和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程 和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指 令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生 一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn) 在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0117] 這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置以特 定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或 多個(gè)方框中指定的功能。
[0118] 這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置上,使得在計(jì) 算機(jī)或其他可編程裝置上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或 其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一 個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0119]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造 性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu) 選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0120]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【主權(quán)項(xiàng)】
1. 一種二進(jìn)制日志解析方法,其特征在于,包括: 獲取待解析日志;以及預(yù)先配置的解析模板;所述解析模板包括至少一個(gè)字段體,每個(gè) 字段體包括:輸出字段名、表示該輸出字段名的字段值的位置的位置信息、表示該字段值所 占的比特位數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型; 針對(duì)每個(gè)字段體,根據(jù)該字段體的位置信息以及長(zhǎng)度信息,從所述待解析日志中獲取 該字段體的字段值對(duì)應(yīng)的二進(jìn)制數(shù); 將所述二進(jìn)制數(shù)按照該字段體的輸出字段類(lèi)型進(jìn)行解析,得到字段值; 將解析得到的字段值與輸出字段名對(duì)應(yīng)輸出。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)以下方法配置所述解析模板: 接收對(duì)預(yù)置字段體集合中的字段體的選擇指令; 根據(jù)選擇的字段體的集合生成所述解析模板。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,針對(duì)所述解析模板的每個(gè)字段體,所述解 析模板中還包括表示該字段體隸屬于日志頭還是隸屬于日志體的字段體名稱(chēng);根據(jù)選擇的 字段體的集合生成所述解析模板,具體包括: 接收對(duì)選擇的字段體賦予所述字段體名稱(chēng)的命名指令,該命名指令中包括字段體名稱(chēng) 為日志頭標(biāo)識(shí)或日志體標(biāo)識(shí)的指示信息; 根據(jù)命名指令對(duì)選擇的字段體賦予所述字段體名稱(chēng),并生成所述解析模板。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,將解析得到的字段值與輸出字段名對(duì)應(yīng)輸 出,具體包括: 將解析得到的字段值與輸出字段名、以及字段體名稱(chēng)對(duì)應(yīng)輸出。5. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 接收對(duì)預(yù)置字段體集合中的編輯指令,所述編輯指令包括以下中的任一種:刪除字段 體的刪除指令、向預(yù)置字段體集合中添加字段體的添加指令、修改字段體的修改指令; 根據(jù)編輯指令執(zhí)行相應(yīng)操作。6. 根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)以下方法生成字段體: 接收用于創(chuàng)建字段體的創(chuàng)建指令;所述創(chuàng)建指令中包括待創(chuàng)建字段體的輸出字段名、 表示該輸出字段名的字段值的位置的位置信息、表示該字段值所占的比特位數(shù)的長(zhǎng)度信 息、以及該字段值的輸出字段類(lèi)型; 根據(jù)所述創(chuàng)建指令創(chuàng)建所述待創(chuàng)建字段體。7. 根據(jù)權(quán)利要求1-6中任一所述的方法,其特征在于,所述針對(duì)每個(gè)字段體,根據(jù)該字 段體的位置信息以及長(zhǎng)度信息,從所述待解析日志中獲取該字段體的字段值對(duì)應(yīng)的二進(jìn)制 數(shù)之前,所述方法還包括: 確定所述待解析日志的比特位總數(shù),與所述解析模板的所有字段值所占的比特位數(shù)的 長(zhǎng)度信息之和相同。8. -種二進(jìn)制日志解析裝置,其特征在于,包括: 獲取模塊,用于獲取待解析日志;以及預(yù)先配置的解析模板;所述解析模板包括至少一 個(gè)字段體,每個(gè)字段體包括:輸出字段名、表示該輸出字段名的字段值的位置的位置信息、 表示該字段值所占的比特位數(shù)的長(zhǎng)度信息、以及該字段值的輸出字段類(lèi)型; 解析模塊,用于針對(duì)每個(gè)字段體,根據(jù)該字段體的位置信息以及長(zhǎng)度信息,從所述待解 析日志中獲取該字段體的字段值對(duì)應(yīng)的二進(jìn)制數(shù); 字段值獲取模塊,用于將所述二進(jìn)制數(shù)按照該字段體的輸出字段類(lèi)型進(jìn)行解析,得到 字段值; 輸出模塊,用于將解析得到的字段值與輸出字段名對(duì)應(yīng)輸出。9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 解析模板配置模塊,用于根據(jù)以下方法配置所述解析模板: 接收對(duì)預(yù)置字段體集合中的字段體的選擇指令; 根據(jù)選擇的字段體的集合生成所述解析模板。10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,針對(duì)所述解析模板的每個(gè)字段體,所述解 析模板中還包括表示該字段體隸屬于日志頭還是隸屬于日志體的字段體名稱(chēng);解析模板配 置模塊,具體用于: 接收對(duì)選擇的字段體賦予所述字段體名稱(chēng)的命名指令,該命名指令中包括字段體名稱(chēng) 為日志頭標(biāo)識(shí)或日志體標(biāo)識(shí)的指示信息; 根據(jù)命名指令對(duì)選擇的字段體賦予所述字段體名稱(chēng),并生成所述解析模板。11. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,輸出模塊,具體用于: 將解析得到的字段值與輸出字段名、以及字段體名稱(chēng)對(duì)應(yīng)輸出。12. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 編輯指令接收模塊,用于接收對(duì)預(yù)置字段體集合中的編輯指令,所述編輯指令包括以 下中的任一種:刪除字段體的刪除指令、向預(yù)置字段體集合中添加字段體的添加指令、修改 字段體的修改指令; 編輯指令執(zhí)行模塊,用于根據(jù)編輯指令執(zhí)行相應(yīng)操作。13. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 字段體生成模塊,用于根據(jù)以下方法生成字段體: 接收用于創(chuàng)建字段體的創(chuàng)建指令;所述創(chuàng)建指令中包括待創(chuàng)建字段體的輸出字段名、 表示該輸出字段名的字段值的位置的位置信息、表示該字段值所占的比特位數(shù)的長(zhǎng)度信 息、以及該字段值的輸出字段類(lèi)型; 根據(jù)所述創(chuàng)建指令創(chuàng)建所述待創(chuàng)建字段體。14. 根據(jù)權(quán)利要求8-13中任一所述的裝置,其特征在于,所述裝置還包括: 確定模塊,用于確定所述待解析日志的比特位總數(shù),與所述解析模板的所有字段值所 占的比特位數(shù)的長(zhǎng)度信息之和相同。
【文檔編號(hào)】G06F11/30GK106055450SQ201610342231
【公開(kāi)日】2016年10月26日
【申請(qǐng)日】2016年5月20日
【發(fā)明人】袁帥
【申請(qǐng)人】北京神州綠盟信息安全科技股份有限公司, 北京神州綠盟科技有限公司