Quickstart: Create Advisor alerts on new recommendations by using an ARM template
This article shows you how to set up an alert for new recommendations from Azure Advisor by using an Azure Resource Manager template (ARM template).
An Azure Resource Manager template is a JavaScript Object Notation (JSON) file that defines the infrastructure and configuration for your project. The template uses declarative syntax. You describe your intended deployment without writing the sequence of programming commands to create the deployment.
Whenever Advisor detects a new recommendation for one of your resources, an event is stored in an Azure activity log. You can set up alerts for these events from Advisor by using a recommendation-specific alerts creation experience. You can select a subscription and optionally a resource group to specify the resources that you want to receive alerts on.
You can also determine the types of recommendations by using these properties:
- Category
- Impact level
- Recommendation type
You can also configure the action that takes place when an alert is triggered by:
- Selecting an existing action group.
- Creating a new action group.
To learn more about action groups, see Create and manage action groups.
Note
Advisor alerts are currently only available for High Availability, Performance, and Cost recommendations. Security recommendations aren't supported.
Prerequisites
- If you don't have an Azure subscription, create a free account before you begin.
- To run the commands from your local computer, install the Azure CLI or the Azure PowerShell modules. For more information, see Install the Azure CLI and Install Azure PowerShell.
Review the template
The following template creates an action group with an email target and enables all service health notifications for the target subscription. Save this template as 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'))]"
]
}
]
}
The template defines two resources:
Deploy the template
Deploy the template by using any standard method for deploying an ARM template, such as the following examples that use the CLI and PowerShell. Replace the sample values for ResourceGroup
, and emailAddress
with appropriate values for your environment. The workspace name must be unique among all Azure subscriptions.
az login
az deployment group create --name CreateAdvisorAlert --resource-group my-resource-group --template-file CreateAdvisorAlert.json --parameters emailAddress='user@contoso.com'
Validate the deployment
Verify that the workspace was created by using one of the following commands. Replace the sample values for Resource Group with the value that you used in the previous example.
az monitor activity-log alert show --resource-group my-resource-group --name AdvisorAlertsTest
Clean up resources
If you plan to continue working with subsequent quickstarts and tutorials, you might want to leave these resources in place. When you no longer need the resources, delete the resource group, which deletes the alert rule and the related resources. To delete the resource group by using the CLI or PowerShell:
az group delete --name my-resource-group
Related content
- Get an overview of activity log alerts and learn how to receive alerts.
- Learn more about action groups.