以前のバージョンで作成されたアラート ルールを管理する
この記事では、以前の 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() 関数に自動変換して、確実に固定ポイントでの結果を得られるようにします。
Note
[Split by alert dimensions] (警告ディメンションで分割) オプションは、現在の scheduledQueryRules API でのみ使用できます。 レガシ Log Analytics Alert API を使用する場合は、切り替える必要があります。 切り替えの詳細について参照してください。 大規模なリソース中心の警告は、API バージョン
2021-08-01
以降でのみサポートされています。[期間]: [期間] オプションを使用して、指定された条件を評価する時間の範囲を選択します。
条件の編集が終了したら、[完了] を選択します。
プレビュー データを使用して、[演算子]、[しきい値]、[頻度] を設定します。
[合計] または [連続する違反] を使用して、警告をトリガーする違反の数を設定します。
[完了] を選択します。
ルールの [説明] と [重要度] を編集できます。 これらの詳細は、すべてのアラート アクションで使用されます。 また、[作成時にルールを有効にする] を選択して、作成時に警告ルールをアクティブにしないようにすることもできます。
警告が発生した後、指定した時間だけルールの動作を抑制したい場合は、[警告の抑制] オプションを使用します。 ルールは引き続き実行され、警告は作成されますが、ノイズを防ぐためにアクションはトリガーされません。 [Mute actions] (アクションのミュート) の値は、警告の頻度よりも大きくなければ有効になりません。
アラートをステートフルにするには、[Automatically resolve alerts (preview)] (アラートを自動的に解決する (プレビュー)) を選択します。
警告の条件が満たされた場合に、警告ルールによって 1 つ以上のアクション グループをトリガーするかどうかを指定します。 実行できるアクションの制限については、「Azure Monitor サービスの制限」をご覧ください。
(省略可能) ログ検索アラート ルールのアクションをカスタマイズします。
- [カスタム メールの件名]: メール アクションの "メールの件名" をオーバーライドします。 メールの本文は変更できず、このフィールドは電子メール アドレス用ではありません。
- [webhook 用のカスタム Json ペイロードを含む]: アクション グループに Webhook アクションが含まれていることを前提として、アクション グループが使用する Webhook JSON をオーバーライドします。 ログ検索アラートに対する Webhook アクションに関する詳細を確認してください。
すべての警告ルール オプションの編集が終了したら、[保存] を選択します。
PowerShell を使用したログ検索アラートの管理
注意
Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。
Scheduled Query Rules API でルールを管理するには、以下の 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 コマンドレット。
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
次のステップ
- ログ検索アラートについて説明します。
- Azure Resource Manager テンプレートを使用してログ検索アラートを作成します。
- ログ検索アラートの Webhook アクションを理解します。
- ログ クエリについてさらに学習します