Поделиться через


Краткое руководство. Создание оповещений Помощника о новых рекомендациях с помощью шаблона ARM

В этой статье показано, как настроить оповещение о новых рекомендациях от Помощника по Azure с помощью шаблона Azure Resource Manager (шаблон ARM).

Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.

Каждый раз, когда Помощник обнаруживает новую рекомендацию для одного из ресурсов, событие хранится в журнале действий Azure. Вы можете настроить оповещения для этих событий от Помощника с помощью интерфейса создания оповещений, относящихся к рекомендациям. Вы можете выбрать подписку и при необходимости группу ресурсов, чтобы определить ресурсы, по которым требуется получать оповещения.

Вы также можете определить типы рекомендаций с помощью следующих свойств.

  • Категория
  • Уровень влияния
  • Тип рекомендации

Вы также можете настроить действие, которое происходит при активации оповещения:

  • Выбор существующей группы действий.
  • Создание новой группы действий.

Дополнительные сведения о группах действий см. в разделе Создание групп действий и управление ими на портале Azure.

Примечание.

Сейчас оповещения Помощника доступны только для рекомендаций, связанных с высоким уровнем доступности, производительностью и расходами. Рекомендации по безопасности не поддерживаются.

Необходимые компоненты

Изучение шаблона

Ниже приведен шаблон, который создает группу действий с целевым объектом электронной почты и активирует все уведомления о работоспособности службы в целевой подписке. Сохраните этот шаблон как файл CreateAdvisorAlert.json.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "actionGroups_name": {
      "defaultValue": "advisorAlert",
      "type": "string"
    },
    "activityLogAlerts_name": {
      "defaultValue": "AdvisorAlertsTest",
      "type": "string"
    },
    "emailAddress": {
      "defaultValue": "<email address>",
      "type": "string"
    }
  },
  "variables": {
    "alertScope": "[concat('/','subscriptions','/',subscription().subscriptionId)]"
  },
  "resources": [
    {
      "comments": "Action Group",
      "type": "microsoft.insights/actionGroups",
      "apiVersion": "2019-06-01",
      "name": "[parameters('actionGroups_name')]",
      "location": "Global",
      "scale": null,
      "dependsOn": [],
      "tags": {},
      "properties": {
        "groupShortName": "[parameters('actionGroups_name')]",
        "enabled": true,
        "emailReceivers": [
          {
            "name": "[parameters('actionGroups_name')]",
            "emailAddress": "[parameters('emailAddress')]"
          }
        ],
        "smsReceivers": [],
        "webhookReceivers": []
      }
    },
    {
      "comments": "Azure Advisor Activity Log Alert",
      "type": "microsoft.insights/activityLogAlerts",
      "apiVersion": "2017-04-01",
      "name": "[parameters('activityLogAlerts_name')]",
      "location": "Global",
      "scale": null,
      "tags": {},
      "properties": {
        "scopes": [
          "[variables('alertScope')]"
        ],
        "condition": {
          "allOf": [
            {
              "field": "category",
              "equals": "Recommendation"
            },
            {
              "field": "properties.recommendationCategory",
              "equals": "Cost"
            },
            {
              "field": "properties.recommendationImpact",
              "equals": "Medium"
            },
            {
              "field": "operationName",
              "equals": "Microsoft.Advisor/recommendations/available/action"
            }
          ]
        },
        "actions": {
          "actionGroups": [
            {
              "actionGroupId": "[resourceId('microsoft.insights/actionGroups', parameters('actionGroups_name'))]",
              "webhookProperties": {}
            }
          ]
        },
        "enabled": true,
        "description": ""
      },
      "dependsOn": [
        "[resourceId('microsoft.insights/actionGroups', parameters('actionGroups_name'))]"
      ]
    }
  ]
}

Шаблон определяет два ресурса:

Развертывание шаблона

Разверните шаблон с помощью любого стандартного метода для развертывания шаблона ARM, например в следующих примерах, использующих ИНТЕРФЕЙС командной строки и PowerShell. Замените примеры значений для ResourceGroupсреды и emailAddress соответствующими значениями. Имя рабочей области должно быть уникальным в пределах всех подписок Azure.

az login
az deployment group create --name CreateAdvisorAlert --resource-group my-resource-group --template-file CreateAdvisorAlert.json --parameters emailAddress='user@contoso.com'

Проверка развертывания

Убедитесь, что рабочая область была создана с помощью одной из следующих команд. Замените примеры значений группы ресурсов значением, используемым в предыдущем примере.

az monitor activity-log alert show --resource-group my-resource-group --name AdvisorAlertsTest

Очистка ресурсов

Если вы планируете продолжить работу с последующими краткими руководствами и статьями, эти ресурсы можно не удалять. Если ресурсы больше не нужны, удалите группу ресурсов, которая удаляет правило генерации оповещений и связанные ресурсы. Чтобы удалить группу ресурсов с помощью интерфейса командной строки или PowerShell, выполните следующие действия.

az group delete --name my-resource-group