Quickstart: Create alerts with Azure Resource Graph and Log Analytics

In this quickstart, you learn how you can use Azure Log Analytics to create alerts on Azure Resource Graph queries. You can create alerts with Azure Resource Graph query, Log Analytics workspace, and managed identities. The alert's conditions send notifications at a specified interval.

You can use queries to set up alerts for your deployed Azure resources. You can create queries using Azure Resource Graph tables, or you can combine Azure Resource Graph tables and Log Analytics data from Azure Monitor Logs.

This article includes two examples of alerts:

  • Azure Resource Graph: Uses the Azure Resource Graph Resources table to create a query that gets data for your deployed Azure resources and create an alert.
  • Azure Resource Graph and Log Analytics: Uses the Azure Resource Graph Resources table and Log Analytics data from the from Azure Monitor Logs Heartbeat table. This example uses a virtual machine to show how to set up the query and alert.

Note

Azure Resource Graph alerts integration with Log Analytics is in public preview.

Prerequisites

  • If you don't have an Azure account, create a free account before you begin.
  • Resources deployed in Azure like virtual machines or storage accounts.
  • To use the example for the Azure Resource Graph and Log Analytics query, you need at least one Azure virtual machine with the Azure Monitor Agent.

What problem will we solve?

You want to use an Azure Resource Graph query to get information about your Azure resources. You can use Azure Log Analytics to set up alerts that notify you when certain conditions are met.

Create workspace

Create a Log Analytics Workspace in the subscription that's being monitored.

  1. Sign in to the Azure portal.

  2. In the search field, type log analytics workspaces and select Log Analytics workspaces.

    If you've used Log Analytics workspaces, you can select it from Azure services.

    Screenshot of the Azure home page that highlights search field and Log Analytics workspaces.

  3. Select Create.

    • Subscription: Select your Azure subscription
    • Resource group: demo-arg-alert-rg
    • Name: demo-arg-alert-workspace
    • Region: West US3
  4. Select Review + Create and wait for Validation passed to be displayed.

  5. Select Create to begin the deployment.

  6. Select Go to resource when the deployment is completed.

Create virtual machine

You don't need to create a virtual machine for the example that uses the Azure Resource Graph table.

Create query

From the Log Analytics workspace, create an Azure Resource Graph query to get a count of your Azure resources. This example uses the Azure Resource Graph Resources table.

  1. Select Logs from the left side of the Log Analytics workspace page.

    Close the Queries window if it's displayed.

  2. Use the following code in the New Query.

    arg("").Resources
    | count
    

    Table names in Log Analytics need to be camel case with the first letter of each word capitalized, like Resources or ResourceContainers. You can also use lowercase like resources or resourcecontainers.

    Screenshot of the Log Analytics workspace with a query of the Resources table that highlights logs and run button.

  3. Select Run.

    The Results displays the Count of resources in your Azure subscription. Make a note of that number because you need it for the alert rule's condition. When you manually run the query the count is based on user identity, and a fired alert uses a managed identity. It's possible that the count might vary between a manual run or fired alert.

  4. Remove the count from your query.

    arg("").Resources
    

Create alert rule

From the Log Analytics workspace, select New alert rule. The query from your Log Analytics workspace is copied to the alert rule. Create an alert rule has several tabs that need to be updated to create the alert.

Screenshot of the Log Analytics workspace page that highlights new alert rule.

Scope

Verify that the scope is set to your Log Analytics workspace named demo-arg-alert-workspace.

If you need to change the scope, do the following steps.

  1. Go to the Scope tab and select Select scope.
  2. At the bottom of the Selected resources screen, delete the current scope.
  3. Expand the demo-arg-alert-rg from the list of resources and select demo-arg-alert-workspace.
  4. Select Apply.
  5. Select Next: Condition.

Condition

The form has several fields to complete.

  • Signal name: Custom log search
  • Search query: Displays the query code.

Measurement

  • Measure: Table rows
  • Aggregation type: Count
  • Aggregation granularity: 5 minutes

Alert logic

  • Operator: Greater than

  • Threshold value: Use a number that's less that the number returned from the resources count.

    For example, if your resource count was 50 then use 45. This value triggers the alert to fire when it evaluates your resources because your number of resources is greater than the threshold value.

  • Frequency of evaluation: 5 minutes

Select Next: Actions.

Actions

Select Create action group.

  • Subscription: Select your Azure subscription.
  • Resource group: demo-arg-alert-rg
  • Region: Global
  • Action group name: demo-arg-alert-action-group
  • Display name: demo-action (limit is 12 characters)

Select Next: Notifications.

  • Notification type: Select Email/SMS message/Push/Voice.
  • Name: email-alert
  • Select the Email checkbox and type your email address.
  • Select Ok.

Select Review + Create, verify the summary is correct, and select Create. You're returned to the Actions tab of the Create an alert rule page. The Action group name shows the action group you created.

Select Next: Details.

Details

Use the following information on the Details tab.

  • Subscription: Select your Azure subscription
  • Resource group: demo-arg-alert-rg
  • Severity: Accept the default value 3 - Informational
  • Alert rule name: demo-arg-alert-rule
  • Alert rule description: Email alert for count of Azure resources
  • Identity: Select System assigned managed identity

Select Review + Create, verify the summary is correct, and select Create. You're returned to the Logs page of your Log Analytics workspace.

You receive an email notification to confirm you were added to the action group.

Assign role

Assign the Log Analytics Reader to the system-assigned managed identity so that it has permissions fire alerts that send email notifications.

  1. Select Monitoring > Alerts in the Log Analytics workspace.

    Select OK if you're prompted that Your unsaved edits will be discarded.

  2. Select Alert rules.

  3. Select demo-arg-alert-rule.

  4. Select Settings > Identity > System assigned.

    • Status: On
    • Object ID: Shows the GUID for your Enterprise Application (service principal) in Microsoft Entra ID.
    • Permission: Select Azure role assignments
      • Verify the correct subscription is selected.
      • Select Add role assignment
      • Scope: Subscription
      • Subscription: Your Azure subscription name
      • Role: Log Analytics Reader
  5. Select Save.

It takes a few minutes for the Log Analytics Reader to display on the Azure role assignments page. Select Refresh to update the page.

Use your browser's back button to return to the Identity and then select Overview to return to the alert rule. Select the link to your resource group named demo-arg-alert-rg.

Verify alerts

After the role is assigned to your alert rule, you begin to receive email for alert messages. The rule was created to send alerts every five minutes and it takes a few minutes to get the first alert.

You can also view the alerts in the Azure portal.

  1. Go to the resource group demo-arg-alert-rg.

  2. Select demo-arg-alert-workspace in your list of resources.

  3. Select Monitoring > Alerts.

  4. A list of alerts is displayed.

    Screenshot of the Log Analytics workspace that shows list of alerts that fired.

How did we solve the problem?

You created an Azure Resource Graph query and a Log Analytics workspace to monitor Azure resources. You also set up alerts to notify you for events and assigned a role to the system-assigned managed identity. After the alert was created, you received email alerts based on conditions in the alert rule.

Clean up resources

If you want to keep the alert configuration but stop the alert from firing and sending email notifications, you can disable it. Go to your alert rule demo-arg-alert-rule or demo-arg-la-alert-rule and select Disable.

If you don't need this alert or the resources you created in this example, delete the resource group with the following steps:

  1. Go to your resource group demo-arg-alert-rg.
  2. Select Delete resource group.
  3. Type the resource group name to confirm.
  4. Select Delete.

For more information about the query language or how to explore resources, go to the following articles.