国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用Python機器學習降低靜態(tài)日志噪聲

2020-01-04 14:26:14
字體:
供稿:網(wǎng)友

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

利用機器學習降低噪聲

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

Python,機器學習,日志,噪聲

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

Python,機器學習,日志,噪聲

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

Python,機器學習,日志,噪聲

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

Python,機器學習,日志,噪聲

介紹LOGPREIN

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

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

更高級的LogReduce使用可以將模型離線訓練成可重用的模型。基線的許多變體可以用來適應(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-linesDEBUG 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,機器學習,日志,噪聲

管理基線

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

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

Python,機器學習,日志,噪聲

異常分類服務(wù)

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

Python,機器學習,日志,噪聲

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

項目路線圖

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

  • 管理日志文件中發(fā)現(xiàn)的許多帶注釋的異常,并生成公共域數(shù)據(jù)集,以便進一步研究。日志文件中的異常檢測是一個具有挑戰(zhàn)性的主題,擁有一個通用的數(shù)據(jù)集來測試新的模型將有助于確定新的解決方案。
  • 使用模型重用帶注釋的異常,以細化所報告的距離。例如,當用戶通過將其距離設(shè)置為零將行標記為假陽性時,該模型可以減少這些行在未來報告中的得分。
  • 指紋歸檔異常以檢測新的報告何時包含已知的異常。因此,服務(wù)可以通知用戶作業(yè)遇到了已知的問題,而不是報告異常的內(nèi)容。解決問題后,服務(wù)可以自動重新啟動作業(yè)。
  • 支持更多的目標基線發(fā)現(xiàn)接口,如SOS報告、Jenkins構(gòu)建、Travis CI等。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 镶黄旗| 和田市| 志丹县| 东乡| 兰坪| 公主岭市| 寿阳县| 汉阴县| 鹿邑县| 理塘县| 额敏县| 株洲市| 丰原市| 多伦县| 香格里拉县| 稷山县| 龙口市| 西林县| 林州市| 双鸭山市| 韩城市| 蒲城县| 阳原县| 年辖:市辖区| 辽宁省| 石阡县| 浮梁县| 迁安市| 浦城县| 资兴市| 翁源县| 获嘉县| 宝应县| 靖宇县| 沛县| 隆子县| 金华市| 资溪县| 连云港市| 栾川县| 金华市|