ELK在Machine learning上異常偵測必知的教學設定(上)
Posted On 2021 年 9 月 30 日
ELK在Machine learning上異常偵測必知的教學設定(上)
在這篇文章中,主要會針對在Elastic-search Kibana上操作Machine learning做異常偵測時的一些操作教學以及參數設定介紹。 主要目的是希望能夠讓讀者在操作時,能夠對於自己的資料有較佳的參數設定,使得異常偵測整體效果更佳。 在文章前段主要會針對操作流程進行描述、教學,中後段的部分則會針對數值的特徵來做參數調整與設定,最後再將此異常偵測模型加上提醒(alert)。建立異常偵測Job
1. 上傳資料集
在本文中不會針對Logstash匯入資料來寫,主要以Kibana上操作能完成為主。在這階段我們在Machine Learning 頁面中找到Data Visualizer來匯入資料,在此篇文章中會以NAB 中的 realAWScloudwatch (AGPL-3.0) 的資料作為範例,可以下載任意一個資料集(.csv)作為training data,在這裡我們下載的是 ec2_cpu_utilization_24ae8d.csv。2.選擇Import data
上傳剛剛下載的 ec2_cpu_utilization_24ae8d.csv 至此頁面。3.輸入文件index
在 elasticsearch 中,每個資料都有屬於他的index,在這裡建議使用符合elasticesearch naming rule的命名規則(e.g. ec2_cpu_utilization_2014)4.建立異常偵測Job
點選 create job 後,選擇剛才建立資料的index 。(亦或是有多筆index要選時可以至左側選單 Stack management > index patterns 中建立新的index pattern來使用,例如:建立一個ec2_cpu_utilization_*來表示選取所有符合此index pattern的所有index)- 時間型(Temporal):
- Single metric : 單一維度的異常偵測,意指在單一時間下輸入資料(因子)僅僅會有一筆。
- 情境:本次使用的範例為輸入CPU使用率,偵測是否有使用率異常的情形
- Multi metric: 多維度輸入資料的異常偵測,在單一時間下,可允許有多個不同的資料輸入,由多筆資料(因子)來判斷該時間是否為異常。
- 情境:一台server有多個因子可以來分析此台server是否有異常,例如:CPU使用率、RAM使用率、DISK I/O rate …等,藉由同一時間點的多個因子分析server是否異常。
- Advance: 此種模式為以上兩種的綜合型,根據設定的不同,可以設定成Multi-metric 或是 Single-metric
- Single metric : 單一維度的異常偵測,意指在單一時間下輸入資料(因子)僅僅會有一筆。
- 種群型(Population):
- Population:對種群內成員進行的對等分析,或者更準確地說,是個別實體與一段時間內由所有對等實體組成的聚合模型之間的對比
- 情境:假設小明和他大部分同事每天對系統中的一號API的request是10-20次,今天如果小華對一號API發了5000次request,這就會被被視為異常。在此情境中,因為不能以單一一個人的操作,作為典型代表,於是我們必須聚合多個單一使用者的行為來產生一個對此API的典型模型,在此模型下就可偵測出單一使用者的異常使用此API的情境。
- Categorization: 針對文字來做分群,從無排序的Log資料中,先將各個不同的Log做分群,再針對分群的結果在單一時間區間內的分佈來偵測該Log是否為異常Log
- 情境:有一個檔案寫滿了Log,但是系統並無停止,也沒看到先前有設定過的Error log,但是單一檔案內log種類太多,分不出何者才是與系統有異常時所出現的Log,在這裡就會將所有的Log進行分類,並且找出最有可能的Log是哪些。
- Population:對種群內成員進行的對等分析,或者更準確地說,是個別實體與一段時間內由所有對等實體組成的聚合模型之間的對比
5.Demo資料適用模型為Single-metric
在本文中的Demo資料適用模型為Single-metric,選擇後會看到以下畫面,若希望使用全資料作為訓練依據則點選use full <index名稱>即可套用全資料作為訓練資料6.Pick fields階段
Pick fields階段,主要是要決定要判讀哪一個數值在特定時間區間(bucket_span)內是否為異常,在此資料中,我們可以看到只有value這個欄位,在這裡我們以Max(value)來Demo:7.Job meta設定&進階設定
8.建立Job
最後一步,按下Create Job,即可看到歷史資料預測的結果:訂閱偉康科技洞察室部落格,掌握最新科技趨勢!
了解更多智能優先 AI First
偉康科技提供以雲端服務、智能數據、資安技術為核心的數位轉型解決方案,協助攻克企業資料治理遇到的難題,如有需求歡迎 聯絡我們