在Azure PowerShell中使用自定义属性创建Azure警报

0ejtzxu1  于 2023-08-07  发布在  Shell
关注(0)|答案(1)|浏览(114)

所以,我需要在我们所有的存储帐户上创建类似100个警报的东西。由于这将是非常重复的,我试图脚本。
我有一个循环,可以获取所有相关的存储帐户。然而,我对创建警报有一些问题。
我可以让Azure Powershell来创建警报,但我需要在操作中传递自定义属性,因为它转到逻辑应用程序。属性用于决定如何处理警报。
到目前为止我有:

$actionGroupId = New-AzActivityLogAlertActionGroupObject -Id $actionGroup.Id

$availabilityCriteria = New-AzMetricAlertRuleV2Criteria `
                        -MetricName "Availability" `
                        -TimeAggregation Average `
                        -Operator LessThan `
                        -Threshold 100                       

Select-AzSubscription -SubscriptionId "********-****-****-****-***********"
$storage = Get-AzStorageAccount -ResourceGroupName "****-testing" -Name "storageaccount"

Add-AzMetricAlertRuleV2 -Name "$($storage.StorageAccountName) availability alert" `
                        -ResourceGroupName ****-testing `
                        -WindowSize 00:05:00 `
                        -Frequency 00:05:00 `
                        -Description "This is a test" `
                        -Condition $availabilityCriteria `
                        -ActionGroupId $actionGroupId.Id `
                        -Severity 2 `
                        -TargetResourceId $storage.Id

字符串
我需要一个自定义属性,即在通过Azure门户创建警报时出现在“操作”选项卡上的属性。
x1c 0d1x的数据
我假设这与行动组有关,因为在选择行动组之前,你不能设置这个。但是,我在文档中找不到任何提到New-AzActivityLogAlertActionGroupObject、New-AzMetricAlertRuleV 2Criteria或Add-AzMetricAlertRuleV 2的自定义属性的内容。
我错过了什么?干杯
更新:我现在尝试了几个迭代:

$actionGroup = Get-AzActionGroup
$newActionGroup = New-AzActivityLogAlertActionGroupObject -Id $actionGroup.Id -WebhookProperty = @{ "propertyName"="propertyValue"}

Add-AzMetricAlertRuleV2 -Name "$($storage.StorageAccountName) availability alert" `
                        -ResourceGroupName ****-testing `
                        -WindowSize 00:05:00 `
                        -Frequency 00:05:00 `
                        -Description "This is a test" `
                        -Condition $availabilityCriteria `
                        -Actions $newActionGroup `
                        -Severity 2 `
                        -TargetResourceId $storage.Id


但我总是收到这样的错误

进一步编辑:现有操作组和存储帐户位于不同的订阅中。
下面是完整的代码,包括获取ActionGroup和Storage Account:

Select-AzSubscription -SubscriptionId "<ActionGroupSubscriptionId>"
$existingActionGroup = Get-AzActionGroup 

$newActionGroup = New-AzActivityLogAlertActionGroupObject -Id $existingActionGroup.Id -WebhookProperty @{"sampleWebhook"="Value"} | convertFrom-json 

$availabilityCriteria = New-AzMetricAlertRuleV2Criteria `
                        -MetricName "Availability" `
                        -MetricNamespace "Microsoft.Storage/storageAccounts" `
                        -TimeAggregation Average `
                        -Operator LessThan `
                        -Threshold 100                    

Select-AzSubscription -SubscriptionId "<StorageAccountSubscriptionId>"
$storage = Get-AzStorageAccount -ResourceGroupName "<StorageAccountResourceGroup>" -Name "<StorageAccount>"


Add-AzMetricAlertRuleV2 -Name "$($storage.StorageAccountName) availability alert" `
                        -ResourceGroupName <StorageAccountResourceGroup> `
                        -WindowSize 00:05:00 `
                        -Frequency 00:05:00 `
                        -Description "This is a test" `
                        -Condition $availabilityCriteria `
                        -Actions $newActionGroup `
                        -Severity 2 `
                        -TargetResourceId $storage.Id

irlmq6kh

irlmq6kh1#

我在我的环境中尝试时也收到了同样的错误。


的数据
错误是由于json类型转换导致的,因为Add-AzMetricAlertRuleV2中参数"-ActionGroup"的类型是"Microsoft.Azure.Management.Monitor.Models.ActivityLogAlertActionGroup []。有关更多相关信息,请参阅此github问题。

  • 我修改了脚本如下:*
$storage = Get-AzStorageAccount -ResourceGroupName <resourcegroup> -Name "<storageaccount>"
$actiongroup=New-AzActivityLogAlertActionGroupObject -Id $ActionGroupResourceId -WebhookProperty @{"sampleWebhook"="Value"} | convertFrom-json 
$availabilityCriteria=New-AzMetricAlertRuleV2Criteria -DynamicThreshold -MetricName "availability" -MetricNamespace "Microsoft.Storage/storageAccounts" -TimeAggregation Average -Operator GreaterThan -ThresholdSensitivity Medium
Add-AzMetricAlertRuleV2 -Name "$($storage.StorageAccountName) availability alert" -ResourceGroupName <resourcegroup> `                                         
                    -WindowSize 00:05:00 `
                    -Frequency 00:05:00 `
                    -Description "This is a test" `
                    -Condition $availabilityCriteria `
                    -Actions $actiongroup `
                    -Severity 2 `
                    -TargetResourceId $storage.Id

字符串

  • 输出:*


相关问题