8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

セゾンテクノロジーAdvent Calendar 2024

Day 14

【Azure】アラートルールとアクショングループを作成する(Azure PowerShell)

Posted at

概要

アラートルール(アクティビティログ)とアクショングループ(Webhook)を作成した際の備忘録です。

全体

sample.ps1
#パラメータ
$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

AzActionGroupWebhookReceiverObject.ps1
New-AzActionGroupWebhookReceiverObject
    -Name "webhookName"
    -ServiceUri "webhookUri"

Webhookオブジェクトを作成します。

アクショングループ(Webhook)

AzActionGroup.ps1
New-AzActionGroup
    -Name "actionGroupName"
    -ResourceGroupName "resourceGroupName"
    [-Enabled] 
    [-GroupShortName "sampleName"]
    [-WebhookReceiver @("webhookReceiverObject1", "webhookReceiverObject2")]
    -Location "sampleLocation"

Webhookを実行するアクショングループを作成します。
-Enabledオプションは任意ですが、アラートルール同様に、指定しない場合は無効化状態で作成されます。

注意点として、-Enabled 1-Enabled trueとすると、エラーになります。-EnabledのみでOKです。
image.png

-GroupShortNameオプションは、公式ドキュメントだと任意のような記載ですが、オプションを削除して実行するとエラーになります。
image.png

-WebhookReceiverオプションの部分は、実行するアクションに応じて、-SmsReceiverオプションや-VoiceReceiverに変更します。

アラート条件

AzActivityLogAlertAlertRuleAnyOfOrLeafConditionObject.ps1
New-AzActivityLogAlertAlertRuleAnyOfOrLeafConditionObject
    [-Field "field"]
    [-Equal "value"]

アラートを発報する条件を作成します。
-Feildオプションで、条件の種類を指定し、-Equalで値を指定します。
例えば、VMの作成/更新を行った場合のアクティビティログ(Create/update virtualmachines resources (virtualmachines))を条件とした場合は、下記のようにします。
-Field "operationName"
-Equal microsoft.vmware/virtualmachines/Write

(オブジェクト名がとても長い、、、)

アクティビティログアラート

AzActivityLogAlert.ps1
New-AzActivityLogAlert
    -Name "alertRuleName"
    -ResourceGroupName "RGName"
    [-Enabled 1]
    -Action @("actionGroupObject1", "actionGroupObject2")
    -Condition @("conditionObject1", "conditionObject2")
    -Location "sampleLocation"
    -Scope "sampleScope"

最後にアクティビティログアラートを作成します。
-Enabledオプションは任意ですが、指定しない場合は無効化状態で作成されます。
こちらは逆に、-Enabledのみで実行すると、エラーになります。
image.png

-Actionオプションで前に作成したアクショングループ、-Conditionオプションでアラート条件を指定します。

-Enabledオプションの注意点

  • New-AzActionGroup(アクショングループ)の-Enabledオプションは値なし
  • New-AzActivityLogAlert(アラートルール)の-Enabledオプションは1または0を指定

参考

8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?