DNS Monitors
Validate DNS records, check propagation, and monitor domain health.
DNS Monitors
DNS monitors query DNS records and validate they return expected values. Use them to verify domain configuration, check propagation, and detect DNS issues.
Creating a DNS Monitor
Basic Configuration
Name: Website DNS Check
Domain: example.com
Record Type: A
Expected Value: 93.184.216.34Full Configuration
Name: Production DNS
Domain: example.com
Record Type: A
Expected Values:
- 93.184.216.34
- 93.184.216.35
DNS Server: 8.8.8.8 # Optional: specific resolver
Interval: 5 minutes
Timeout: 10 secondsRecord Types
A Records
IPv4 addresses:
Domain: example.com
Record Type: A
Expected: 93.184.216.34AAAA Records
IPv6 addresses:
Domain: example.com
Record Type: AAAA
Expected: 2606:2800:220:1:248:1893:25c8:1946CNAME Records
Canonical names (aliases):
Domain: www.example.com
Record Type: CNAME
Expected: example.comMX Records
Mail exchange:
Domain: example.com
Record Type: MX
Expected: mail.example.com
Priority: 10 # OptionalTXT Records
Text records (SPF, DKIM, verification):
Domain: example.com
Record Type: TXT
Expected Contains: v=spf1NS Records
Name servers:
Domain: example.com
Record Type: NS
Expected Contains: ns1.example.comSOA Records
Start of Authority:
Domain: example.com
Record Type: SOAAssertions
Exact Match
Assertions:
- type: record_value
equals: 93.184.216.34Contains
For records that may have multiple values:
Assertions:
- type: record_value
contains: ns1.example.comMultiple Values
Verify all expected IPs are present:
Assertions:
- type: record_values
contains_all:
- 93.184.216.34
- 93.184.216.35Record Count
Assertions:
- type: record_count
equals: 2Response Time
Assertions:
- type: response_time
less_than: 500 # millisecondsNo Record (NXDOMAIN)
Verify a record doesn't exist:
Assertions:
- type: record_exists
equals: falseUse Cases
Domain Configuration
Verify production domain points to correct IPs:
Name: Production Domain
Domain: app.example.com
Record Type: A
Assertions:
- type: record_values
contains_all:
- 10.0.1.100
- 10.0.1.101CDN Verification
Check CDN CNAME is configured:
Name: CDN Configuration
Domain: static.example.com
Record Type: CNAME
Assertions:
- type: record_value
contains: cloudfront.netEmail Configuration
SPF Record
Name: SPF Record
Domain: example.com
Record Type: TXT
Assertions:
- type: record_value
contains: v=spf1MX Records
Name: Mail Servers
Domain: example.com
Record Type: MX
Assertions:
- type: record_values
contains_all:
- aspmx.l.google.com
- alt1.aspmx.l.google.comDMARC Record
Name: DMARC Policy
Domain: _dmarc.example.com
Record Type: TXT
Assertions:
- type: record_value
contains: v=DMARC1Failover Verification
Check failover DNS is ready:
Name: Failover DNS
Domain: failover.example.com
Record Type: A
Expected: 10.0.2.100 # Backup IPDNS Propagation Monitoring
Monitor DNS changes across multiple resolvers:
Multiple DNS Servers
Name: DNS Propagation Check
Domain: example.com
Record Type: A
DNS Servers:
- 8.8.8.8 # Google
- 1.1.1.1 # Cloudflare
- 208.67.222.222 # OpenDNS
Expected: 93.184.216.34
All Must Match: trueAfter DNS Change
After updating DNS records:
- Create a monitor with expected new value
- Monitor from multiple locations
- Alert when propagation is complete
Response Metrics
Each run captures:
| Metric | Description |
|---|---|
| Response Time | Query duration |
| DNS Server | Resolver used |
| Record Values | Returned values |
| TTL | Time to live |
| Response Code | NOERROR, NXDOMAIN, etc. |
Advanced Configuration
Specific DNS Server
Query a specific resolver instead of system default:
DNS Server: 8.8.8.8Query Options
Query Options:
TCP: false # Use UDP (default)
Recursion: true # Enable recursion
EDNS: true # Extended DNSTimeout and Retries
Timeout: 10 seconds
Retries: 2
Retry Delay: 1 secondCommon Issues
NXDOMAIN (Non-Existent Domain)
Problem: DNS query returns NXDOMAIN
Causes:
- Domain doesn't exist
- Record type doesn't exist for domain
- DNS not propagated yet
Solutions:
- Verify domain is registered
- Check record type is correct
- Wait for propagation (up to 48 hours)
Timeout
Problem: DNS query times out
Causes:
- DNS server unreachable
- Network issues
- Firewall blocking DNS
Solutions:
- Try different DNS server
- Check network connectivity
- Verify port 53 is open
Wrong Values
Problem: DNS returns unexpected values
Causes:
- Recent DNS change not propagated
- DNS hijacking
- Incorrect configuration
Solutions:
- Check authoritative nameserver
- Verify DNS configuration
- Check for DNS poisoning
DNS propagation can take up to 48 hours. After making DNS changes, expect inconsistent results until propagation completes.
Best Practices
- Monitor critical records - A, CNAME, MX for important domains
- Use multiple DNS servers - Detect propagation issues
- Check email records - SPF, DKIM, DMARC for deliverability
- Monitor TTL appropriately - Don't check more often than TTL
- Alert on changes - Unexpected DNS changes may indicate issues
- Document expected values - Keep record of correct DNS configuration