基於空間向量的餘弦相似度算法在具體項目中的實施落地

Skolang告警轉發中機器學習的實踐

1.業務需求分析

1.背景

我司SRM產品業務邏輯迭代深,系統依賴服務廣、組件衆多。因而,在系統出現故障時(bug觸發、依賴服務超時等),錯誤日誌的量級會急劇增加,錯誤日誌內容會存在相互掩埋、影響的問題,開發人員面對爆發式的錯誤一時難以理清邏輯,無法第一時間解決核心問題。爲此,我們需要構建輔助開發人員查錯的工具。
SRM日誌具有info、debug、error三種級別,我們先關注error級別的日誌。若在報警流出現時,通過處理程序,將報警聚類,整理出一段時間內的報警摘要,那麼運維人員就可以在摘要信息的輔助下,先對當前故障有一個大致方向的判斷,再結合技術知識和業務知識即可定位故障的根本原因。

根據以上考慮,我們需要做以下工作:

  1. 選定聚類算法,理清算法的基本原理,總結出針對error報警日誌聚類的可以實施的方案;
  2. 選用一段時間流內error日誌(生產環境),對算法、處理流程進行驗證,總結不足與優化、進步方案。

2.技術選型

我們會什麼,做過什麼,可能做到什麼水平

1.所選用的方法基於經驗和調研可能性

分詞基於jieba或者nlk,停用詞庫是英文詞庫+redis緩存自定義停用詞庫的模式,文本聚類方法是餘弦相似度算法,將以總分形式展開敘述

2.聚類流程詳述

我們的先手目標是減少告警,也就是將短時間內相同/相似的告警聚類爲一種以減少告警數目。
如何判定這一段時間內,連續出現的多條告警屬於一個問題反覆告警呢?通過日誌的句子,分析句子,對句子進行聚類的方法就是機器學習文本分析聚類的範疇。
涉及到文本聚類,通常我們的思路是將文本切分成多個詞彙,通過去掉一些無用的詞彙、計算頻次等方法確定關鍵詞,然後轉換爲矩陣進行相似度計算,返回的結果是倆句子相似度值=>倆告警是不是一類。

3.具體的設計細節與落地情況

在這裏插入圖片描述

4.總結與展望

行業老大Splunk以及其他專業的公司和產品日誌易、ELK、sumologic、prelert(ES收購)、oracle、vmware、阿里雲日誌服務系列。

其中,阿里的一眼看盡上億日誌-日誌服務(SLS)智能聚類(LogReduce)效果比較好;

據日誌易產品總監饒琛琳的分析文章日誌分析的模式發現功能實現(4)可管中窺豹——阿里雲LogReduce使用的是頻繁模式挖掘(frequent pattern mining),然而這點因機器學習領域基礎過於薄弱,爲了做出東西,也未能去做,之後若有機會可以修改這一部分方法。

效果如下:
日誌服務(SLS)用戶手冊
智能文本聚類-syslog分析

5.踩坑記錄

留個坑,年前補上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章