Partilhar via


Guia de início rápido: crie alertas do Advisor sobre novas recomendações usando um modelo ARM

Este artigo mostra como configurar um alerta para novas recomendações do Azure Advisor usando um modelo do Azure Resource Manager (modelo ARM).

Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo utiliza sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Sempre que o Advisor deteta uma nova recomendação para um de seus recursos, um evento é armazenado em um log de atividades do Azure. Você pode configurar alertas para esses eventos do Advisor usando uma experiência de criação de alertas específicos de recomendação. Você pode selecionar uma assinatura e, opcionalmente, um grupo de recursos para especificar os recursos sobre os quais deseja receber alertas.

Você também pode determinar os tipos de recomendações usando estas propriedades:

  • Categoria
  • Nível de impacto
  • Tipo de recomendação

Você também pode configurar a ação que ocorre quando um alerta é acionado por:

  • Selecionar um grupo de ações existente.
  • Criação de um novo grupo de ação.

Para saber mais sobre grupos de ação, veja Criar e gerir grupos de ações.

Nota

Atualmente, os alertas do Advisor só estão disponíveis para recomendações de alta disponibilidade, desempenho e custo. As recomendações de segurança não são suportadas.

Pré-requisitos

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
  • Para executar os comandos a partir do computador local, instale a CLI do Azure ou os módulos do Azure PowerShell. Para obter mais informações, consulte Instalar a CLI do Azure e Instalar o Azure PowerShell.

Rever o modelo

O modelo a seguir cria um grupo de ações com um destino de email e habilita todas as notificações de integridade do serviço para a assinatura de destino. Salve este modelo como 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'))]"
      ]
    }
  ]
}

O modelo define dois recursos:

Implementar o modelo

Implante o modelo usando qualquer método padrão para implantar um modelo ARM, como os exemplos a seguir que usam a CLI e o PowerShell. Substitua os valores de exemplo por ResourceGroup, e emailAddress por valores apropriados para seu ambiente. O nome do espaço de trabalho deve ser exclusivo entre todas as assinaturas do Azure.

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

Validar a implementação

Verifique se o espaço de trabalho foi criado usando um dos seguintes comandos. Substitua os valores de exemplo para Grupo de Recursos pelo valor usado no exemplo anterior.

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

Clean up resources (Limpar recursos)

Se você planeja continuar trabalhando com guias de início rápido e tutoriais subsequentes, convém deixar esses recursos no lugar. Quando não precisar mais dos recursos, exclua o grupo de recursos, que exclui a regra de alerta e os recursos relacionados. Para excluir o grupo de recursos usando a CLI ou o PowerShell:

az group delete --name my-resource-group