Monitoring Domain Name Expiry with Nagios / Icinga
For a while now I have wanted a way to actively monitor my domain names to alert me to their pending expiry. I didn’t want to rely on my DNS provider emails as I simply don’t trust they will come through and not end up in my junk folder.
After hunting the internet I couldnt find anything useful to plug into Nagios / Icinga, so I wrote my own. It can be found in my GitHub account here:
Usage:
./check_domain_expiry.py example.com
By default it will warn at 30 days, and go critical at 7 days.
It is written using the underlying linux whois command line. Some extremely basic string parsing is used to discover expiry date information. The Ubuntu python3-dateutil package is used to understand the written dates for comparison.
Currently I am using this to monitor a handful of domains using the following TLDs:
.com, .org, .net, .co.nz, .uk, .co.uk, .org.uk.
Please let me know if you have any suggestions on improvements.