首页 > 解决方案 > 从 Azure PowerShell 为 Azure 中的 SQL Server 数据库设置警报

问题描述

我正在尝试为 SQL Server 创建一个警报,以便每当 CPU 百分比变高时,它应该发送一封电子邮件,而我的这段代码很遗憾无法正常工作。

$ResourceGroup = 'pp-rg-cloud-dev1-aks'
$server = 'abcd'
$db = 'efgh'
$location = 'eastus'
$rid = (Get-AzResource -ResourceGroupName $ResourceGroup -ResourceName "$server/$db").ResourceID
$email = New-AzAlertRuleEmail -CustomEmail 'user@user.com' -SendToServiceOwner

Add-AzMetricAlertRule -Name 'CPU percentage' `
-Location $location `
-ResourceGroup $ResourceGroup `
-TargetResourceId $rid `
-MetricName 'dtu_consumption_percent' `
-Operator GreaterThanOrEqual `
-Threshold 90 `
-WindowSize '00:05:00' `
-TimeAggregationOperator Maximum `
-Action $email

但我收到此错误:

Add-AzMetricAlertRule:异常类型:ErrorResponseException,消息:不再支持基于此指标创建或编辑经典警报规则。要了解新的警报规则,请参阅https://aka.ms/create-metric-alerts,代码:BadRequest,状态代码:BadRequest,原因短语:Bad Request

在行:1 字符:1

  • Add-AzMetricAlertRule -Name 'CPU 百分比'
  • CategoryInfo : CloseError: (:) [Add-AzMetricAlertRule], PSInvalidOperationException
  • FullyQualifiedErrorId : Microsoft.Azure.Commands.Insights.Alerts.AddAzureRmMetricAlertRuleCommand

无论我尝试什么,它总是说该指标不再存在。有什么办法可以找到警报名称吗?

标签: powershellazure-sql-databaseazure-powershell

解决方案


尝试以下脚本:

$ResourceGroup = 'IntroAzureSql'
$location = 'West US'
$server = 'msf-sqldb'
$db = 'MSFADMIN'
$rid = (Get-AzureRmResource -ResourceGroupName $ResourceGroup -ResourceName "$server/$db").ResourceID
$email = New-AzureRmAlertRuleEmail -CustomEmails 'mfal@dummy.com' -SendToServiceOwners
Add-AzureRmMetricAlertRule -Name 'DTU90Check' <code>
-Location $location </code>
-ResourceGroup $ResourceGroup <code>
-TargetResourceId $rid </code>
-MetricName 'dtu_consumption_percent' <code>
-Operator GreaterThanOrEqual </code>
-Threshold 90 <code>
-WindowSize '00:05:00' </code>
-TimeAggregationOperator Maximum `
-Actions $email

推荐阅读