了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

讓我們回想一下,Elastic Stack 是基於非關係型 Elasticsearch 資料庫、Kibana Web 介面以及資料收集器和處理器(最著名的 Logstash、各種 Beats、APM 等)。 整個列出的產品堆疊的一個不錯的補充是使用機器學習演算法進行數據分析。 在文章中我們了解了這些演算法是什麼。 請下貓。

機器學習是共享軟體 Elastic Stack 的付費功能,包含在 X-Pack 中。 要開始使用它,只需在安裝後啟動 30 天試用版。 試用期結束後,您可以請求支援延長試用期或購買訂閱。 訂閱費用不是根據資料量計算的,而是根據使用的節點數計算的。 不,資料量當然會影響所需節點的數量,但這種授權方法相對於公司預算來說仍然更人性化。 如果不需要高生產率,則可以省錢。

Elastic Stack 中的 ML 是用 C++ 編寫的,在 JVM 之外運行,Elasticsearch 本身也在 JVM 中運行。 也就是說,該進程(順便說一下,它稱為自動檢測)會消耗 JVM 未吞下的所有內容。 在演示台上,這並不那麼重要,但在生產環境中,為 ML 任務分配單獨的節點非常重要。

機器學習演算法分為兩類 - 和老師 и 無師自通。 在 Elastic Stack 中,演算法屬於「無監督」類別。 經過 此鏈接 您可以看到機器學習演算法的數學裝置。

為了執行分析,機器學習演算法使用 Elasticsearch 索引中儲存的資料。 您可以從 Kibana 介面和 API 建立分析任務。 如果您透過 Kibana 執行此操作,則不需要了解某些事情。 例如,演算法在其操作期間使用的附加索引。

分析過程中所使用的附加指標.ml-state — 有關統計模型的資訊(分析設定);
.ml-anomalies-* — ML 演算法的結果;
.ml-notifications — 基於分析結果的通知設定。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

Elasticsearch 資料庫中的資料結構由索引和儲存在其中的文件組成。 與關聯式資料庫相比,索引可以與資料庫模式進行比較,文件可以與表中的記錄進行比較。 這種比較是有條件的,旨在簡化那些只聽說過 Elasticsearch 的人對進一步材料的理解。

透過 API 可以使用與 Web 介面相同的功能,因此為了清楚和理解概念,我們將展示如何透過 Kibana 設定它。 在左側選單中有一個機器學習部分,您可以在其中建立新作業。 在 Kibana 介面中,如下圖所示。 現在我們將分析每種類型的任務並展示可以在此處建立的分析類型。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

單指標 - 分析一個指標,多指標 - 分析兩個或多個指標。 在這兩種情況下,每個指標都是在隔離的環境中分析的,即演算法沒有考慮平行分析指標的行為,就像多指標的情況一樣。 要執行考慮各種指標相關性的計算,您可以使用總體分析。 高級版正在對演算法進行微調,為某些任務提供額外的選項。

單一指標

分析單一指標的變化是這裡可以完成的最簡單的事情。 按一下「建立作業」後,演算法將尋找異常情況。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

在現場 聚合 您可以選擇一種搜尋異常的方法。 例如,當 Min 低於典型值的值將被視為異常。 吃 最大、高平均值、低、平均、獨特 和別的。 可以找到所有功能的說明 鏈接.

在現場 表示我們將對其進行分析的文件中的數字欄位。

在現場 鏟鬥跨度 ——進行分析的時間間隔的粒度。 您可以信任自動化或手動選擇。 下圖是粒度太低的範例 - 您可能會錯過異常情況。 使用此設置,您可以更改演算法對異常的敏感度。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

收集資料的持續時間是影響分析有效性的關鍵因素。 在分析過程中,演算法會辨識重複間隔,計算信賴區間(基線),並辨識異常情況-與指標正常行為的非典型偏差。 僅舉個例子:

具有一小段數據的基線:

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

當演算法有東西可以學習時,基線如下所示:

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

開始任務後,演算法確定與正常值的異常偏差,並根據異常機率對它們進行排名(括號中表示相應標籤的顏色):

警告(藍色):小於 25
未成年(黃色):25-50
專業(橘色):50-75
臨界(紅色):75-100

下圖顯示了發現的異常情況的範例。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

這裡你可以看到數字94,它表示異常的機率。 很明顯,由於該值接近 100,這表示我們存在異常。 圖表下方的欄位顯示了此處出現的度量值 0.000063634% 的極小機率。

除了搜尋異常之外,您還可以在 Kibana 中執行預測。 這是簡單地完成的,並且從與異常相同的視圖 - 按鈕 預測 在右上角。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

預測最多提前 8 週進行。 即使你真的想這樣做,設計上也不再可能了。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

在某些情況下,預測將非常有用,例如,在監控基礎架構上的使用者負載時。

多指標

讓我們繼續討論 Elastic Stack 中的下一個 ML 功能 - 批量分析多個指標。 但這並不意味著將分析一個指標對另一個指標的依賴。 這與單一指標相同,但一個螢幕上有多個指標,可以輕鬆比較一個指標對另一個指標的影響。 我們將在人口部分討論分析一個指標對另一個指標的依賴。

點擊帶有多度量的方塊後,將出現一個帶有設定的視窗。 讓我們更詳細地看看它們。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

首先,您需要選擇要對其進行分析和資料聚合的欄位。 此處的聚合選項與單一指標相同(最大、高平均值、低、平均、獨特 和別的)。 此外,如果需要,資料可以分為字段之一(字段 拆分數據)。 在範例中,我們按字段執行此操作 起始機場ID。 請注意,右側的指標圖現在顯示為多個圖。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

領域 關鍵領域(影響者) 直接影響檢測到的異常。 預設情況下,此處始終至少有一個值,您可以新增其他值。 此演算法在分析時會考慮這些欄位的影響並顯示最具「影響力」的值。

啟動後,Kibana 介面中會出現類似這樣的內容。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

這就是所謂的每個欄位值的異常熱圖 起始機場ID,我們在 拆分數據。 與單一指標一樣,顏色表示異常偏差的程度。 進行類似的分析很方便,例如在工作站上追蹤那些具有可疑大量授權的人等。 我們已經寫過 關於 EventLog Windows 中的可疑事件,也可以在這裡收集和分析。

熱圖下方是異常列表,您可以從每個異常列表切換到單一指標視圖以進行詳細分析。

人口

為了尋找不同指標之間的相關性異常,Elastic Stack 有專門的整體分析。 借助它,您可以在例如對目標系統的請求數量增加時查找伺服器與其他伺服器相比的效能異常值。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

在此圖中,Population 欄位指示與分析的指標相關的值。 在本例中,它是進程的名稱。 因此,我們將看到每個進程的處理器負載如何相互影響。

請注意,分析資料的圖表與單指標和多指標的情況不同。 這是在 Kibana 中精心設計的,旨在改善對分析資料值分佈的感知。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

此圖顯示進程行為異常 應力 (順便說一句,由特殊實用程式產生)在伺服器上 波伊普,誰影響了(或證明是影響者)此異常的發生。

高級

具有微調的分析。 透過進階分析,Kibana 中會出現其他設定。 點擊建立功能表中的「進階」圖塊後,將出現此帶有選項卡的視窗。 標籤 招聘詳情 我們故意跳過它,有一些與設定分析沒有直接關係的基本設定。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

В 摘要計數欄位名稱 或者,您可以指定包含聚合值的文件中的欄位名稱。 在此範例中,為每分鐘的事件數。 在 分類欄位名稱 指示文件中包含某些變數值的欄位的名稱和值。 使用此欄位上的掩碼,您可以將分析的資料拆分為子集。 注意按鈕 新增探測器 在上圖中。 以下是點擊此按鈕的結果。

了解 Elastic Stack(又稱 Elasticsearch、又稱 ELK)中的機器學習

這是用於為特定任務配置異常檢測器的附加設定區塊。 我們計劃在以下文章中討論特定用例(尤其是安全用例)。 例如, 拆開的箱子之一。 它與搜尋很少出現的值相關聯並實現 稀有功能.

在現場 功能 您可以選擇特定功能來搜尋異常。 除了 罕見,還有一些更有趣的函數 - 一天中的時間 и 每週時間。 他們分別辨識一天或一週指標行為的異常情況。 其他分析功能 在文件中.

В 字段名稱 指示將對其進行分析的文件的欄位。 按欄位名稱 可用於分隔此處指定的文檔欄位的每個單獨值的分析結果。 如果你填 欄位名稱 你會得到我們上面討論的人口分析。 如果您指定一個值 分區欄位名稱,那麼對於文件的該字段,將為每個值計算單獨的基線(例如,該值可以是伺服器的名稱或伺服器上的進程的名稱)。 在 排除_頻繁 可以選擇 全部沒有,這意味著排除(或包含)頻繁出現的文件欄位值。

在本文中,我們試圖盡可能簡潔地介紹 Elastic Stack 中機器學習的功能;幕後仍有許多細節。 在評論中告訴我們您使用 Elastic Stack 成功解決了哪些案例以及您使用它執行哪些任務。 若要聯絡我們,您可以使用 Habré 上的個人訊息或 網站上的回饋表.

來源: www.habr.com

添加評論