在 Azure 監視器中使用 AIOps 和機器學習偵測並減輕潛在問題
適用於 IT 作業的人工智慧 (AIOps) 提供強大的方法來改善服務品質和可靠性,方法是使用機器學習來處理並自動處理從應用程式、服務和 IT 資源收集到 Azure 監視器的數據。
Azure 監視器的內建 AIOps 功能提供深入解析,並協助您針對問題進行疑難解答,並將數據驅動工作自動化,例如預測容量使用量和自動調整、識別和分析應用程式效能問題,以及偵測虛擬機、容器和其他資源中的異常行為。 這些功能可提升 IT 監視和作業,而不需要機器學習知識和進一步投資。
Azure 監視器也提供工具,可讓您建立自己的機器學習管線,以引進新的分析和回應功能,並處理 Azure 監視器記錄中的數據。
本文說明 Azure 監視器的內建 AIOps 功能,並說明如何建立和執行自定義機器學習模型,並在 Azure 監視器記錄中的數據上建置自動化機器學習管線。
內建的 Azure 監視器 AIOps 和機器學習功能
監視案例 | 功能 | 描述 |
---|---|---|
記錄監視 | Log Analytics 工作區深入解析 | 提供 Log Analytics 工作區的統一檢視,並使用機器學習來偵測擷取異常。 |
Kusto 查詢語言 (KQL) 時間序列分析和機器學習函式 | 容易使用的工具來產生時間序列數據、偵測異常、預測,以及直接在 Azure 監視器記錄中執行根本原因分析,而不需要深入了解數據科學和程式設計語言。 | |
適用於 Azure 的 Microsoft Copilot | 協助您使用Log Analytics來分析數據並針對問題進行疑難解答。 根據提示產生範例 KQL 查詢,例如「容器記錄中是否有任何錯誤?」。 | |
應用程式效能監視 | 應用程式對應智慧型手機檢視 | 地圖 服務之間的相依性,並協助您找出分散式應用程式所有元件的效能瓶頸或失敗熱點。 |
智慧型偵測 | 分析應用程式傳送至 Application Insights 的遙測、效能問題和失敗異常的警示,並識別應用程式效能問題的潛在根本原因。 | |
計量警示 \(部分機器翻譯\) | 計量警示的動態閾值 | 瞭解計量模式、根據歷程記錄數據自動設定警示閾值,並識別可能指出服務問題的異常。 |
虛擬機器擴展集 | 預測性自動調整 | 根據歷程記錄 CPU 使用量模式預測虛擬機擴展集的整體 CPU 需求,並自動相應放大以符合這些需求。 |
Azure 監視器記錄中的機器學習服務
使用 Kusto 查詢語言 的內建時間序列分析和機器學習函式、操作員和外掛程式來取得服務健康情況、使用狀況、容量和其他趨勢的深入解析,以及在 Azure 監視器記錄中產生預測和偵測異常。
若要獲得更大的彈性,並擴充分析及處理數據的能力,您也可以在 Azure 監視器記錄中的數據上實作自己的機器學習管線。
下表比較了使用 KQL 內建機器學習功能和建立您自己的機器學習管線的優點和限制,以及示範如何實作各項教學課程的連結:
內建的 KQL 機器學習功能 | 建立您自己的機器學習管線 | |
---|---|---|
案例 | ✅ 異常偵測、根本原因和時間序列分析 |
✅ 異常偵測、根本原因和時間序列分析 ✅進階分析和 AIOP 案例 |
優點 | 🔹讓您快速開始。 🔹不需要數據科學知識和程序設計技能。 🔹 最佳效能和節省成本。 |
🔹支援較大的縮放比例。 🔹啟用進階、更複雜的案例。 🔹選擇連結庫、模型、參數的彈性。 |
服務限制和數據磁碟區 | Azure 入口網站 或查詢 API 記錄查詢限制,取決於您是在入口網站中工作或使用 API,例如從筆記本。 | 🔹如果您在機器學習管線中查詢 Azure 監視器記錄中的數據,則查詢 API 記錄查詢限制。 否則,沒有 Azure 服務限制。 🔹可支援較大的數據磁碟區。 |
整合 | 無。 在 Azure 入口網站 或整合式 Jupyter Notebook 中使用 Log Analytics 執行。 | 需要與工具整合,例如 Jupyter Notebook。 一般而言,您也會與其他 Azure 服務整合,例如 Azure Synapse Analytics。 |
效能 | 使用 Azure 數據總管平臺以分散式方式執行的最佳效能。 | 根據您 實作機器學習管線的方式,在查詢或匯出數據時引進少量延遲。 |
模型類型 | 具有一組可設定參數的 KQL 時間序列函式所支援的線性回歸模型和其他模型。 | 完全可自定義的機器學習模型或異常偵測方法。 |
成本 | 不需額外費用。 | 視您實作機器學習管線的方式而定,可能會產生匯出數據、將評分數據擷取至 Azure 監視器記錄,以及使用其他 Azure 服務的費用。 |
教學課程 | 在 Azure 監視器中使用 KQL 機器學習功能偵測和分析異常 | 使用筆記本分析 Azure 監視器記錄中的數據 |
在 Azure 監視器記錄中的數據上建立您自己的機器學習管線
在 Azure 監視器記錄中的數據上建置您自己的機器學習管線,以引進新的 AIOps 功能並支援進階案例,例如:
- 尋找比 KQL 更複雜模型的安全性攻擊。
- 偵測效能問題,並針對 Web 應用程式中的錯誤進行疑難解答。
- 建立多步驟流程,並根據上一個步驟的結果,在每個步驟中執行程序代碼。
- 自動化 Azure 監視器記錄數據的分析,並提供多個領域的深入解析,包括基礎結構健康情況和客戶行為。
- 將 Azure 監視器記錄中的數據與其他來源的數據相互關聯。
有兩種方法可讓您的機器學習管線使用 Azure 監視器記錄中的數據:
在 Azure 監視器記錄中查詢資料 整合筆記本與 Azure 監視器 - 記錄,或使用 Azure 監視器查詢用戶端連結庫或 MSTICPY 等連結庫在記錄數據上執行腳本或應用程式,以表格式形式從 Azure 監視器記錄擷取數據;例如,將數據放入 Pandas DataFrame。 您查詢的數據會擷取到您伺服器上的記憶體內部物件,而不需要將數據從Log Analytics工作區導出。
注意
您可能需要在管線中轉換資料格式。 例如,若要使用以 Apache Spark 為基礎的連結庫,例如 SynapseML,您可能需要將 Pandas 轉換成 PySpark DataFrame。
將數據從 Azure 監視器記錄 - 導出數據從 Log Analytics 工作區匯出,通常是導出至 Blob 記憶體帳戶,並使用 機器學習連結庫實作機器學習管線。
下表比較擷取機器學習管線數據的方法優點和限制:
查詢 Azure 監視器記錄中的數據 | 匯出資料 | |
---|---|---|
優點 | 🔹快速開始。 🔹只需要基本數據科學和程序設計技能。 🔹最少的延遲和節省成本。 |
🔹支援較大的縮放比例。 🔹沒有查詢限制。 |
匯出的數據? | No | Yes |
服務限制 | 查詢 API 記錄查詢限制 和 用戶查詢節流。 您可以藉由 將較大的查詢分割成區塊,以克服查詢 API 限制,以某種程度地克服查詢限制。 | 無來自 Azure 監視器。 |
數據磁碟區 | 分析數 GB 的數據,或每小時數百萬筆記錄。 | 支援大量數據。 |
機器學習連結庫 | 針對小型到中型數據集,您通常會使用單一節點機器學習連結庫,例如 Scikit Learn。 | 針對大型數據集,您通常會使用巨量數據機器學習連結庫,例如 SynapseML。 |
延遲 | 最少。 | 在匯出數據時引進少量延遲。 |
成本 | Azure 監視器中不收取額外費用。 如果使用 Azure Synapse Analytics、Azure 機器學習 或其他服務的成本。 |
數據匯出 和外部記憶體的成本。 如果使用 Azure Synapse Analytics、Azure 機器學習 或其他服務的成本。 |
提示
若要受益於這兩種實作方法的最佳功能,請建立混合式管線。 常見的混合式方法是匯出模型定型的數據,其中包含大量數據,並使用 Azure 監視器記錄 中的查詢數據來探索數據並評分新數據,以降低延遲和成本。
在 Azure 監視器記錄中實作機器學習生命週期的步驟
設定機器學習管線通常牽涉到下列所有或部分步驟。
您可以使用各種 Azure 和 開放原始碼 機器學習連結庫來實作機器學習管線,包括 Scikit Learn、PyTorch、Tensorflow、Spark MLlib 和 SynapseML。
下表說明每個步驟,並提供高階指引和一些範例,說明如何根據在 Azure 監視器記錄中建立您自己的機器學習管線中所述的實作方法實作這些步驟:
步驟 | 描述 | 查詢 Azure 監視器記錄中的數據 | 匯出資料 |
---|---|---|---|
探索資料 | 檢查並瞭解您所收集的數據。 | 探索數據最簡單的方式是使用Log Analytics,它提供一組豐富的工具來探索和可視化 Azure 入口網站 中的數據。 您也可以 使用筆記本來分析 Azure 監視器記錄中的數據。 | 若要分析 Azure 監視器外部的記錄, 請從 Log Analytics 工作區 匯出數據,並在您選擇的服務中設定環境。 如需如何探索 Azure 監視器外部記錄的範例,請參閱 使用 Synapse 分析從 Log Analytics 導出的數據。 |
建置和定型機器學習模型 | 模型定型是反覆的程式。 研究人員或數據科學家會藉由擷取和清除定型數據、工程師特徵、嘗試各種模型和微調參數,以及重複此迴圈,直到模型準確且健全為止,來開發模型。 | 針對小型到中型數據集,您通常會使用單一節點機器學習連結庫,例如 Scikit Learn。 如需如何使用 Scikit Learn 連結庫來定型 Azure 監視器記錄中數據的機器學習模型範例,請參閱此 範例筆記本:使用機器學習技術偵測 Azure 監視器記錄中的異常狀況。 |
針對大型數據集,您通常會使用巨量數據機器學習連結庫,例如 SynapseML。 |
部署和評分模型 | 評分是將機器學習模型套用至新數據以取得預測的程式。 評分通常需要大規模完成,且延遲最少。 | 若要查詢 Azure 監視器記錄中的新數據,請使用 Azure 監視器查詢用戶端連結庫。 如需如何使用 開放原始碼 工具為數據評分的範例,請參閱此範例筆記本:使用機器學習技術偵測 Azure 監視器記錄中的異常狀況。 |
|
依排程執行管線 | 將管線自動化,以定期在目前數據上重新定型模型。 | 使用 Azure Synapse Analytics 或 Azure 機器學習 排程您的機器學習管線。 | 請參閱 Azure 監視器記錄資料列中的查詢數據範例。 |
將評分結果擷取至Log Analytics工作區可讓您使用數據來取得進階見解,以及建立警示和儀錶板。 如需如何使用 Azure 監視器擷取用戶端連結庫擷取評分結果的範例,請參閱將異常擷取到 Log Analytics 工作區中的自定義數據表。
下一步
深入了解:
- Azure 監視器記錄。
- Azure 監視器深入解析和策劃的視覺效果。