以前のバージョンで作成されたアラート ルールを管理する

この記事では、以前の UI で、または API バージョン 2018-04-16 以前を使用して作成された警告ルールを管理するプロセスについて説明します。 最新の UI で作成されたアラート ルールは、Azure Monitor を使用したログ検索アラートの作成、表示、および管理に関する記事で説明されているように、新しい UI で表示および管理されます。

ログ検索アラート ルールの作成エクスペリエンスの変更

現在のアラート ルール ウィザードは、以前のエクスペリエンスとは異なります。

  • 以前は、トリガーされたアラートのペイロードと、関連する通知に検索結果が含まれていました。 Webhook ペイロードには 1,000 件のフィルター処理されていない結果が含まれていたのに対し、電子メールにはフィルター処理されていない結果から 10 行しか含まれていませんでした。 適切なアクションを決定できるように、アラートに関する詳細なコンテキスト情報を取得するには、次のようにします。
    • ディメンションを使用することをお勧めします。 ディメンションによって、アラートを発生した列の値が提供され、アラートの発生理由とその問題の解決方法のコンテキストが得られます。
    • ログを調査する必要があるときは、アラートにある、ログ内の検索結果へのリンクを使用します。
    • 生の検索結果、または他の高度なカスタマイズが必要な場合は、Azure Logic Apps を使用してください
  • 新しいアラート ルール ウィザードでは、JSON ペイロードのカスタマイズはサポートされていません。
    • 新しい API でカスタム プロパティを使用して、アラートによってトリガーされる Webhook アクションに、静的パラメーターとそれに関連する値を追加します。
    • より高度なカスタマイズを行う場合は、Azure Logic Apps を使用します
  • 新しいアラート ルール ウィザードでは、メールの件名のカスタマイズはサポートされていません。
    • 多くの場合、ユーザーは、Log Analytics ワークスペースを使用する代わりに、カスタムのメールの件名を使用して、アラートが発生したリソースを指定します。 新しい API を使用し、リソース ID 列を使用して、目的のリソースのアラートをトリガーします。
    • より高度なカスタマイズを行う場合は、Azure Logic Apps を使用します

以前のバージョンで作成されたアラート ルールを Azure portal で管理する

  1. Azure portal で、目的のリソースを選択します。

  2. [監視][アラート] を選択します。

  3. 上部のバーで、[警告ルール] を選択します。

  4. 編集する警告ルールを選択します。

  5. [条件] セクションで、条件を選択します。

  6. [シグナル ロジックの構成] ウィンドウが開き、クエリの履歴データがグラフとして表示されます。 グラフの [時間範囲] を変更して、過去 6 時間から先週までのデータを表示できます。 クエリ結果に要約されたデータ、または時間列のない固有の列が含まれている場合、グラフには単一の値が表示されます。

    Screenshot that shows the Configure signal logic pane.

  7. 以下のセクションを使用して、警告ルールの条件を編集します。

    • [検索クエリ]: このセクションでは、クエリを変更できます。

    • アラート ロジック: ログ検索アラートは次の 2 種類の測定値に基づくことがあります。

      1. [Number of results] (結果の数): クエリによって返されたレコードの数。
      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() 関数に自動変換して、確実に固定ポイントでの結果を得られるようにします。

      Note

      [Split by alert dimensions] (警告ディメンションで分割) オプションは、現在の scheduledQueryRules API でのみ使用できます。 レガシ Log Analytics Alert API を使用する場合は、切り替える必要があります。 切り替えの詳細について参照してください。 大規模なリソース中心の警告は、API バージョン 2021-08-01 以降でのみサポートされています。

      Screenshot that shows Aggregate on.

    • [期間]: [期間] オプションを使用して、指定された条件を評価する時間の範囲を選択します。

  8. 条件の編集が終了したら、[完了] を選択します。

  9. プレビュー データを使用して、[演算子]、[しきい値][頻度] を設定します。

  10. [合計] または [連続する違反] を使用して、警告をトリガーする違反の数を設定します。

  11. [完了] を選択します。

  12. ルールの [説明][重要度] を編集できます。 これらの詳細は、すべてのアラート アクションで使用されます。 また、[作成時にルールを有効にする] を選択して、作成時に警告ルールをアクティブにしないようにすることもできます。

  13. 警告が発生した後、指定した時間だけルールの動作を抑制したい場合は、[警告の抑制] オプションを使用します。 ルールは引き続き実行され、警告は作成されますが、ノイズを防ぐためにアクションはトリガーされません。 [Mute actions] (アクションのミュート) の値は、警告の頻度よりも大きくなければ有効になりません。

    Screenshot that shows the Alert Details pane.

  14. アラートをステートフルにするには、[Automatically resolve alerts (preview)] (アラートを自動的に解決する (プレビュー)) を選択します。

  15. 警告の条件が満たされた場合に、警告ルールによって 1 つ以上のアクション グループをトリガーするかどうかを指定します。 実行できるアクションの制限については、「Azure Monitor サービスの制限」をご覧ください。

  16. (省略可能) ログ検索アラート ルールのアクションをカスタマイズします。

    • [カスタム メールの件名]: メール アクションの "メールの件名" をオーバーライドします。 メールの本文は変更できず、このフィールドは電子メール アドレス用ではありません
    • [webhook 用のカスタム Json ペイロードを含む]: アクション グループに Webhook アクションが含まれていることを前提として、アクション グループが使用する Webhook JSON をオーバーライドします。 ログ検索アラートに対する Webhook アクションに関する詳細を確認してください。

    Screenshot that shows Action overrides for log search alerts.

  17. すべての警告ルール オプションの編集が終了したら、[保存] を選択します。

PowerShell を使用したログ検索アラートの管理

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

Scheduled Query Rules API でルールを管理するには、以下の PowerShell コマンドレットを使用します。

Note

ScheduledQueryRules PowerShell コマンドレットでは、このバージョンの Scheduled Query Rules API で作成されたルールのみを管理できます。 従来の Log Analytics Alert API を使用して作成されたログ検索アラート ルールは、Scheduled Query Rules API に切り替えた後、PowerShell を使用してのみ管理できます。

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

次のステップ