check_expire | ||
ianardap.py | ||
LICENSE | ||
README.md | ||
tests.yaml |
check_expire
A Nagios (and compatible) plugin to check the impending expiration of a domain name. It relies on RDAP exclusively (no whois) and works with every top-level domain with RDAP (which includes all the ICANN ones).
Usage
check_expire follows the usual Nagios rules. The options are:
- -H: domain name to monitor
- -c: critical threshold in days
- -w: warning threshold in days
- -v: verbose details in output
- -u: unixtime output
Installation
You need Python 3 and Requests. You can install Requests, for instance, with pip pip3 install requests
.
Then, copy the script check_expire
and the file ianardap.py
to the directory of local plugins.
Icinga configuration
If you use Icinga, here is a possible definition of the command:
object CheckCommand "expiration" {
command = [ PluginContribDir + "/check_expire" ]
arguments = {
"-H" = "$address$",
"-c" = "$expiration_critical$",
"-w" = "$expiration_warning$",
"-v" = { set_if = "$expiration_verbose$" }
}
}
apply Service "expiration" {
import "generic-service"
check_command = "expiration"
assign where host.address && host.vars.monitor_expiration
}
And a possible use:
object Host "bortzmeyer-org" {
...
address = "bortzmeyer.org"
vars.monitor_expiration = true
vars.expiration_verbose = true
}
Zabbix configuration
For monitoring systems that do not rely on exit codes but on calculation mechanism based on the metric they receive you can use the -u
option that will only return the expiration date in unixtime format.
For instance, you can use the following in zabbix 5.4:
- item:
check_expire["-H","{HOST.CONN}","-u"]
- trigger (30 days before expiration):
last(/check_expire["-H","{HOST.CONN}","-u"])-now()<2592000
Where 2592000
is the number of seconds in 30 days.
License
GPL. See LICENSE.
Authors
Stéphane Bortzmeyer stephane+chapril@bortzmeyer.org.
Reference site
https://forge.chapril.org/bortzmeyer/check_expire Use the Gitea issue tracker to report bugs or wishes.