共用方式為


管理在舊版中建立的警示規則

本文說明相關程序,讓您了解如何管理透過先前的 UI 或使用 API 2018-04-16 版或更早版本所建立的警示規則。 在最新的 UI 中建立的警示規則要在新的 UI 中檢視及管理,如使用 Azure 監視器來建立、檢視及管理記錄搜尋警示中所述。

記錄搜尋警示規則建立體驗的變更

目前的警示規則精靈與舊版的體驗不同:

  • 先前,搜尋結果會包含在觸發警示的承載及其相關聯的通知中。 此封電子郵件只包含 10 筆未經篩選的結果,但 Webhook 承載包含 1,000 筆未經篩選的結果。 若要取得警示的詳細內容資訊,使得您可以決定適當的動作:
    • 建議您使用維度。 維度提供觸發警示的資料行值,讓您了解觸發警示的原因,以及如何修正問題的相關內容。
    • 需要調查記錄時,請使用警示中的連結,在記錄中搜尋結果。
    • 如果您需要原始搜尋結果或任何其他的自訂項目,請使用 Azure Logic Apps
  • 新的警示規則精靈不支援自訂 JSON 承載。
    • 新 API 中使用自訂屬性,將靜態參數和相關聯的值新增至警示所觸發的 Webhook 動作。
    • 如需更進階的自訂,請使用 Azure Logic Apps
  • 新增警示規則精靈不支援電子郵件主旨的自訂。
    • 客戶通常會使用自訂電子郵件主旨來指出觸發警示的資源,而不是使用 Log Analytics 工作區。 使用全新 API,以使用資源識別碼資料行觸發所需資源的警示。
    • 如需更進階的自訂,請使用 Azure Logic Apps

在 Azure 入口網站中管理在舊版中建立的警示規則

  1. Azure 入口網站中,選取您要的資源。

  2. 在 [監視] 下方,選取 [警示]。

  3. 在頂端列上,選取 [警示規則]

  4. 選取您想要編輯的警示規則。

  5. 在 [條件] 區段中,選取條件。

  6. [設定訊號邏輯] 窗格隨即開啟,其中包含以圖表顯示的查詢歷史資料。 您可以變更圖表的時間範圍,以顯示過去六小時到過去一週的資料。 如果您的查詢結果所包含的摘要資料或特定資料行沒有時間資料行,則圖表會顯示單一值。

    顯示 [設定訊號邏輯] 窗格的螢幕快照。

  7. 使用下列區段來編輯警示規則條件:

    • 搜尋查詢:在這個區段中,您可以修改查詢。

    • 警示邏輯:記錄搜尋警示是以兩種類型的量值為基礎:

      1. 結果數目:查詢傳回的記錄計數。
      2. 計量測量彙總值是使用所選運算式和 bin() 選取範圍加以分組的 summarize 計算所得。 例如:
        // Reported errors
        union Event, Syslog // Event table stores Windows event records, Syslog stores Linux records
        | where EventLevelName == "Error" // EventLevelName is used in the Event (Windows) records
        or SeverityLevel== "err" // SeverityLevel is used in Syslog (Linux) records
        | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
        

      針對計量測量警示邏輯,您可以使用 [彙總依據] 選項,指定要如何依維度分割警示。 資料列群組運算式必須是唯一且已排序的。

      bin() 函式會導致時間間隔不平均,因此警示服務會自動以執行階段的適當時間將 bin() 函式轉換成 binat() 函式,以確保固定時間點有結果。

      注意

      [依警示維度進行分割] 選項僅適用於目前的 scheduledQueryRules API。 如果您使用舊版的 Log Analytics 警示 API,則必須進行切換。 深入了解切換。 只有 API 2021-08-01 版和更新版本才支援大規模以資源為中心的警示。

      顯示匯總的螢幕快照。

    • 期間:使用 [期間] 選項,來選擇用以評估指定條件的時間範圍。

  8. 當您完成條件編輯時,請選取 [完成]

  9. 使用預覽資料,設定運算子、閾值頻率

  10. 使用 [違規數總計] 或 [連續違規] 設定觸發警示的違規次數

  11. 選取完成

  12. 您可以編輯規則的 [描述] 和 [嚴重性]。 這些詳細資料會用於所有警示動作。 您也可以透過選取 [在建立時啟用規則] 選項,選擇不要在建立警示規則時將其啟動。

  13. 如果您想要在引發警示之後隱藏指定時間的規則動作,請使用 [隱藏警示] 選項。 此規則仍會執行並建立警示,但不會觸發動作,以防出現雜訊。 [靜音動作] 值必須大於警示頻率才能生效。

    顯示 [警示詳細數據] 窗格的螢幕快照。

  14. 若要設定警示狀態,請選取 [自動解決警示 (預覽)]

  15. 指定符合警示條件時,警示規則是否應該觸發一或多個動作群組。 如需可執行的動作限制,請參閱 Azure 監視器服務限制

  16. (選用) 自訂記錄搜尋警示規則中的動作:

    • 自訂電子郵件主旨:覆寫電子郵件動作的電子郵件主旨。 您無法修改電子郵件的本文,且此欄位的適用對象不是電子郵件地址
    • 包含 Webhook 的自訂 Json 承載:覆寫動作群組所使用的 Webhook JSON,以動作群組包含 Webhook 動作為假設前提。 深入了解適用於記錄搜尋警示的 Webhook 動作

    顯示記錄搜尋警示動作覆寫的螢幕快照。

  17. 完成所有警示規則選項的編輯後,請選取 [儲存]

使用 PowerShell 管理記錄搜尋警示

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱 安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

請使用下列 PowerShell Cmdlet,以使用排程的查詢規則 API 來管理規則:

注意

ScheduledQueryRules PowerShell Cmdlet 只能管理在此版本的排程查詢規則 API 中建立的規則。 只有在切換至排程查詢規則 API 之後,才能使用 PowerShell 管理使用舊版 Log Analytics 警示 API 所建立的記錄搜尋警示規則。

使用 PowerShell 建立記錄搜尋警示規則的範例步驟:

$source = New-AzScheduledQueryRuleSource -Query 'Heartbeat | summarize AggregatedValue = count() by bin(TimeGenerated, 5m), _ResourceId' -DataSourceId "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.OperationalInsights/workspaces/servicews"
$schedule = New-AzScheduledQueryRuleSchedule -FrequencyInMinutes 15 -TimeWindowInMinutes 30
$metricTrigger = New-AzScheduledQueryRuleLogMetricTrigger -ThresholdOperator "GreaterThan" -Threshold 2 -MetricTriggerType "Consecutive" -MetricColumn "_ResourceId"
$triggerCondition = New-AzScheduledQueryRuleTriggerCondition -ThresholdOperator "LessThan" -Threshold 5 -MetricTrigger $metricTrigger
$aznsActionGroup = New-AzScheduledQueryRuleAznsActionGroup -ActionGroup "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.insights/actiongroups/sampleAG" -EmailSubject "Custom email subject" -CustomWebhookPayload "{ `"alert`":`"#alertrulename`", `"IncludeSearchResults`":true }"
$alertingAction = New-AzScheduledQueryRuleAlertingAction -AznsAction $aznsActionGroup -Severity "3" -Trigger $triggerCondition
New-AzScheduledQueryRule -ResourceGroupName "contosoRG" -Location "Region Name for your Application Insights App or Log Analytics Workspace" -Action $alertingAction -Enabled $true -Description "Alert description" -Schedule $schedule -Source $source -Name "Alert Name"

使用 PowerShell 搭配跨資源查詢來建立記錄搜尋警示規則的範例步驟:

$authorized = @ ("/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.OperationalInsights/workspaces/servicewsCrossExample", "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.insights/components/serviceAppInsights")
$source = New-AzScheduledQueryRuleSource -Query 'Heartbeat | summarize AggregatedValue = count() by bin(TimeGenerated, 5m), _ResourceId' -DataSourceId "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.OperationalInsights/workspaces/servicews" -AuthorizedResource $authorized
$schedule = New-AzScheduledQueryRuleSchedule -FrequencyInMinutes 15 -TimeWindowInMinutes 30
$metricTrigger = New-AzScheduledQueryRuleLogMetricTrigger -ThresholdOperator "GreaterThan" -Threshold 2 -MetricTriggerType "Consecutive" -MetricColumn "_ResourceId"
$triggerCondition = New-AzScheduledQueryRuleTriggerCondition -ThresholdOperator "LessThan" -Threshold 5 -MetricTrigger $metricTrigger
$aznsActionGroup = New-AzScheduledQueryRuleAznsActionGroup -ActionGroup "/subscriptions/a123d7efg-123c-1234-5678-a12bc3defgh4/resourceGroups/contosoRG/providers/microsoft.insights/actiongroups/sampleAG" -EmailSubject "Custom email subject" -CustomWebhookPayload "{ `"alert`":`"#alertrulename`", `"IncludeSearchResults`":true }"
$alertingAction = New-AzScheduledQueryRuleAlertingAction -AznsAction $aznsActionGroup -Severity "3" -Trigger $triggerCondition
New-AzScheduledQueryRule -ResourceGroupName "contosoRG" -Location "Region Name for your Application Insights App or Log Analytics Workspace" -Action $alertingAction -Enabled $true -Description "Alert description" -Schedule $schedule -Source $source -Name "Alert Name" 

您也可以使用 PowerShell,透過範本和參數檔案來建立記錄搜尋警示:

Connect-AzAccount
Select-AzSubscription -SubscriptionName <yourSubscriptionName>
New-AzResourceGroupDeployment -Name AlertDeployment -ResourceGroupName ResourceGroupofTargetResource `
  -TemplateFile mylogalerttemplate.json -TemplateParameterFile mylogalerttemplate.parameters.json

下一步