日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

log-anomaly-detector (LAD)

發布時間:2024/3/12 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log-anomaly-detector (LAD) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

log-anomaly-detector (LAD)

LAD是Red hat 開發的,一個基于機器學習的Log日志異常檢測命令行工具

文章目錄

  • log-anomaly-detector (LAD)
    • 1. 安裝
    • 2. 示例
      • Command
      • UI Command:
    • 3. 結構
    • 4. Machine Learning Core
      • Language Encoding, Word2Vec
      • SOM
      • 模型結構
    • 5.Metrics
      • Fact Store Metrics
      • Core Metrics
    • 6. Storage
    • 7. demo數據格式
    • 8. 總結

1. 安裝

環境要求:python 3.6 或以上
直接安裝會出錯,為了避免后續的錯誤,需要預先安裝以下幾個依賴(后裝的話會出錯):

pip install git+https://github.com/compmonks/SOMPY.git pip install ipdb pip install tornado==5.1 pip install python-dateutil==2.8.0 pip install opentracing-instrumentation==3.2.1

然后安裝LAD:
pip install log-anomaly-detector==0.0.2
安裝需要幾個小時,之前的版本使用UI Command時會有bug,作者在0.0.2版本中修復了

查看是否安裝成功:
log-anomaly-detector --help

報錯解決

  • 報錯1:

    在issue里提了這個錯誤,作者表示這是因為他們采用了某個git commit當做依賴,這是個bug,需要該項目的作者解決。
    暫時只能采用這個解決辦法:
pip install git+https://github.com/compmonks/SOMPY.git pip install ipdb
  • 報錯2:

    解決方法:
pip install tornado==5.1 pip install python-dateutil==2.8.0 pip uninstall opentracing-instrumentation pip install opentracing-instrumentation==3.2.1

2. 示例

Command

參數及其用法(方括號中為可選參數):
log-anomaly-detector [main-options] <command> <subcommand> [subcommand-options] [parameters]

首先去github上clone整個項目
git clone https://github.com/AICoE/log-anomaly-detector.git
測試用例:

$ cd log-anomaly-detector$ log-anomaly-detector run --config-yaml config_files/.env_cmn_log_fmt_config.yaml --single-run True

這里有個bug,需要修改 config_files/.env_cmn_log_fmt_config.yaml 文件的前兩行為1行:

STORAGE_DATASOURCE: "local"

正常運行頁面:

UI Command:

參數及其用法(方括號中為可選參數):

export SQL_CONNECT="mysql+pymysql://{USERNAME}:{PASSWORD}@localhost/factstore" export CUSTOMER_ID="test1" log-anomaly-detector ui --port 8080 --debug True

實際用例:

export SQL_CONNECT="mysql+pymysql://root:123456@3.3.6.12/factstore" export CUSTOMER_ID="test1" log-anomaly-detector --metric-port 8081 ui --port 9999

可以打開fact store(用來反饋false positive):

提交false positive成功:

3. 結構

該框架由三個組件組成。

機器學習Core(LAD Core)
包含自定義代碼以訓練模型并預測日志行是否異常。目前只有無監督方法,基于W2V(Word2vec)和SOM(自組織圖)。我們計劃添加更多模型。 監控(指標)

指標 ( Metrics)
為了在生產中監控此系統,利用了grafanaprometheus來可視化此機器學習系統的運行狀況。
grafana 是一款采用 go 語言編寫的開源應用,主要用于大規模指標數據的可視化展現,是網絡架構和應用分析中最流行的時序數據展示工具。
Prometheus 是一套開源的系統監控報警框架。

反饋回路(Fact Store)
有一個元數據注冊中心,用于跟蹤機器學習系統中來自false_positives的反饋,并提供一種用于ML自我校正錯誤預測的方法,稱為 Fact Store。

4. Machine Learning Core

Language Encoding, Word2Vec

日志消息是可變長度的字符串,需要將它們轉換為固定長度的向量表示,機器學習算法可以使用這些向量表示。這里使用了python gensim 包中的 Word2Vec,其具有將單詞轉換為數值向量的強大能力,可以保留其大部分語義。

SOM

自組織映射 ( self-organizing map, SOM ) 是一種無監督的學習算法,用于幫助我們量化日志的異常性。
SOM的工作原理
SOM是一個單層的神經網絡,只有輸入層和競爭層兩層:

競爭層的神經元采用競爭的方式激活,每個神經元有一個權值向量www ,輸入向量 xxx 會激活與之最接近的神經元,這個神經元叫做獲勝神經元(winner)。
下圖展示了 SOM 的訓練過程。紫色區域表示訓練數據的分布狀況,白色網格表示從該分布中提取的當前訓練數據的映射。首先,SOM 節點位于數據空間的任意位置,最接近訓練數據的節點(黃色高亮部分)會被選中。它和網格中的鄰近節點一樣,朝訓練數據移動。在多次迭代之后,網格傾向于近似該種數據分布(下圖最右)。

最終的效果就是對數據進行了聚類,每個神經元代表一類。這一類所包含的數據,就是能夠使它競爭獲勝的那些數據。

訓練計算過程
Step 1:與其他神經網絡相同,需要將WeightsWeightsWeights初始化為很小的隨機數
Step 2:隨機取一個 輸入樣本XiX_iXi?
Step 3:遍歷競爭層中每一個節點:計算XiX_iXi?與節點之間的相似度(通常使用歐式距離),選取距離最小的節點作為優勝節點(winner node),有的時也叫BMU(best matching unit)
Step 4:根據鄰域半徑σσσ(sigma)確定優勝鄰域將包含的節點;并通過neighborhood function計算它們各自更新的幅度(基本思想是:越靠近優勝節點,更新幅度越大;越遠離優勝節點,更新幅度越小)
Step 5:更新優勝鄰域內節點的WeightWeightWeight
Step 6:完成一輪迭代(迭代次數+1),返回Step 2,直到滿足設定的迭代次數

推理階段,離最近的神經元結果較遠的點是異常點,這里需要設定一個最長距離的閾值參數。

SOM的詳細原理可參考:
https://www.zhihu.com/question/28046923
https://zhuanlan.zhihu.com/p/73534694

模型結構

通過W2V將log文本轉換為數值向量,生成的向量輸入SOM中,進行異常檢測模型的訓練和推理。

5.Metrics

Fact Store Metrics

用于查看Fact Store部署成功的指標。

Core Metrics

用于可視化正在運行的ML作業和發現false positives。

6. Storage

數據源(Source)和數據接收(Sink)可以有多種存儲形式:

7. demo數據格式

項目里給了Local形式數據的例子
輸入數據
分為兩種:json和txt格式
json格式:

txt格式:常規 log 格式: timestamp severity message

輸出數據
json格式:

8. 總結

該工具基于word2vec和SOM算法,可以實現對單條Log日志的異常檢測。
總的來說項目較為完整,但其上線不久且用戶不多,因此代碼中尚存在一些Bug需要修改。

總結

以上是生活随笔為你收集整理的log-anomaly-detector (LAD)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。