DNS is infrastructure that mostly works until it doesn't — and when it doesn't, the consequences are immediate and broad. A changed A record pulls production traffic to the wrong server. A dropped MX record bounces all inbound email. A modified TXT record breaks DMARC enforcement and gets your outbound email flagged as spam.
A DNS monitoring service checks your records on a continuous schedule and alerts you the moment anything changes. This post covers what to look for in a monitoring service, what the real-world options are, and how to start monitoring your critical domains today.
At its core, a DNS monitoring service does three things:
The critical word is "diff." A service that only tells you "something changed" without showing you what changed is not useful — you still have to manually check every record to figure out what's different. The before/after comparison is what turns a vague alert into an actionable one.
| Record type | Why it matters | Priority |
|---|---|---|
A / AAAA |
Maps your domain to an IP. Change = wrong server gets traffic or domain goes offline. | 🔴 Critical |
MX |
Defines where email is delivered. Change = email silently bounces or goes to wrong server. | 🔴 Critical |
NS |
Defines your authoritative nameservers. Unexpected change can indicate domain hijack. | 🔴 Critical |
TXT (SPF / DMARC) |
Email authentication. Change = outbound email flagged as spam or DMARC enforcement broken. | 🟠 High |
CNAME |
Aliases subdomains to other hosts. Change can break CDN routing, partner integrations, or third-party services. | 🟠 High |
SOA |
Zone transfer metadata. Change usually signals a provider migration or configuration reset. | 🟡 Medium |
If the monitoring service queries only from one location or uses your own DNS resolver, it can miss propagation issues. A record might appear correct on Cloudflare's resolver but still serve the old value to 30% of users via their ISP's cached resolver. Good monitoring services query from geographically distributed resolvers — at minimum, from multiple continents.
A service that checks every 60 minutes can leave you with 59 minutes of undetected downtime. For production domains, a check interval of 5–15 minutes is reasonable. Faster is better for high-traffic domains; slower is acceptable for low-traffic or non-critical subdomains.
TTL-based changes are normal. If your CDN dynamically updates A records with short TTLs as part of load balancing, a naive monitoring service will fire alerts constantly. A good service can be configured with a baseline tolerance — don't alert on changes to records you've explicitly flagged as dynamic.
Worth repeating: the alert should show you the old value and the new value side by side. Without this, every alert requires a manual investigation before you can even decide whether it's an incident. With it, you can decide in 10 seconds: "That's the CNAME I updated yesterday — expected" versus "That A record changed and I didn't touch it — incident."
Several indie tools focus specifically on DNS change detection. They're typically low-cost ($5–15/month) and cover the basics: multiple domains, email alerts with diffs, configurable record types. The tradeoff is usually limited integrations — email-only, no Slack or PagerDuty without custom webhooks.
Uptime Robot, Better Uptime, and similar services have added DNS monitoring as a feature alongside HTTP uptime checks. If you're already paying for uptime monitoring, check whether your plan includes DNS monitoring — you may already have access. The DNS monitoring in these tools tends to be basic (often just A record checking) but is better than nothing.
Cloudflare, AWS Route53, and Google Cloud DNS all maintain audit logs of DNS changes. These are excellent for forensics — you can see who changed what and when — but they don't alert you in real time. They also only cover changes made within that provider's system; a change at the registrar level won't appear in your CDN's audit log.
A bash script running on a cron, comparing dig output to a stored snapshot, is a fully functional DNS monitor for 1–2 critical records. It costs nothing beyond server time. It scales poorly — maintaining a custom monitor for 10 domains across 6 record types each is a maintenance task that eventually gets neglected. Use this approach for a handful of the most critical records while a proper service covers the rest.
Before adding monitoring, you need to know what's there to monitor. The DNS record checker returns every record type for any domain in one lookup — no account required, no install. It's a useful first step even if you're just auditing what your current DNS configuration looks like.
DNSWatch monitors your DNS records every 15 minutes and sends you an email the moment any record changes, with a full before/after diff. $9/month per domain, no setup required.