監視 Azure 監視器 Log Analytics 工作區中的作業問題
若要在 Azure 監視器中維護 Log Analytics 工作區的效能和可用性,您必須能夠主動偵測任何發生的問題。 此文章描述如何使用 Operation 資料表中的資料,監視 Log Analytics 工作區的健康情況。 此表格包含在每個 Log Analytics 工作區中。 其中包含在工作區中發生的錯誤訊息和警告。 建議您針對警告和錯誤層級的問題建立警示。
需要的權限
例如,對於查詢的 Log Analytics 工作區,您必須擁有 Microsoft.OperationalInsights/workspaces/query/*/read
權限,如 Log Analytics 讀取器內建角色所提供。
_LogOperation 函式
Azure 監視器記錄會將任何問題的詳細資料傳送至發生問題所在工作區的 Operation 資料表。 _LogOperation
系統函式會以 Operation 資料表為基礎,提供一組簡化的資訊以供分析和警示。
資料行
_LogOperation
函式會傳回下表中的資料行。
資料行 | 描述 |
---|---|
TimeGenerated | 事件發生的時間 (以 UTC 表示)。 |
類別 | 作業類別群組。 可用來篩選作業類型,並協助建立更精確的系統稽核和警示。 如需類別清單,請參閱下一節。 |
作業 | 作業類型的描述。 作業可以指出已達到其中一個 Log Analytics 限制、後端程序相關問題,或任何其他服務訊息。 |
層級 | 問題的嚴重性層級: - 資訊:不需特別注意。 - 警告:程序並未如預期般完成,需要注意。 - 錯誤:程序失敗,需要注意。 |
詳細資料 | 作業的詳細描述,包括特定的錯誤訊息。 |
_ResourceId | 與作業相關之 Azure 資源的資源識別碼。 |
電腦 | 如果作業與 Azure 監視器代理程式相關,則為電腦名稱。 |
CorrelationId | 用來對連續相關作業進行分組。 |
類別
下表說明 _LogOperation
函式中的類別。
類別 | 描述 |
---|---|
擷取 | 屬於資料擷取程序的作業。 |
專員 | 指出代理程式安裝的問題。 |
資料集合 | 與資料收集程序相關的作業。 |
解決方案目標 | 已處理 ConfigurationScope 類型的作業。 |
評量解決方案 | 已執行評量程序。 |
擷取
擷取作業是在資料擷取期間發生的問題,包括有關達到 Azure Log Analytics 工作區限制的通知。 此類別中的錯誤狀況可能暗示資料遺失,因此請務必加以監視。 如需 Log Analytics 工作區的服務限制,請參閱 Azure 監視器服務限制。
重要
如果您要針對使用資料收集規則 (DCR) (例如 Azure 監視器代理程式或記錄擷取 API) 的案例進行資料收集疑難排解,請參閱在 Azure 監視器中監視 DCR 資料收集和進行疑難排解,以取得其他疑難排解資訊。
作業:資料收集已停止
「由於已達到每日免費資料限制,因此已停止資料收集。 擷取狀態 = OverQuota」
在過去 7 天,記錄的收集已達到每日設定限制。 若工作區的設定為免費層,就會設定此限制,或是已設定此工作區的每日收集限制。 達到設定的限制之後,當天就會自動停止收集資料,資料的收集只能在下一個收集日繼續執行。
建議的動作:
- 檢查
_LogOperation
資料表以取得停止收集和繼續收集的事件:_LogOperation | where TimeGenerated >= ago(7d) | where Category == "Ingestion" | where Detail has "Data collection"
- 在「已停止收集資料」作業事件發生時建立警示。 此警示會在達到收集限制時通知您。
- 在達到每日收集限制之後所集的資料會遺失。 使用 [工作區深入解析] 窗格可檢閱每個來源的使用率。 或者,您可以決定管理每日資料量上限,或變更定價層以符合您的收集率模式。
- 資料收集率會每天計算,並在隔天開始時重設。 您也可以透過在「繼續收集資料」作業事件發生時建立警示,以監視繼續收集事件。
作業:擷取速率
「資料擷取量速率已超過工作區中的閾值:每分鐘 {0:0.00} MB,且已捨棄資料。」
建議的動作:
- 檢查
_LogOperation
資料表是否有擷取率事件:_LogOperation | where TimeGenerated >= ago(7d) | where Category == "Ingestion" | where Operation has "Ingestion rate"
持續超過閾值時,每隔六小時會傳送事件至工作區中的 Operation 資料表。 - 在「已停止收集資料」作業事件發生時建立警示。 此警示會在達到收集限制時通知您。
- 當擷取率達到百分之 100 時,收集的資料將遭捨棄並遺失。 使用 [工作區深入解析] 窗格檢閱您的使用模式並嘗試加以減少。
如需詳細資訊,請參閱:
作業:資料表資料行計數上限
「已捨棄 <資料表名稱> 類型的資料,因為欄位的數目 <新欄位計數> 已超過每個資料類型 <目前欄位計數限制> 個自訂欄位的限制。」
建議的動作:對於自訂資料表,您可以改成在查詢中剖析資料。
作業:欄位內容驗證
「下列欄位的值 <欄位名稱> (類型為 <資料表名稱>) 已修剪為允許的大小上限,<欄位大小限制> 位元組。 請據以調整您的輸入。」
大於限制大小的欄位已由 Azure 記錄處理。 會將欄位修剪為允許的欄位限制。 不建議您傳送大於允許限制的欄位,因為這樣會導致資料遺失。
建議的動作:
檢查受影響資料類型的來源:
- 如果資料會透過 HTTP 資料收集器 API 傳送,您必須變更程式碼或指令碼,在擷取資料之前先加以分割。
- 若是 Log Analytics 代理程式所收集的自訂記錄,請變更應用程式或工具的記錄設定。
- 對於任何其他資料類型,請提出支援案例。 如需詳細資訊,請參閱 Azure 監視器服務限制。
資料集合
下一節提供資料收集的相關資訊。
作業:Azure 活動記錄收集
「訂用帳戶的存取權已遺失。 請確定 <訂用帳戶識別碼> 訂用帳戶位於 <租用戶識別碼> Microsoft Entra 租用戶中。 如果將訂用帳戶轉移給另一個租用戶,則不會影響服務,但租用戶的資訊最多可能需要一小時才會傳播。
在某些情況下 (例如,將訂用帳戶移至不同的租用戶),Azure 活動記錄可能會停止流入工作區。 在那些情況下,您必須遵循此文章所述的程序來重新連線訂用帳戶。
建議的動作:
- 如果警告訊息中提及的訂用帳戶已不存在,請移至 [傳統] 底下的 [舊版活動記錄連接器] 窗格。 選取相關的訂用帳戶,然後選取 [中斷連線] 按鈕。
- 如果您無法再存取警告訊息上提及的訂用帳戶:
- 請遵循上述步驟,中斷訂用帳戶的連線。
- 若要繼續從此訂用帳戶收集記錄,請連絡訂用帳戶擁有者來修正權限,並重新啟用活動記錄的收集。
- 建立診斷設定,以將活動記錄傳送至 Log Analytics 工作區。
專員
下一節提供代理程式的相關資訊。
作業:Linux 代理程式
「來自 OMS 設定的兩個連續設定應用程式失敗。」
入口網站上的組態設定已變更。
建議的動作:此問題會在代理程式擷取新組態設定發生問題時出現。 若要減緩此問題,請重新安裝代理程式。
檢查代理程式事件的 _LogOperation
資料表:
_LogOperation | where TimeGenerated >= ago(6h) | where Category == "Agent" | where Operation == "Linux Agent" | distinct _ResourceId
此清單會顯示代理程式設定錯誤的資源識別碼。 若要減緩此問題,請重新安裝列出的代理程式。
警示規則
在 Azure 監視器中使用記錄搜尋警示,以在您的 Log Analytics 工作區中偵測到問題時主動收到通知。 使用可讓您及時回應問題,同時將成本降至最低的策略。 您的訂用帳戶將依 Azure 監視器定價中列出的費用,為每個警示規則付費。
建議的策略是根據問題層級,從兩個警示規則開始。 針對「錯誤」使用較短的頻率 (例如每 5 分鐘),針對「警告」則使用較長的頻率 (例如 24 小時)。 因為「錯誤」指出可能的資料遺失,因此建議您快速加以回應,以將任何遺失降到最低。 「警告」通常會指出不需立即注意的問題,因此您可以每天加以檢閱。
利用使用 Azure 監視器建立、檢視及管理記錄搜尋警示中的程序來建立記錄搜尋警示規則。 下列各節描述每個規則的詳細資料。
查詢 | 臨界值 | 期間 | 頻率 |
---|---|---|---|
_LogOperation | where Level == "Error" |
0 | 5 | 5 |
_LogOperation | where Level == "Warning" |
0 | 1,440 | 1,440 |
這些警示規則將對具有「錯誤」或「警告」的所有作業做出相同回應。 當您更熟悉產生警示的作業之後,您可能想要針對特定作業做出不同回應。 例如,您可能想要針對特定作業,將通知傳送給不同人員。
若要針對特定作業建立警示規則,請使用包括 [類別] 和 [作業] 資料行的查詢。
下列範例會在擷取量速率達到限制的百分之 80 時建立警告警示:
- 目標:選取您的 Log Analytics 工作區
- 準則:
- 訊號名稱:自訂記錄搜尋
- 搜尋查詢:
_LogOperation | where Category == "Ingestion" | where Operation == "Ingestion rate" | where Level == "Warning"
- 依據:結果數目
- 條件:大於
- 閾值:0
- 週期:5 (分鐘)
- 頻率︰5 (分鐘)
- 警示規則名稱:已達到每日資料限制
- 嚴重性:警告 (Sev 1)
下列範例會在資料收集達到每日限制時建立警告警示:
- 目標:選取您的 Log Analytics 工作區
- 準則:
- 訊號名稱:自訂記錄搜尋
- 搜尋查詢:
_LogOperation | where Category == "Ingestion" | where Operation == "Data collection Status" | where Level == "Warning"
- 依據:結果數目
- 條件:大於
- 閾值:0
- 週期:5 (分鐘)
- 頻率︰5 (分鐘)
- 警示規則名稱:已達到每日資料限制
- 嚴重性:警告 (Sev 1)