Since I recently had some unexpected frustrations with my DNS server, I'd like get an e-mail if my DNS server ever stops behaving as expected. Is there a tool out there already that will do this for me or am I better off writing a shell script?
I know this sounds a little subjective. My main question is "is there a tool already out there that will do this?" which I don't believe is subjective at all.
I monitor my DNS using the check_dns plugin in Nagios.
I think Pingdom http://www.pingdom.com offers a DNS testing service, in addition to their standard Website testing service. I used their web testing service for awhile. They have a nice one time check tool at: http://dnscheck.pingdom.com/
If you don't mind rolling out an entire monitoring system (such as Nagios), they'll generally have a test for DNS and will send out email notifications as well.
Nagios (and others) will also let you tweak the reporting threshold in case you get transient errors you don't care about. E.g. only email if three resolves fail in a row, or it hasn't been able to resolve anything for 5 minutes.