Azure DNS is a reliable, low-latency hosting service for DNS zones — but it doesn't send you notifications when records change. An unauthorized A record update, an accidental MX record deletion, or a misconfigured CNAME during a deployment can go undetected for hours until users report the outage.
This guide covers the three main approaches for Azure DNS monitoring: Azure Monitor activity log alerts, Event Grid-based automation, and external DNS change detection.
Azure DNS is a data-plane service — it answers DNS queries. Changes to DNS records (A, AAAA, CNAME, MX, TXT, NS, PTR) happen through the Azure Resource Manager control plane. Azure doesn't treat these changes as events that need notification by default.
The practical consequence: if someone in your organization (or an automated deployment pipeline) changes an A record pointing to the wrong IP, you won't hear about it from Azure. You'll hear about it when users can't reach your service.
Every Azure DNS zone write operation is logged in the Azure Activity Log. You can create an alert rule that fires when any record set in a zone is created, updated, or deleted.
mycompany.com)Microsoft.Network/dnsZones/recordsets/writeMicrosoft.Network/dnsZones/recordsets/deleteThis catches any change to any record set in the zone — creation, modification, or deletion — and alerts within 5 minutes.
You can also configure this via Azure CLI:
# Create an action group (email notification)
az monitor action-group create \
--resource-group YOUR_RG \
--name dns-alert-group \
--short-name dns-alerts \
--action email admin admin@yourcompany.com
# Create the activity log alert
az monitor activity-log alert create \
--resource-group YOUR_RG \
--name "DNS Record Change Alert" \
--scope "/subscriptions/SUB_ID/resourceGroups/YOUR_RG/providers/Microsoft.Network/dnszones/yourdomain.com" \
--condition category=Administrative \
operationName=Microsoft.Network/dnsZones/recordsets/write \
--action-group dns-alert-group
Azure Event Grid can route DNS zone events to Azure Functions, Logic Apps, or webhooks in near-real-time (typically under 1 minute). This is useful if you want to:
# Subscribe to DNS zone events via Event Grid
az eventgrid event-subscription create \
--name dns-change-subscription \
--source-resource-id "/subscriptions/SUB_ID/resourceGroups/YOUR_RG/providers/Microsoft.Network/dnszones/yourdomain.com" \
--endpoint https://your-function-or-webhook.azurewebsites.net/api/dns-change \
--included-event-types Microsoft.Network.RecordSetsWritten \
Microsoft.Network.RecordSetsDeleted
The webhook payload includes the operation type, the record set name, the record type, the initiating identity (which service principal or user made the change), and a timestamp. This gives you a full audit trail of DNS changes with actor attribution.
Azure Monitor activity logs and Event Grid only capture changes made through the Azure control plane — changes initiated via the Azure portal, CLI, ARM templates, or SDK. They don't detect:
External DNS monitoring works differently: it periodically queries your DNS records from multiple locations and alerts you if the resolved values change. This is a completely independent check that doesn't require access to your Azure subscription.
Check your current DNS records right now:
Enter any domain to see its current A, AAAA, MX, TXT, CNAME, and NS records — what the rest of the internet sees right now.
Check DNS records → Get DNS change alerts →| Record type | Impact if changed unexpectedly | Priority for monitoring |
|---|---|---|
| A / AAAA | Traffic redirected to wrong IP — immediate outage or hijack risk | Critical |
| CNAME | Service redirected — may cause HTTPS cert errors if CNAME changes | Critical |
| MX | Email delivery silently fails or routes to wrong server | High |
| TXT | SPF/DKIM/DMARC validation breaks — email deliverability drops | High |
| NS | Entire zone delegated to different nameservers — full DNS hijack risk | Critical |
| PTR | Reverse DNS breaks — affects email reputation checks | Medium |
If you need to prevent unauthorized DNS changes rather than just detect them, Azure Policy and RBAC are the right tools:
DNS Zone Contributor role sparingly. Most teams should have read-only access by default; write access should be restricted to specific service principals used in deployment pipelines.deny policy for Microsoft.Network/dnsZones/recordsets/write that only permits changes from specific subscription IDs or management group paths.ReadOnly lock to critical DNS zones. This blocks all write operations until the lock is explicitly removed — useful for production zones that should rarely change.A robust Azure DNS monitoring strategy uses both layers:
The two approaches catch different failure modes. Activity log alerts tell you someone changed a record. External monitoring tells you what the world currently sees — which is ultimately what matters for your users.
DNSWatch monitors your DNS records externally from multiple locations and sends email alerts the moment A, MX, TXT, CNAME, or NS records change. No Azure credentials needed — just add your domains.
Join the DNSWatch waitlist → Free DNS checker →