概要
アラートルール(アクティビティログ)とアクショングループ(Webhook)を作成した際の備忘録です。
全体
#パラメータ
$location = 'japaneast'
$resourceGroupName = 'sampleRG'
$actionGroupName = 'sampleActionGroup'
$webhookName = 'webhookSample'
$webhookUri = 'sampleUri'
$AlertName = 'sampleAlert'
# WebhookReceiverObject(実行したいWebhook)を作成する
$AzActionGroupWebhookReceiverObject = New-AzActionGroupWebhookReceiverObject -Name $webhookName -ServiceUri $webhookUri
# アクショングループを作成する
New-AzActionGroup -Name $actionGroupName -ResourceGroupName $resourceGroupName -Enabled -GroupShortName supportReq -WebhookReceiver @($webhookReceiverObject) -Location global
# 作成したアクショングループのリソースIDを取得する
$ActionGroupResource = Get-AzActionGroup -Name $actionGroupName -ResourceGroupName $resourceGroupName
$ActionGroupResourceId = $ActionGroupResource.Id
# 作成したアクショングループをアラートルール用のオブジェクトとして取得する
$actiongroup = New-AzActivityLogAlertActionGroupObject -Id $ActionGroupResourceId -WebhookProperty @{"subscription"=(Get-AzContext).$subscriptionId}
#アラートの条件を作成する
$condition1 = New-AzActivityLogAlertAlertRuleAnyOfOrLeafConditionObject -Equal Administrative -Field category
$condition2 = New-AzActivityLogAlertAlertRuleAnyOfOrLeafConditionObject -Equal Microsoft.Support/supportTickets/write -Field operationName
#アラートルールを作成する
New-AzActivityLogAlert -Name $AlertName -ResourceGroupName $ResourceGroupName -Enabled 1 -Action $actiongroup -Condition @($condition1, $condition2) -Location global -Scope $scope
要素の解説
実行するWebhook
New-AzActionGroupWebhookReceiverObject
-Name "webhookName"
-ServiceUri "webhookUri"
Webhookオブジェクトを作成します。
アクショングループ(Webhook)
New-AzActionGroup
-Name "actionGroupName"
-ResourceGroupName "resourceGroupName"
[-Enabled]
[-GroupShortName "sampleName"]
[-WebhookReceiver @("webhookReceiverObject1", "webhookReceiverObject2")]
-Location "sampleLocation"
Webhookを実行するアクショングループを作成します。
-Enabled
オプションは任意ですが、アラートルール同様に、指定しない場合は無効化状態で作成されます。
注意点として、-Enabled 1
や-Enabled true
とすると、エラーになります。-Enabled
のみでOKです。
-GroupShortName
オプションは、公式ドキュメントだと任意のような記載ですが、オプションを削除して実行するとエラーになります。
-WebhookReceiver
オプションの部分は、実行するアクションに応じて、-SmsReceiver
オプションや-VoiceReceiver
に変更します。
アラート条件
New-AzActivityLogAlertAlertRuleAnyOfOrLeafConditionObject
[-Field "field"]
[-Equal "value"]
アラートを発報する条件を作成します。
-Feild
オプションで、条件の種類を指定し、-Equal
で値を指定します。
例えば、VMの作成/更新を行った場合のアクティビティログ(Create/update virtualmachines resources (virtualmachines))を条件とした場合は、下記のようにします。
-Field "operationName"
-Equal microsoft.vmware/virtualmachines/Write
(オブジェクト名がとても長い、、、)
アクティビティログアラート
New-AzActivityLogAlert
-Name "alertRuleName"
-ResourceGroupName "RGName"
[-Enabled 1]
-Action @("actionGroupObject1", "actionGroupObject2")
-Condition @("conditionObject1", "conditionObject2")
-Location "sampleLocation"
-Scope "sampleScope"
最後にアクティビティログアラートを作成します。
-Enabled
オプションは任意ですが、指定しない場合は無効化状態で作成されます。
こちらは逆に、-Enabled
のみで実行すると、エラーになります。
-Action
オプションで前に作成したアクショングループ、-Condition
オプションでアラート条件を指定します。
-Enabled
オプションの注意点
-
New-AzActionGroup(アクショングループ)の
-Enabled
オプションは値なし -
New-AzActivityLogAlert(アラートルール)の
-Enabled
オプションは1または0を指定
参考