建立或編輯記錄搜尋警示規則
本文說明如何在 Azure 監視器中建立新的記錄搜尋警示規則,或編輯現有的記錄搜尋警示規則。 若要深入了解警示,請參閱警示概觀。
警示規則結合了要監視的資源、資源的監視數據,以及您想要觸發警示的條件。 然後,您可以定義動作群組和警示處理規則,以判斷觸發警示時會發生什麼事。
這些警示規則所觸發的警示包含使用常見警示結構描述的承載。
必要條件
若要建立或編輯警示規則,您必須具有下列許可權:
- 警示規則目標資源的讀取權限。
- 建立警示規則所在之資源群組的寫入權限。 如果您要從 Azure 入口網站建立警示規則,警示規則預設會在目標資源所在的相同資源群組中建立。
- 任何與警示規則相關聯的動作群組的讀取權限,如果適用。
在 Azure 入口網站中存取警示規則精靈
有多種方式可以建立或編輯警示規則。
從入口網站首頁建立或編輯警示規則
- 在 Azure 入口網站中,選取 [監視]。
- 在左側窗格中,選取 [警示]。
- 選取 [+ 建立]>[警示規則]。
從指定資源建立或編輯警示規則
- 在 Azure 入口網站中,移至資源。
- 在左側窗格中,選取 [警示]。
- 選取 [+ 建立]>[警示規則]。
- 警示規則的範圍會設定為您選取的資源。 繼續設定警示規則的條件。
編輯現有的警示規則
在 Azure 入口網站中,從首頁或特定資源選取左窗格上的 [警示]。
選取 [警示規則]。
選取您要編輯的警示規則,然後選取 [編輯]。
選取警示規則的任何索引標籤,以編輯設定。
設定警示規則的範圍
在 [選取資源] 窗格上,設定警示規則的範圍。 您可以依訂閱、資源類型或資源位置來篩選。
選取套用。
設定警示規則條件
在 [條件] 索引標籤上,當您選取 [訊號名稱] 欄位時,請選取 [自訂記錄搜尋]。 或者,如果您想要為條件選擇不同的訊號,請選取 [查看所有訊號]。
(選擇性) 如果您在上一個步驟中選取了 [查看所有訊號],請使用 [選取訊號] 窗格搜尋訊號名稱或篩選訊號清單。 篩選條件:
- [訊號類型]:請選取 [記錄搜尋]。
- 訊號來源:傳送 [自訂記錄搜尋] 和 [記錄 (已儲存的查詢)] 訊號的服務。 選取訊號名稱,然後選取 [套用]。
在 [記錄] 窗格中,撰寫查詢,以傳回您要建立警示的記錄事件。 若要使用其中一個預先定義的警示規則查詢,請展開 [記錄] 窗格旁邊的 [結構描述及篩選] 窗格。 然後選取 [查詢] 索引標籤,並且選取其中一個查詢。
請注意下列記錄搜尋警示規則查詢的限制:
- 記錄搜尋警示規則查詢不支援
bag_unpack()
、pivot()
和narrow()
。 - 記錄搜尋警示規則查詢僅支援具有時間範圍常值的 ago()。
AggregatedValue
是保留字。 您無法在記錄搜尋警示規則上的查詢中使用。- 記錄搜尋警示規則屬性中所有資料的合併大小不能超過 64 KB。
- 在 KQL 查詢中定義記錄搜尋警示的自訂函式時,請務必謹慎使用包含相對時間子句 (例如 now()) 的函式程式碼。 記錄搜尋警示 KQL 查詢本身中未定義且具有相對時間子句的自訂函式可能會導致查詢結果不一致,這可能會影響警示評估的準確性和可靠性。 因此:
- 為了確保準確且及時的警示,請務必直接在記錄搜尋警示 KQL 查詢中定義相對時間子句。
- 如果函式內部需要時間範圍,則應將它們作為參數傳遞並在函式中使用。
- 記錄搜尋警示規則查詢不支援
(選擇性) 如果您要查詢 Azure 資料總管或 Azure Resource Graph 叢集,Log Analytics 工作區就無法使用事件時間戳記自動識別資料行。 建議您將時間範圍篩選新增至查詢。 例如:
adx('https://help.kusto.windows.net/Samples').table | where MyTS >= ago(5m) and MyTS <= now()
arg("").Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project _ResourceId=tolower(id), tags
記錄搜尋警示查詢範例適用於 Azure 資料總管和 Resource Graph。
政府雲端中不支援跨服務查詢。 如需限制的詳細資訊,請參閱跨服務查詢限制和將 Azure Resource Graph 資料表與 Log Analytics 工作區結合。
選取 [執行] 執行警示。
[預覽] 區段會顯示查詢結果。 當您完成查詢編輯時,請選取 [繼續編輯警示]。
[條件] 索引標籤隨即開啟,並填入您的記錄查詢。 根據預設,規則會計算過去五分鐘內的結果數目。 如果系統偵測到摘要查詢結果,規則會以此資訊自動更新。
在 [量值] 區段中,選取這些欄位的值:
欄位 描述 Measure 記錄搜尋警示可以測量可用於各種監視案例的兩個項目:
資料表資料列:您可以使用傳回的資料列數目以使用 Windows 事件記錄、Syslog 和應用程式例外狀況等事件。
數值資料行的計算:您可以將任何數值資料行的計算用於包含任意數目的資源。 例如 CPU 百分比。彙總類型 透過使用彙總細微性,將多筆記錄的計算彙總成一個數值。 例如總計、平均值、最小值和最大值。 彙總細微性 將多筆記錄彙總成一個數值的間隔。 (選擇性) 在 [依維度分割] 區段中,您可以使用維度來協助提供觸發警示的內容。
維度是查詢結果中的資料行,其中包含額外的資料。 若您使用維度,警示規則會依維度值將查詢結果分組,然後分別評估每個群組的結果。 如果符合條件,規則會引發該群組的警示。 警示承載包含觸發警示的組合。
每個警示規則最多可以套用六個維度。 維度只能是字串或數值資料行。 如果您想要使用不是數值或字串類型的資料行做為維度,則必須在查詢中將資料行轉換成字串或數值。 如果您選取多個維度值,組合中各個時間序列的結果會觸發自身警示,並個別計費。
例如:
- 您可以使用維度監視在網站或應用程式上所執行多個執行個體的 CPU 使用量。 每個執行個體的監視會個別進行,而且會針對 CPU 使用量超過設定值的每個執行個體傳送通知。
- 若您想要將一項條件套用至範圍中的多個資源,您可以決定不依維度分割。 例如,如果您想要在資源群組範圍中至少有五部機器的 CPU 使用量高於設定值時引發警示,您不會使用維度。
一般而言,如果您的警示規則範圍是工作區,則會在工作區上引發警示。 如果您想要每個受影響 Azure 資源的個別警示,您可以:
使用 Azure Resource Manager [Azure 資源識別碼] 資料行作為維度。 當您使用此選項時,警示會在工作區上以 [Azure 資源識別碼] 資料行作為維度來引發。
將警示指定為 [Azure 資源識別碼] 屬性中的維度。 此選項會讓查詢傳回的資源成為警示目標。 接著會針對查詢傳回的資源引發警示,例如虛擬機器或儲存體帳戶,而不是工作區。
若您使用此選項,如果工作區從多個訂用帳戶取得資源,則可以針對不同於警示規則訂用帳戶的訂用帳戶資源觸發警示。
選取這些欄位的值:
欄位 描述 維度名稱 維度可以是數字或字串資料行。 維度用以監視特定的時間序列並提供引發的警示內容。 運算子 用於維度名稱和值的運算子。 維度值 維度值是以過去 48 個小時的資料為基礎。 選取 [新增自訂值] 以新增自訂維度值。 包含所有日後的值 選取此欄位,以包含新增至所選維度的任何未來值。 在 [警示邏輯] 區段中,選取這些欄位的值:
欄位 描述 運算子 查詢結果會轉換成數字。 在此欄位中,請選取以此數字比較閾值的運算子。 閾值 閾值的數值。 評估頻率 執行查詢的頻率。 您可以設定從一分鐘到一天 (24 小時) 之間的任意時間。 注意
頻率並非警示每天執行的特定時間。 其為警示規則的執行頻率。
使用一分鐘的警示規則頻率會有一些限制。 當您將警示規則頻率設定為一分鐘時,會執行內部操作來最佳化查詢。 如果查詢包含不支援的作業,這項操作可能會導致查詢失敗。 不支援查詢的最常見原因是:
- 查詢包含
search
、union
或take
(限制) 作業。 - 查詢包含
ingestion_time()
函式。 - 查詢會使用
adx
模式。 - 查詢會呼叫一個呼叫其他資料表的函式。
記錄搜尋警示查詢範例適用於 Azure 資料總管和 Resource Graph。
- 查詢包含
(選擇性) 在 [進階選項] 區段中,您可以指定觸發警示所需要的失敗次數和警示評估期間。 例如,如果您將 [彙總細微性] 設定為 5 分鐘,就可以指定唯有在過去一小時內發生三次失敗 (15 分鐘) 時才會觸發警示。 您的應用程式商務原則會決定此設定。
在 [違規次數] 下,選取觸發警示的這些欄位值:
欄位 描述 違規次數 觸發警示的違規次數。 評估期間 發生違規次數的時間週期。 覆寫查詢時間範圍 如果您想要警示評估期間與查詢時間範圍不同,請在這裡輸入時間範圍。
警示時間範圍的上限為兩天。 即使查詢包含時間範圍超過兩天的ago
命令,也會套用最長兩天的時間範圍。 例如,即使查詢文字包含ago(7d)
,查詢最多也只會掃描兩天的資料。 若查詢所要求的資料超出警示評估,您可以手動變更時間範圍。 如果查詢包含ago
命令,則會自動變更為兩天 (48 小時)。注意
如果您或管理員指派 Azure 原則為「Log Analytics 工作區的 Azure 記錄搜尋警示應該使用客戶自控金鑰」,則您必須選取 [檢查工作區連結的儲存體]。 如果未選取,規則建立將會失敗,因為不符合原則需求。
[預覽] 圖表會顯示一段時間的查詢評估結果。 您可以變更圖表週期,或選取由維度分割唯一警示所產生的不同時間序列。
選取完成。 設定警示規則條件之後,您可以設定警示規則詳細數據以完成警示的建立,或選擇性地將動作和標籤新增至警示規則。
設定警示規則動作
在 [ 動作] 索引標籤上,您可以選擇性地選取或建立 警示規則的動作群組 。
設定警示規則詳細資料
在 [詳細資料] 索引標籤的 [專案詳細資料] 底下,選取 [訂用帳戶] 和 [資源群組] 值。
在 [警示規則詳細資料] 下:
選取 [嚴重性] 值。
輸入 [警示規則名稱] 和 [警示規則描述] 的值。
注意
使用身分識別的規則在 [警示規則名稱] 值中不能有分號 (;) 字元。
選取 [區域] 值。
在 [身分識別] 區段中,選取記錄搜尋警示規則在傳送記錄查詢時用於驗證的身分識別。
當您選取身分識別時,請記住下列幾點:
- 如果要將查詢傳送至 Azure 資料總管,您需要受控識別或 Resource Graph。
- 如果您想要能夠檢視或編輯與警示規則相關聯的權限,請使用受控識別。
- 如果您未使用受控識別,警示規則的權限會以上次編輯規則時最後一位編輯規則的使用者權限為基礎。
- 使用受控識別可協助您避免規則無法如預期般運作的情況,因為上次編輯規則的使用者沒有規則範圍內所有新增資源的權限。
與規則相關聯的身分識別必須具有下列角色:
- 如果查詢存取 Log Analytics 工作區,則必須將查詢所存取所有工作區的讀者角色指派給該身分識別。 如果您要建立以資源為中心的記錄搜尋警示,警示規則可能會存取多個工作區,則必須將所有工作區的讀者角色指派給該身分識別。
- 如果您要查詢 Azure 資料總管或 Resource Graph 叢集,則必須為查詢存取的所有資料來源新增讀取者角色。 例如,如果查詢以資源為中心,則身分識別需要該資源的讀者角色。
- 如果查詢要存取遠端 Azure 資料總管叢集,則必須將身分識別指派為:
- 查詢所存取所有資料來源的讀者角色。 例如,如果查詢使用
adx()
函式呼叫遠端 Azure 資料總管叢集,則查詢需要該 Azure 資料總管叢集的讀者角色。 - 查詢存取的所有資料庫都有資料庫檢視者角色。
- 查詢所存取所有資料來源的讀者角色。 例如,如果查詢使用
如需受控識別的詳細資訊,請參閱適用於 Azure 資源的受控識別。
針對警示規則所使用的身分識別,選取下列其中一個選項:
身分識別選項 描述 None 警示規則的權限會以編輯規則時最後一位編輯規則的使用者權限為基礎。 啟用系統指派的受控識別 Azure 為此警示規則建立新的專用身分識別。 此身分識別沒有權限,而且會在刪除規則時自動刪除。 建立規則之後,您必須將權限指派給此身分識別,才能存取查詢所需的工作區和資料來源。 如需指派權限的詳細資訊,請參閱使用 Azure 入口網站指派 Azure 角色。 不支援使用已連結儲存體的記錄搜尋警示規則。 啟用使用者指派的受控識別 建立警示規則之前,您建立身分識別,然後將記錄查詢的適當權限給該身分識別。 這是一般的 Azure 身分識別。 您可以在多個警示規則中使用一個身分識別。 刪除規則時,不會刪除此身分識別。 當您選取此類型的身分識別時,隨即會開啟一個窗格,讓您選取規則的相關聯身分識別。 -
欄位 描述 在建立時啟用 選取此選項,讓警示規則在您完成建立後立即開始執行。 自動解決警示 選取此選項可將警示設定為具狀態。 若警示有狀態,當條件不再符合達一段特定時間範圍後,系統會自動解決警示。 時間範圍會根據警示的頻率而有所不同:
1 分鐘:警示條件未符合達 10 分鐘。
5 到 15 分鐘:警示條件在三個頻率週期後未能符合。
15 分鐘到 11 小時:警示條件在兩個頻率週期後未能符合。
11 至 12 小時::警示條件在一個頻率週期後未能符合。
請注意,具狀態記錄搜尋警示具有下列限制。將動作靜音 選取此選項,將設定再次觸發警示動作之前所要等候的時間長度。 欄位的 [動作靜音期間] 會顯示為選取在警示引發後等待的時間量,然後再次觸發動作。 檢查工作區連結的儲存體 如果已設定警示的工作區連結儲存體,請選取此選項。 如果未設定任何連結的儲存體,則不會建立規則。 -
(選擇性) 在 [自訂屬性] 區段中,如果此警示規則包含動作群組,您可以新增自己的屬性以包含在警示通知承載中。 您可以在動作群組所呼叫的動作中使用這些屬性,例如 Webhook、Azure 函式或邏輯應用程式動作。
自訂屬性會使用靜態文字、從警示承載擷取的動態值,或兩者的組合,指定為索引鍵/值組。
從警示承載擷取動態值的格式為:
${<path to schema field>}
。 例如:${data.essentials.monitorCondition}
。使用一般警示結構描述的格式來指定承載中的欄位,無論為警示規則設定的動作群組是否使用通用結構描述。
注意
- 自訂屬性會新增至警示的承載,但不會出現在電子郵件範本或 Azure 入口網站中的警示詳細資料中。
在下列範例中,自訂屬性中的值會用於使用一般警示結構描述承載中的資料。
此範例會建立其他詳細資料標籤,其中包含有關「時間範圍開始時間」和「時間範圍結束時間」的資料:
- 名稱:
Additional Details
- 值:
Evaluation windowStartTime: ${data.alertContext.condition.windowStartTime}. windowEndTime: ${data.alertContext.condition.windowEndTime}
- 結果︰
AdditionalDetails:Evaluation windowStartTime: 2023-04-04T14:39:24.492Z. windowEndTime: 2023-04-04T14:44:24.492Z
此範例會新增有關解析或引發警示原因的資料:
- 名稱:
Alert ${data.essentials.monitorCondition} reason
- 值:
${data.alertContext.condition.allOf[0].metricName} ${data.alertContext.condition.allOf[0].operator} ${data.alertContext.condition.allOf[0].threshold} ${data.essentials.monitorCondition}. The value is ${data.alertContext.condition.allOf[0].metricValue}
- 可能的結果:
Alert Resolved reason: Percentage CPU GreaterThan5 Resolved. The value is 3.585
Alert Fired reason": "Percentage CPU GreaterThan5 Fired. The value is 10.585
設定警示規則標記
在 [ 卷標 ] 索引標籤上,您可以選擇性地在警示規則資源上設定任何必要的標籤。
檢閱並建立警示規則
在 [檢閱 + 建立] 索引標籤上,系統會驗證規則。 如果有問題,請返回並加以修正。
當驗證通過且您已檢閱設定時,請選取 [建立] 按鈕。