次の方法で共有


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

この記事では、以前の 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. シグナル ロジックを構成する:

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

    2. [シグナル ロジックの構成] ウィンドウが開き、クエリの履歴データがグラフとして表示されます。 グラフの [時間範囲] を変更して、過去 6 時間から先週までのデータを表示できます。

      クエリ結果に要約されたデータ、または時間列のない固有の列が含まれている場合、グラフには単一の値が表示されます。

      [シグナル ロジックの構成] ウィンドウを示すスクリーンショット。

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

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

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

        • [Number of results] (結果の数): クエリによって返されたレコードの数。

        • [メトリック測定]: 選択された式と、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() 関数に自動変換して、確実に固定ポイントでの結果を得られるようにします。

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

        集約がオンであることを示すスクリーンショット。

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

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

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

    6. メトリック測定を使用する場合は、[合計] または [連続する違反] を使用してトリガー アラートを設定し、アラートをトリガーする条件違反の数を決定します。

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

  7. (省略可能) アクションをカスタマイズする:

    • [カスタム メールの件名]: メール アクションの "メールの件名" をオーバーライドします。 メールの本文は変更できず、このフィールドは電子メール アドレス用ではありません

    • [webhook 用のカスタム Json ペイロードを含む]: アクション グループに Webhook アクションが含まれていることを前提として、アクション グループが使用する Webhook JSON をオーバーライドします。 ログ検索アラートに対する Webhook アクションに関する詳細を確認してください。

  8. アラート ルールの詳細を設定します

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

    2. アラートが発生した後、指定した時間のルール アクションを抑制する場合は、[ ミュート アクション ] オプションを使用します。 ルールは引き続き実行され、警告は作成されますが、ノイズを防ぐためにアクションはトリガーされません。 有効にするには、値 に対するミュート アクション がアラートの頻度を超える必要があります。

      [アラートの抑制] オプションを示すスクリーンショット。

    3. アラートをステートフルにするには、[アラートを 自動的に解決する] を選択します。

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

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

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

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

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

PowerShell コマンドレット 説明
New-AzScheduledQueryRule 新しいログ検索アラート ルールを作成する PowerShell コマンドレット。
Set-AzScheduledQueryRule 既存のログ検索アラート ルールを更新する PowerShell コマンドレット。
New-AzScheduledQueryRuleSource ログ検索アラートのソース パラメーターを指定するオブジェクトを作成または更新する PowerShell コマンドレット。 New-AzScheduledQueryRule および Set-AzScheduledQueryRule コマンドレットによって入力として使用されます。
New-AzScheduledQueryRuleSchedule ログ検索アラートのスケジュール パラメーターを指定するオブジェクトを作成または更新する PowerShell コマンドレット。 New-AzScheduledQueryRule および Set-AzScheduledQueryRule コマンドレットによって入力として使用されます。
New-AzScheduledQueryRuleAlertingAction ログ検索アラートのアクション パラメーターを指定するオブジェクトを作成または更新する PowerShell コマンドレット。 New-AzScheduledQueryRule および Set-AzScheduledQueryRule コマンドレットによって入力として使用されます。
New-AzScheduledQueryRuleAznsActionGroup ログ検索アラートのアクション グループ パラメーターを指定するオブジェクトを作成または更新する PowerShell コマンドレット。 New-AzScheduledQueryRuleAlertingAction コマンドレットによって入力として使用されます。
New-AzScheduledQueryRuleTriggerCondition ログ検索アラートのトリガー条件パラメーターを指定するオブジェクトを作成または更新する PowerShell コマンドレット。 New-AzScheduledQueryRuleAlertingAction コマンドレットによって入力として使用されます。
New-AzScheduledQueryRuleLogMetricTrigger メトリック測定ログ検索アラートのメトリック トリガー条件パラメーターを指定するオブジェクトを作成または更新する PowerShell コマンドレット。 New-AzScheduledQueryRuleTriggerCondition コマンドレットによって入力として使用されます。
Get-AzScheduledQueryRule 既存のログ検索アラート ルールまたは特定のログ検索アラート ルールを一覧表示する PowerShell コマンドレット。
Update-AzScheduledQueryRule ログ検索アラート ルールを有効または無効にする PowerShell コマンドレット。
Remove-AzScheduledQueryRule 既存のログ検索アラート ルールを削除する PowerShell コマンドレット。

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

次のステップ