基于正則表達(dá)式的日志解析系統(tǒng)構(gòu)建研究_第1頁
基于正則表達(dá)式的日志解析系統(tǒng)構(gòu)建研究_第2頁
基于正則表達(dá)式的日志解析系統(tǒng)構(gòu)建研究_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于正則表達(dá)式的日志解析系統(tǒng)構(gòu)建研究摘要:針對日志格式異構(gòu)造成的日志解析局限性問題,文章介紹了一種基于正則表達(dá)式日志數(shù)據(jù)分組提取的方法,采用日志格式描述與日志內(nèi)容解析相分離的策略,使用XML語言編寫日志格式描述和日志數(shù)據(jù)項(xiàng)說明的腳本文檔,該腳本文檔與日志類別相對應(yīng),與具體的解析程序分離,提高了日志解析系統(tǒng)的靈活性和擴(kuò)展性。關(guān)鍵詞:日志解析;正則表達(dá)式;可擴(kuò)展標(biāo)記語言互聯(lián)網(wǎng)技術(shù)高速發(fā)展,大多企事業(yè)單位都已經(jīng)構(gòu)建自己的網(wǎng)絡(luò)平臺和信息系統(tǒng),各種網(wǎng)絡(luò)設(shè)備和信息系統(tǒng)的數(shù)量及規(guī)模都在擴(kuò)大,也愈來愈復(fù)雜1。運(yùn)維人員為及時(shí)了解各類設(shè)備和系統(tǒng)的運(yùn)行狀況,大多會去查閱設(shè)備或系統(tǒng)產(chǎn)生的日志數(shù)據(jù),其大多以文本方式保存

2、在相關(guān)的系統(tǒng)內(nèi)部,記錄了設(shè)備或系統(tǒng)在運(yùn)行時(shí)所產(chǎn)生的各種數(shù)據(jù),對運(yùn)維人員了解系統(tǒng)運(yùn)行狀況和排查問題起到至關(guān)重要的作用2。但一般都是數(shù)據(jù)量龐大且以非結(jié)構(gòu)化的方式存儲,非常不利于查看和分析,如何有效地解析日志數(shù)據(jù)并能將其以結(jié)構(gòu)化的方式存儲,成為一個亟需解決的問題。近年來,關(guān)于日志分析與處理的關(guān)注與研究越來越多。傳統(tǒng)的通過開發(fā)人員經(jīng)驗(yàn)和認(rèn)知來分析日志關(guān)鍵字的方式不僅效率低下且針對性強(qiáng)3;通過自定義規(guī)則來解析日志,對開發(fā)人員的經(jīng)驗(yàn)和知識具有很強(qiáng)的依賴性。當(dāng)系統(tǒng)更新或更換,新的日志內(nèi)容就不再適用既有的規(guī)則,需重新編碼定義規(guī)則,該方式靈活性差,不具擴(kuò)展性。因此,本文考慮采用日志文件內(nèi)容格式的描述與日志內(nèi)容識

3、別解析相分離的思想,實(shí)現(xiàn)日志解析過程與日志格式描述無關(guān)。具體策略如下:首先,將待解析的日志內(nèi)容進(jìn)行預(yù)處理,以提升解析效率。其次,提取描述日志格式的正則表達(dá)式和關(guān)鍵字含義,將其作為可變參數(shù)寫入配置文件中,不同的日志匹配不同的配置文件4,日志解析系統(tǒng)根據(jù)配置文件完成不同日志的數(shù)據(jù)匹配與解析,最后將解析結(jié)果進(jìn)行持久化處理,形成關(guān)系型結(jié)構(gòu)化數(shù)據(jù)。系統(tǒng)設(shè)計(jì)基于上述分析,本文旨在構(gòu)建一種具有良好擴(kuò)展性和較高解析效率的日志解析系統(tǒng)。相比傳統(tǒng)解析方式,采用日志格式描述與內(nèi)容解析相分離的策略能有效提高解析系統(tǒng)的擴(kuò)展性和靈活性。首先,日志解析系統(tǒng)需要為待解析的每一種日志編寫一個匹配模式,用正則表達(dá)式描述。其次,將

4、用于解釋日志各個數(shù)據(jù)項(xiàng)的屬性說明和該日志的解析正則表達(dá)式相結(jié)合,形成日志的解析配置文件,實(shí)現(xiàn)模式描述與內(nèi)容解析相分離。同時(shí),日志內(nèi)容數(shù)量龐大的一個主要原因是日志里包含了大量相同或無分析價(jià)值的信息,本日志解析系統(tǒng)將增加日志預(yù)處理與日志過濾模塊,以增加日志內(nèi)容的價(jià)值密度,提高解析效率和分析價(jià)值。本文所構(gòu)建的日志解析系統(tǒng)主要包含日志收集、數(shù)據(jù)預(yù)處理、日志解析、日志分類存儲、日志分析。日志收集主要任務(wù)是將分散在不同服務(wù)器或設(shè)備上的待處理原始日志文件采集至日志解析系統(tǒng)指定位置,不同系統(tǒng)或設(shè)備所產(chǎn)生的日志默認(rèn)存儲在系統(tǒng)所在服務(wù)器的本地文件系統(tǒng)中,需要操作人員手動收集,也可使用日志收集工具進(jìn)行自動收集,部分

5、過于龐大的日志還需要進(jìn)行初步的過濾以提升效率。數(shù)據(jù)預(yù)處理是日志解析前的準(zhǔn)備工作,在保證解析數(shù)據(jù)的價(jià)值和正確的同時(shí),通過對原始日志數(shù)據(jù)中相同或相似的數(shù)據(jù)進(jìn)行清理和合并,減少日志的數(shù)據(jù)量,降低日志解析模塊的處理負(fù)擔(dān),提高解析效率。日志解析是系統(tǒng)的核心功能,根據(jù)預(yù)先設(shè)定的日志格式化配置文件(包含正則表達(dá)式和日志數(shù)據(jù)項(xiàng)屬性描述),匹配日志內(nèi)容中有效字段數(shù)據(jù),對匹配數(shù)據(jù)進(jìn)行規(guī)范化處理。日志分類存儲主要將解析得到的規(guī)范化數(shù)據(jù)依據(jù)相關(guān)規(guī)則進(jìn)行聚集處理,形成某一事件類別相關(guān)的日志集合,通過分類聚合可以將與特定事件相關(guān)的數(shù)據(jù)聚集在一起,能夠過濾掉與用戶分析需求關(guān)聯(lián)性不高的數(shù)據(jù),進(jìn)一步增加數(shù)據(jù)的價(jià)值密度,降低后續(xù)

6、日志分析的數(shù)據(jù)規(guī)模,提高分析效率與分析精度。日志分析是日志解析系統(tǒng)的最終目的,將已經(jīng)解析、處理的日志數(shù)據(jù)按照用戶具體的分析需求,引入相關(guān)的分析算法,分析結(jié)果幫助操作者理解系統(tǒng)行為、解決系統(tǒng)問題。系統(tǒng)實(shí)現(xiàn)系統(tǒng)采用的是日志數(shù)據(jù)描述與數(shù)據(jù)解析相分離的思想,日志格式采用正則表達(dá)式描述。首先,將一條典型的日志數(shù)據(jù)進(jìn)行分組正則化處理,形成該類日志的正則表達(dá)式模式字符串。其次,讀取日志文件,將每一條日志數(shù)據(jù)與模式字符串進(jìn)行匹配操作,可以將日志文件中的每一條日志里包含的數(shù)據(jù)項(xiàng)都分離抽取出來。同時(shí),在日志描述配置文件中,除了用于模式匹配的正則表達(dá)式,還包含日志各個數(shù)據(jù)項(xiàng)的現(xiàn)實(shí)意義。最后,將匹配分離出的各個數(shù)據(jù)項(xiàng)

7、同其屬性意義對應(yīng)組合,即可形成格式化的日志記錄。結(jié)合上述具體需求,本文采用可擴(kuò)展標(biāo)記語言(ExtensibleMarkupLanguage,XML來橫建日志解析配置文件,XML語言結(jié)構(gòu)簡單、清晰,使用便捷,大多編程語言對其都提供了良好的支持。系統(tǒng)提供了簡單解析模式和完整解析模式,簡單解析模式可用于單條日志數(shù)據(jù)的實(shí)時(shí)解析,主要思想是將無結(jié)構(gòu)的日志數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化的過程。依據(jù)上述所描述的日志解析流程與解析策略,需為每一類日志構(gòu)造一個日志解析配置文件,文件包含日志的格式描述和屬性說明,日志配置文件使用XML語言構(gòu)建,XMLJjyi樹形結(jié)構(gòu),具有較好的擴(kuò)展性和語義性,能夠便捷地通過自定義標(biāo)簽表示特定的

8、語義信息,并且當(dāng)前主流的編程語言對其提供了良好的支持。本文以Apache日志為例,簡要說明日志配置文件的構(gòu)建過程和方法。Apache日志主要有兩種:一是訪問日志access.log。二是錯誤日志error.log。訪問日志又包括普通日志格式和復(fù)合日志格式,下面是一條隨機(jī)采集Apache復(fù)合訪問日志的內(nèi)容:將上述分組處理的正則描述組合起來,加上行首和行尾的匹配符即可形成完整的日志格式描述正則表達(dá)式,再將日志內(nèi)容中各數(shù)據(jù)項(xiàng)的屬性說明和正則表達(dá)式共同組成該日志的解析配置文件,即可對Apache訪問日志進(jìn)行解析。本文構(gòu)建的日志解析系統(tǒng)采用C#吾言開發(fā),首先,使用XmlDocument類對日志解析配置文

9、件進(jìn)行讀寫操作,獲取日志格式描述的正則表達(dá)式和日志各數(shù)據(jù)項(xiàng)的屬性說明,完成匹配,獲取各個分組的數(shù)據(jù)。其次,將各分組的數(shù)據(jù)同XML配置文件中的屬性說明一一對應(yīng),形成格式化的日志解析數(shù)據(jù)。本文主要使用Regex類的Match方法完成數(shù)據(jù)的匹配和分組,最終形成格式化的日志數(shù)據(jù)記錄,該記錄可保存至關(guān)系型數(shù)據(jù)庫中,便于實(shí)現(xiàn)日志數(shù)據(jù)的統(tǒng)計(jì)分析,也可作為數(shù)據(jù)分析和數(shù)據(jù)挖掘的原始數(shù)據(jù)集。3結(jié)語本文重點(diǎn)是提高日志解析的效率和靈活性,為不同種類的日志編寫日志解析配置腳本文件,腳本文件用XML語言描述,使得描述日志格式和數(shù)據(jù)項(xiàng)屬性的腳本文件與具體的解析程序相分離,當(dāng)產(chǎn)生日志的設(shè)備或系統(tǒng)出現(xiàn)新增、更新時(shí),新的日志類型出現(xiàn),只需根據(jù)新的日志類型為其編輯XMLM本文件即可,無需更新日志解析程序,大大提高了系統(tǒng)的擴(kuò)展性與靈活性。同時(shí)系統(tǒng)具有結(jié)構(gòu)簡單、邏輯清晰的特性,能滿足多種不同的解析需求,與當(dāng)前各類設(shè)備自帶或第三方的日志解析系統(tǒng)相比具有一定的優(yōu)勢,對類似日志解析系統(tǒng)的建設(shè)也具有一定的借鑒意義。參考文獻(xiàn)許長福.日志數(shù)據(jù)分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)D.北京:北京交通大學(xué),2017.姚攀,馬玉鵬,徐春香.基于ELK的日志分析系統(tǒng)研究及應(yīng)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論