この記事では、以前の 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 で管理する
Azure portal で、目的のリソースを選択します。
[監視] で [アラート] を選択します。
上部のアクション バーで、[ アラート ルール] を選択します。
編集する警告ルールを選択します。
上部のアクション バーで、[ 編集] を選択します。
シグナル ロジックを構成する:
[条件] セクションで、条件を選択します。
[シグナル ロジックの構成] ウィンドウが開き、クエリの履歴データがグラフとして表示されます。 グラフの [時間範囲] を変更して、過去 6 時間から先週までのデータを表示できます。
クエリ結果に要約されたデータ、または時間列のない固有の列が含まれている場合、グラフには単一の値が表示されます。
以下のセクションを使用して、警告ルールの条件を編集します。
[検索クエリ]: このセクションでは、クエリを変更できます。
アラート ロジック: ログ検索アラートは次の 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以降でのみサポートされています。[ 期間 ] オプションを使用して、指定した条件を評価する時間範囲を選択します。
条件の編集が終了したら、[完了] を選択します。
プレビュー データを使用して、 演算子、 しきい値、頻度を設定 します。
メトリック測定を使用する場合は、[合計] または [連続する違反] を使用してトリガー アラートを設定し、アラートをトリガーする条件違反の数を決定します。
[完了] を選択します。
(省略可能) アクションをカスタマイズする:
[カスタム メールの件名]: メール アクションの "メールの件名" をオーバーライドします。 メールの本文は変更できず、このフィールドは電子メール アドレス用ではありません。
[webhook 用のカスタム Json ペイロードを含む]: アクション グループに Webhook アクションが含まれていることを前提として、アクション グループが使用する Webhook JSON をオーバーライドします。 ログ検索アラートに対する Webhook アクションに関する詳細を確認してください。
アラート ルールの詳細を設定します。
ルールの [説明] と [重要度] を編集できます。 これらの詳細は、すべてのアラート アクションで使用されます。 また、[作成時にルールを有効にする] を選択して、作成時に警告ルールをアクティブにしないようにすることもできます。
アラートが発生した後、指定した時間のルール アクションを抑制する場合は、[ ミュート アクション ] オプションを使用します。 ルールは引き続き実行され、警告は作成されますが、ノイズを防ぐためにアクションはトリガーされません。 有効にするには、値 に対するミュート アクション がアラートの頻度を超える必要があります。
アラートをステートフルにするには、[アラートを 自動的に解決する] を選択します。
警告の条件が満たされた場合に、警告ルールによって 1 つ以上のアクション グループをトリガーするかどうかを指定します。 実行できるアクションの制限については、「Azure Monitor サービスの制限」をご覧ください。
すべての警告ルール オプションの編集が終了したら、[保存] を選択します。
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
次のステップ
- ログ検索アラートについて説明します。
- Azure Resource Manager テンプレートを使用してログ検索アラートを作成します。
- ログ検索アラートの Webhook アクションを理解します。
- ログ クエリについてさらに学習します