Zabbix监控阿里云注册的域名过期时间

公司域名是通过阿里云注册的,需要监控域名的到期时间 经查询,阿里云提供了域名的对应api接口,我们很容易就能拿到对应的域名过期时间 接口文档可参考:https://next.api.aliyun.com/api/Dom...

公司域名是通过阿里云注册的,需要监控域名的到期时间

经查询,阿里云提供了域名的对应api接口,我们很容易就能拿到对应的域名过期时间

接口文档可参考:https://next.api.aliyun.com/api/Domain/2018-01-29/QueryDomainByDomainName?sdkStyle=old&params=%7B%22DomainName%22:%22lwops.top%22%7D&tab=DEBUG&lang=PYTHON

我们只需取出其中的到期时间,再根据当前的时间戳即可推算出过期剩余天数

代码如下:

#!/bin/env python from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkcore.auth.credentials import AccessKeyCredential from aliyunsdkcore.auth.credentials import StsTokenCredential from aliyunsdkdomain.request.v20180129.QueryDomainByDomainNameRequest import QueryDomainByDomainNameRequest import json,time #用于访问阿里云API的key credentials = AccessKeyCredential('', '') # use STS Token # credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>') client = AcsClient(region_id='cn-hangzhou', credential=credentials) request = QueryDomainByDomainNameRequest() request.set_accept_format('json') #需要查询的域名 request.set_DomainName("xxx.com") response = client.do_action_with_exception(request) value = json.loads(response) #获取当前时间的时间戳 now_time = int(time.time()) #将接口返回的域名过期时间转化为时间戳 end_time = int(time.mktime(time.strptime(value['ExpirationDate'], "%Y-%m-%d %H:%M:%S"))) #计算出剩余天数 end_day = (end_time - now_time)/(60*60*24) print(end_day)

效果验证:
JewO5k2h635e30143fbe0.pngVr51sGE9635e30345fc71.png经测试,能正确获取到到期剩余天数

触发器配置到期时间小于20天则报警通知:
CiUs7Tft635e3070a8e1c.png

至此,已完成一个简单的域名到期监控
本案例只是提供了一种思路,后期如果域名过多,也可以通过自动发现方式来进行自动化添加监控,有兴趣的可以继续和笔者讨论研究


0 条评论

请先 登录 后评论
细雨闲花
细雨闲花

11 篇文章

作家榜 »

  1. 乐维君 344 文章
  2. YOHOHO 14 文章
  3. 机灵小和尚 13 文章
  4. 我是一只小菜鸡 12 文章
  5. 细雨闲花 11 文章
  6. 御前侍卫张五哥 9 文章
  7. 。。。 8 文章
  8. 小黄人 8 文章