AIOps 這個議題在近幾年愈來愈火紅,以往我們總是只能透過進行監視、建立好規則觸發警報,來了解系統是否發生異常,但若是我們沒有自己觀察到的部份,或是規則沒有定義清楚的地方,往往很難有效且即時的發現問題,一般都是等到造成更嚴重的影響,嚴重到我們被通知道,我們知道有發生問題,而透過 Machine Learning 的能力,就是希望能在更嚴重的災情發生之前,我們就能主動被提醒是否有異常,進而防止災情的發生。
要說到 Elastic Stack 中所使用到 Machine Learning 的能力,主要有個兩部份:
由於我自己本身對 Machine Learning 這部份並不熟悉,因此也不便多做說明,有興趣的可以查看 官方文件 - Machine Learning。
雖然我對於 Machine Learning 不熟悉,同時也聽過不同的評論表示 Elastic Stack 裡使用到的 Machine Learning 只是基本的能力,並沒有太過華麗,不過或許是這樣反而更容易讓非 Machine Learning 專業的人上手,同時所關注的點會是在如何能確實的協助我們在 Observability 這件事情上。
接下來我就從 Elastic Observability 當中的四大功能 Logs、Metrics、Uptime、APM ,裡面所使用到 Machine Learning 的部份來進行說明。
首先在 Logs 的畫面中,功能表中就有 Anomalies 與 Categories 的選項,這兩個功能都是透過 Machine Learning 的能力所執行的功能,主要能協助我們做到:
Logs 的 Anomaly 主要是針對 log entry rates (輸入率) 來進行異常的判斷。
第一次進入時,會需要建立 Machine Learninng 的 job (工作),只需要選擇起始的時間,以及針對哪個 indes 進行處理即可。
當 ML job 開始執行後,同時也收集一段時間的資料之後 (一般來說有二週以上的資料會較準確),我們在 Anomalies 可以看到,針對不同的 dataset (這個欄位是 Elastic Common Schema 所定義的,同時也就是 ECS 正規化的好處),在不同的時間點,有哪些可能是異常的狀態。
並且會用簡單的分數來協助我們判斷,並且在 Anomaly 可以直接看到異常的描述。
針對底下的項目展開,可以看到最近幾則判定為異常的 events 的原始 logs 長什麼樣子,從上圖的時間軸,也能快速的針對這段有異常的時間區段來設置時間的篩選,也能進一步跳轉到 Elastic Machine Learning 功能的 Anomaly Explorer 畫面進行深入的分析。
進入到 Categories (分類) 的功能畫面時,很單純的依照收集到的 Logs 進行分類,前且顯示總數量、Datasets 的來源、並且借由 Trend (趨勢) 的變化及數量來快速判斷異常的狀況。
Metrics 裡使用 Machine Learning 主要可以協助我們針對 Metrics 數據判斷是否有異常,例如:
而 Metrics 裡要啟用 Machine Learning,是在 Inventory 裡面來啟用,並透過右上角的 Anomaly detection。
同樣的設定上也相當單純,選擇起始的時間,並且指定是否有要使用哪個欄位值來做 partition。
至於檢視異常狀況,也是透過右上角的 Anonmaly detecion 的選項,同時點選 Anomalies 的頁籤,可以看到 Machine Learning 協助判斷出來的異常資訊。
透過 Actions 的選單,可以快速的跳到 Anomaly Explorer 或是在 Metrics 的 Inventory 畫面中檢視。
點選 Show in inventory 之後,會直接帶入篩選值,以及切到時間到異常發生的時段。
在 Uptime 裡,Machine Learning 主要協助的是:
設定啟用 Anomaly detection 的方式,是要進入某個定義好的 Monitor 項目之中:
點選進入之後,在 Monitor duration 的畫面裡,可以看到 Enable anomaly detection 的選項。
一旦啟用對後,若有回應時間特別久的異常發生,在 Monitor duration 裡就可以直接看到。
APM 的部份,與 Machine Learning 有較完整的 APM anomaly detection 的整合,針對
上述的各項都有較完整的整合,這部份的資訊可以參考 官方文件 - Machine Learning - APM anomaly detection integration。
而設定的部份,也是在右上角的 Anomaly detection 進行設定。
而異常發生時,在 APM 的相關畫面都能看到標示,Service 頁面會出現 Hearth 的欄位:
Transaction 的畫面會將異常 Duration 的區段標示出來:
Service Map 當中,有異常的服務也會變成黃色或紅色,點選下去也會出現異常的分析資訊:
以上的介紹,是針對 Elastic Observability 中,透過 Machine Learning 在 Logs、Metrics、Uptime、Traces 裡整合的相關功能說明,有興趣的朋友可以進一步的從 官方文件 - Machine Learning 查閱 Machine Learning 的進階用法,特別是 Anomaly Explorer 裡面擁有更多詳細的功能,對於異常的深入分析會有所幫助。
查看最新 Elasticsearch 或是 Elastic Stack 教育訓練資訊: https://training.onedoggo.com
歡迎追蹤我的 FB 粉絲頁: 喬叔 - Elastic Stack 技術交流
不論是技術分享的文章、公開線上分享、或是實體課程資訊,都會在粉絲頁通知大家哦!