公司因为业务原因,注册了各种域名,大约有50多个吧。 因为域名后缀不同,分别注册在不同的域名服务商。 注册的时间和时长也各不相同,为避免出现域名过期而忘记续费,想出用zabbix来监控域名还剩多少天到期,以提醒续费。 比较好的域名信息查询工具是whois命令,whois + 要查询的域名就能得到相关信息。 因为.com、.cn还有.tw的域名信息都是不一样的,我不会写代码能力有限,所以分成三个脚本来分别处理。 切换到zabbix默认的外部检查脚本目录下 cd /usr/lib/zabbix/externalscripts/ 新增com域名监控脚本 sudo nano domaincheck-com.sh 填入如下内容 #!/bin/bash DOMAINS=$1 current_epoch=`date '+%s'` expiry_date=`whois $1 | egrep -i "Expiration Date:|Expires on"| head -1 | awk '{print $NF}'` expiry_epoch=`date --date="$expiry_date" '+%s'` epoch_diff=`expr $expiry_epoch - $current_epoch` echo `expr $epoch_diff / 86400` 然后赋予可执行权限 sudo chmod +x domaincheck-com.sh 测试一下是否可以获取剩余天数 ./domaincheck-com.sh baidu.com 如正常这里会返回域名到期天数 然后新增一个模板,在监控项中填写键值:domaincheck-com.sh["{HOST.CONN}"] 类型:外部检查 信息类型:浮点数 单位:days 更新间隔:12h 然后根据需求填写相应的报警触发机制 另外两个模板制作方法类似,这里就不做复述了。 这里附上.cn和.tw获取域名剩余天数的脚本 CN域名的脚本domaincheck-cn.sh内容: #!/bin/bash DOMAINS=$1 current_epoch=`date '+%s'` expiry_date=`whois