溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲

發(fā)布時間:2021-04-25 10:33:42 來源:億速云 閱讀:249 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

python主要應(yīng)用領(lǐng)域有哪些

1、云計算,典型應(yīng)用OpenStack。2、WEB前端開發(fā),眾多大型網(wǎng)站均為Python開發(fā)。3.人工智能應(yīng)用,基于大數(shù)據(jù)分析和深度學(xué)習(xí)而發(fā)展出來的人工智能本質(zhì)上已經(jīng)無法離開python。4、系統(tǒng)運維工程項目,自動化運維的標(biāo)配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數(shù)據(jù)分析。

持續(xù)集成(CI)作業(yè)可以產(chǎn)生大量的數(shù)據(jù)。當(dāng)作業(yè)失敗時,找出了什么問題可能是一個繁瑣的過程,需要對日志進行調(diào)查以發(fā)現(xiàn)根本原因-這通常是在作業(yè)總輸出的一小部分中發(fā)現(xiàn)的。為了更容易地將最相關(guān)的數(shù)據(jù)從其他數(shù)據(jù)中分離出來,日志還原機器學(xué)習(xí)模型使用以前成功的作業(yè)運行來訓(xùn)練,以從失敗的運行日志中提取異常。
此原則也可應(yīng)用于其他用例,例如,從期刊或其他系統(tǒng)范圍的常規(guī)日志文件。

利用機器學(xué)習(xí)降低噪聲

一個典型的日志文件包含許多名義事件(“基線”)以及一些與開發(fā)人員相關(guān)的異常?;€可能包含難以檢測和刪除的隨機元素,如時間戳或唯一標(biāo)識符。要刪除基線事件,我們可以使用k最近鄰模式識別算法 (k-NN)。

如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲

的日志事件必須轉(zhuǎn)換為數(shù)值。k-NN回歸。使用通用特征提取工具HashingVectorizer允許將該進程應(yīng)用于任何類型的日志。它對每個單詞進行散列,并在稀疏矩陣中對每個事件進行編碼。為了進一步減少搜索空間,令牌化將刪除已知的隨機單詞,例如日期或IP地址。

如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲

一旦模型被訓(xùn)練,k-NN搜索告訴我們每個新事件與基線之間的距離。

如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲

Jupyter notebook演示了稀疏矩陣向量的過程,并繪制了稀疏矩陣向量圖。

如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲

介紹LOGPREIN

LogReallyPython軟件透明地實現(xiàn)了這個過程。的最初目標(biāo)是協(xié)助祖爾CI使用構(gòu)建數(shù)據(jù)庫進行作業(yè)失敗分析,現(xiàn)在將其集成到軟件廠發(fā)展鍛造的工作日志過程。
最簡單的是,LogReduce比較文件或目錄,并刪除類似的行。Log冷水為每個源文件構(gòu)建一個模型,并使用以下語法輸出距離超過定義閾值的任何目標(biāo)行:距離文件名:行號:行內(nèi)容.

$ logreduce varlogauditaudit.log.1 varlogauditaudit.log
INFO logreduce.Classifier - Training took 21.982s at 0.364MBs 1.314kls 8.000 MB - 28.884 kilo-lines
0.244 audit.log:19963:    =USER_AUTH ="root" ="/usr/bin/su" hostname=managesf.sftests.com
INFO logreduce.Classifier - Testing took 18.297s at 0.306MBs 1.094kls 5.607 MB - 20.015 kilo-lines
99.99 reduction from 20015 lines to

更高級的LogReduce使用可以將模型離線訓(xùn)練成可重用的模型。基線的許多變體可以用來適應(yīng)k-NN搜索樹

$ logreduce dir-train audit.clf varlogauditaudit.log.
INFO logreduce.Classifier - Training took 80.883s at 0.396MBs 1.397kls 32.001 MB - 112.977 kilo-lines
DEBUG logreduce.Classifier - audit.clf: written
$ logreduce dir-run audit.clf varlogauditaudit.log

LogReduce還實現(xiàn)了接口,以發(fā)現(xiàn)日志時間范圍(天/周/月)和Zuul CI作業(yè)構(gòu)建歷史記錄的基線。它還可以生成HTML報告,在一個簡單的接口中發(fā)現(xiàn)多個文件中的組異常。

如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲

管理基線

使用的關(guān)鍵k-神經(jīng)網(wǎng)絡(luò)回歸異常檢測是有一個已知的良好基線的數(shù)據(jù)庫,該模型用于檢測偏離過遠(yuǎn)的線。該方法依賴于包含所有標(biāo)稱事件的基線,因為基線中沒有發(fā)現(xiàn)的任何事件都將被報告為異常。

Ci工作是我們的主要目標(biāo)。k-NN回歸,因為作業(yè)輸出通常是確定性的,以前的運行可以自動用作基線。Log還原功能可以將Zuul作業(yè)角色用作失敗的作業(yè)發(fā)布任務(wù)的一部分,以便發(fā)布簡明的報告(而不是完整的作業(yè)日志)。這一原則可適用于其他情況,只要可以事先建立基線。例如,一個標(biāo)稱系統(tǒng)的SOS報告可用于查找有缺陷的部署中的問題。

如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲

異常分類服務(wù)

下一個版本的Logreduce引入了一種服務(wù)器模式,用于將日志處理卸載到外部服務(wù),在該服務(wù)中可以進一步分析報表。它還支持導(dǎo)入現(xiàn)有的報告和請求來分析Zuul構(gòu)建。服務(wù)運行異步地進行分析,并提供一個Web界面來調(diào)整分?jǐn)?shù)和刪除假陽性。

如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲

評審報告可以作為獨立的數(shù)據(jù)集存檔,目標(biāo)日志文件和記錄在平面JSON文件中的異常行的分?jǐn)?shù)。

項目路線圖

LogReduce已經(jīng)被有效地使用了,但是有很多改進工具的機會。今后的計劃包括:

  • 管理日志文件中發(fā)現(xiàn)的許多帶注釋的異常,并生成公共域數(shù)據(jù)集,以便進一步研究。日志文件中的異常檢測是一個具有挑戰(zhàn)性的主題,擁有一個通用的數(shù)據(jù)集來測試新的模型將有助于確定新的解決方案。

  • 使用模型重用帶注釋的異常,以細(xì)化所報告的距離。例如,當(dāng)用戶通過將其距離設(shè)置為零將行標(biāo)記為假陽性時,該模型可以減少這些行在未來報告中的得分。

  • 指紋歸檔異常以檢測新的報告何時包含已知的異常。因此,服務(wù)可以通知用戶作業(yè)遇到了已知的問題,而不是報告異常的內(nèi)容。解決問題后,服務(wù)可以自動重新啟動作業(yè)。

  • 支持更多的目標(biāo)基線發(fā)現(xiàn)接口,如SOS報告、Jenkins構(gòu)建、Travis CI等。

看完了這篇文章,相信你對“如何使用Python機器學(xué)習(xí)降低靜態(tài)日志噪聲”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI