如何在同一天为所有Web应用程序创建新警报

时间:2019-05-13 15:52:23

标签: azure-template

我想为给定订阅中的所有AppServicePlan创建新警报(高CPU,RAM)。我找不到Powershell命令来创建新警报。我们是否可以通过一个脚本为所有appserviceplans创建这些警报?可能正在使用ARM模板吗?

2 个答案:

答案 0 :(得分:0)

很抱歉,您无法粘贴直接答案,但我目前无法发表评论。您收到错误,因为在{-{3}}中,Add-AzMetricAlertruleV2指出:“ $ act是New-AzActionGroup cmdlet的输出”。意味着您需要使用例如:

$act = New-AzActionGroup -ActionGroupId "testActionGroup"

此后,您需要将其添加到参数-ActionGroup $act中以使其起作用。

答案 1 :(得分:0)

如果您查看Resource Explorer并导航到手动创建(近实时)警报,则应该看到定义如下的“ critera”对象。这是似乎有效的资源的完整示例。为每个值创建一些变量:

{
  "type": "Microsoft.Insights/metricAlerts",
  "apiVersion": "2018-03-01",
  "name": "[variables('alertName')]",
  "location": "global",
  "dependsOn": [],
  "tags": {
    "[concat('hidden-link:', variables('applicationInsightsResourceId'))]": "Resource",
    "[concat('hidden-link:', variables('webtestResourceId'))]": "Resource"
  },
  "properties": {
    "description": "[concat('Alert for ', parameters('availibilityTestName'))]",
    "severity": 4,
    "enabled": true,
    "scopes": [
      "[variables('webtestResourceId')]",
      "[variables('applicationInsightsResourceId')]"
    ],
    "evaluationFrequency": "PT5M",
    "windowSize": "PT15M",
    "criteria": {
      "odata.type": "Microsoft.Azure.Monitor.WebtestLocationAvailabilityCriteria",
      "webTestId": "[variables('webtestResourceId')]",
      "componentId": "[variables('applicationInsightsResourceId')]",
      "failedLocationCount": 3
    },
    "actions": [
      {
        "actionGroupId": "[resourceId('microsoft.insights/actiongroups', 'webhook')]",
        "webHookProperties": {
           // Some properties to send to webhook
        }
      }
    ]
  }
}