zabbix企业应用之监控域名过期时间与ssl证书过期时间

如果各位维护过n多个域名,可能会对备案与续费有所了解,备案是十分麻烦,各种流程,而续费的话,虽然比较简单,但如果你没有提前续费,可能导致域名不可用,甚至被他人给恶意注册,为了解决这样的问他,我今天给各位分享一下,如何使用zabbix监控域名过期时间与ssl证书过期时间,默认的触发器是在域名或ssl证书要过期前60天通知。

下面是监控域名过期时间的效果图

下面是监控ssl证书过期时间效果图

如何实现:

一、客户端

1、修改zabbix_agentd.conf文件

在zabbix_agentd.conf最后添加以下内容

UserParameter=check_domain_beian[*],python /usr/local/zabbix_server/bin/check_domain_beian.py $1
UserParameter=check_ssl_cert_expire[*],/bin/bash usr/local/zabbix_server/bin/check_ssl_cert_expire.sh $1 $2

其中check_domain_beian是监控域名过期时间,check_ssl_cert_expire是监控ssl证书过期时间

2、把下面脚本放入客户端的bin里(我的是放在/usr/local/zabbix_server/bin)

监控域名过期时间的脚本/usr/local/zabbix_server/bin/check_domain_beian.py内容为

#/usr/bin/env python
#author:denglei
#email:[email protected]
import urllib2
import urllib
import sys
import datetime
import time
import re
check_api=‘http://whomsy.com/api/%s?output=json‘%sys.argv[1]
header={"User-Agent": "Mozilla-Firefox5.0"}
result = urllib2.urlopen(check_api)
check_result = result.read()
print check_result
c=re.findall("GODADDY.COM*",check_result)
cc=re.findall("GoDaddy*",check_result)
if len(c) == 0 and len(cc) == 0:
    c=re.findall("Registrar Registration Expiration Date.*",check_result)
    if len(c) == 0:
        c=re.findall("Expiration Date.*",check_result)
    m=re.search("\d+-\d+-\d+..\d+:\d+:\d+",c[0])
    d=m.group()
    e=re.sub(‘T‘,‘ ‘,d)
elif len(c) ==0 and len(cc) != 0:
    c=re.findall("Record expires on.*",check_result)
    m=re.search("\d+-\d+-\d+",c[0])
    d=m.group()
    e=time.strftime("%Y-%m-%d %T",time.strptime(d,‘%Y-%m-%d‘))
else:
    c=re.findall("Expiration Date.*",check_result)
    m=re.search("\d+-\w+-\d+",c[0])
    if m is None:
        m=re.search("\w+ \w+ \d+ \d+:\d+:\d+ \w+ \d+",c[0])
        d=m.group()
        e=time.strftime("%Y-%m-%d %T",time.strptime(d,‘%a %b %d %H:%M:%S %Z %Y‘))
    else:
        d=m.group()
        e=time.strftime("%Y-%m-%d %T",time.strptime(d,‘%d-%b-%Y‘))
if len(c) == 0:
    e=‘‘
def conver_time(start_time):
    start_time=start_time
    now_time=time.strftime(‘%Y-%m-%d %H:%M:%S‘)
    warn_start=datetime.datetime.strptime(start_time,"%Y-%m-%d %H:%M:%S")
    warn_finish=datetime.datetime.strptime(now_time,"%Y-%m-%d %H:%M:%S")
    #td=warn_finish - warn_start
    td=warn_start - warn_finish
    warn_continue=(td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6
    if warn_continue >= 86400 :
	day = warn_continue // 86400
    return day
if  len(e) != 0:
    print conver_time(e)
else:
    print ‘1‘

我是使用python来实现,使用whomsy接口获取信息,然后通过正则过滤出结果。

ps:网上虽然有很多接口可以使用,但好多都是过期或者需要花钱的,免费的话,也限制了监控的频率,我的域名比较多所以只能自己弄了。

下面是监控ssl证书的脚本check_ssl_cert_expire.sh内容

#/bin/bash
host=$1
port=$2
end_date=`openssl s_client -host $host -port $port -showcerts </dev/null 2>/dev/null |
          sed -n ‘/BEGIN CERTIFICATE/,/END CERT/p‘ |
      openssl x509 -text 2>/dev/null |
      sed -n ‘s/ *Not After : *//p‘`
if [ -n "$end_date" ]
then
    end_date_seconds=`date ‘+%s‘ --date "$end_date"`
# date指令format字符串时间。
    now_seconds=`date ‘+%s‘`
    echo "($end_date_seconds-$now_seconds)/24/3600" | bc
fi

ps:这个脚本是我在网上找的,非原创

重要:如果想使用这个脚本监控ssl证书,需要ssl证书在服务器里使用,否则没办法监控的。

3、重启zabbix客户端服务

ps -ef|grep zabbix|grep -v grep|awk ‘{print $2}‘|xargs kill -9
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf

二、服务端

1、域名过期时间的项目

我是1小时监控一次,大家可以设置更长,但别大于一天。

2、监控域名过期时间的触发器

只要还有60天就过期报警,报警级别是“一般严重”,我这里报警级别为”一般严重“为短信或邮件通知,”严重“报警为语音报警通知。

3、监控ssl证书过期时间项目

4、监控ssl证书过期时间的触发器

我监控的话,是一个主机监控多个域名或者ssl证书,所以我没有弄成模板,如果你想一个主机监控一个域名,可以弄成模板。有问题留言,我会及时反馈。

时间: 2024-08-10 19:10:31

zabbix企业应用之监控域名过期时间与ssl证书过期时间的相关文章

GeoTrust 企业(OV)型 多域名(SAN/UC)版 SSL证书

  GeoTrust 企业(OV)型 多域名(SAN/UC)版 SSL证书(GeoTrust True BusinessID With  Multi-Domain(SAN/UC) ),支持多域名,属于企业验证(OV)级别的SSL证书,验证域名所有权,验证企业单位信息,提供40位/56位/128位,最高支持256位自适应加密,被2048位的根证书签名,您可以放心的使用.同时,为用户免费提供无法仿冒的 GeoTrust安全签章(GeoTrust Secure Seal),使得用户能确信不仅机密信息被

ssl证书过期时间监控

前几天,因为网易邮箱有部分域名的ssl证书过期,导致很多苹果用户的手机遇到疯狂弹窗,提示无法验证服务器身份.在我看来,这肯定是运维的锅了. 即使ssl厂商有续费提示,但是有可能因为人为的原因或者沟通的原因导致部分域名会忘记更换.所以每个https的域名都有必要添加上证书过期的提醒.(网易邮箱这次好像就是因为更换证书出现了遗漏). 如果你正在使用prometheus的作为监控工具,那么做ssl证书过期的监控就很简单了.prometheus是使用blackbox_exporter来监控http的.而

一场由于ssl证书过期造成的扯蛋加班

昨天中午,突然有反映app客户端无法登录,注册.由于监控还不到位,所以没有第一时间知道,发现问题后,首先检查日志,发现有大量的'peer closed connection in SSL handshake while SSL handshaking,''client closed connection while waiting for request,' 以前没有解决过此类报错,百度和google也没查到解决的办法,只是说ssl握手不成功,但由于大量的用户无法登录,同时在出现问题的前一天又做

腾讯云,体验域名注册解析与SSL证书

体验域名注册解析与SSL证书 购买域名 任务时间:30min ~ 60min 在腾讯云上购买域名 首先需要在腾讯云上购买域名, 点击以下链接可以观看购买操作的指引 如何在腾讯云上购买域名 域名解析 域名购买完成后, 需要将域名解析到此服务器上,此服务器的IP是 <您的 CVM IP 地址> 点击下面的链接观看如何在腾讯云上解析域名 如何在腾讯云上解析域名 检查域名生效 域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效,如: ping 你申请解析的子域名 如果 ping

zabbix监控ssl证书到期时间

公司因有一个域名过期导致线上业务受到影响,因此老大要求把公司所有的证书纳入到zabbix监控中!下面贴出配置过程,供大家参考!不足支持欢迎指教监控脚本 cat ssl_check.sh #!/bin/bash #20181219 #获取ssl证书的过期时间 #menghao #获取证书的有效时间 time=$(echo | openssl s_client -connect $1:443 2>/dev/null | openssl x509 -noout -dates |awk -F'=' 'N

zabbix企业应用:监控Dell Compellent存储设备

本文讲解Zabbix通过SNMP协议监控Dell Compellent存储设备. 本文的监控思路和监控网络设备是一样的:首先确定设备是否支持snmp协议,如果支持的话下一步要拿到设备的私有mib库,一般是向厂家索取或者到网上下载.如果没拿到mib库,设备oid的值没办法确定具体的含义,也就没办法监控了.有了mib库后,导入到mib browser里分析每个oid的含义.最后结合Zabbix进行监控. Dell Compellent存储的mib库下载地址:http://down.51cto.com

在同一个服务器(同一个IP)为不同域名绑定的免费SSL证书

越来越多的浏览器不在支持http协议了,这就要求你为你的网站必须绑定SSL证书.谷歌浏览器也将要在今年取消对http协议的支持,申请CA证书迫在眉睫.我购买有两个域名,一个虚拟机,没事鼓捣鼓捣,图个乐趣.在阿里云申请了免费证书,一直用的好好的.这次过年恰遇证书更新,想一起把所有域名都升级到https.购买两个证书分别绑定域名.顺带说一下如何阿里云购买免费域名,现在已经不太容易找到免费域名购买按钮了. [动图示意购买免费CA] 购买完成,并分别绑定www.a.com和www.b.com 后,访问a

[从零开始搭网站六]为域名申请免费SSL证书(https),并为Tomcat配置https域名所用的多SSL证书

点击下面连接查看从零开始搭网站全系列 从零开始搭网站 由于国内的网络环境比较恶劣,运营商流量劫持的情况比较严重,一般表现为别人打开你的网站的时候会弹一些莫名其妙的广告...更过分的会跳转至别的网站. 那么为了解决这种情况,那么我们就要申请SSL证书,并且配置服务器. 并且,我准备再学习并写一个微信小程序,而微信小程序所有接口都需要走https,那么全线https就势在必行. 目前免费https其实有很多家,我之前出过一个教程是 用Let's Encrypt实现Https(Windows环境+To

zabbix企业应用之监控动作是否有被关闭

当前我监控1000+的服务器,动作有近200个,监控方式有短信.邮件与语音报警电话,如果动作配置有问题或者某个动作被关闭,就会导致某些报警无法触发,不能及时收到报警通知并处理.而且zabbix配置用户权限的时候,如果给某些用户部门管理员的话,他就可以自己修改动作,比如关闭,然后业务出现问题无法报警,虽然可以从zabbix审计里查看(我测试了,很多情况下用户自己关闭动作,审计是看不到的),但扯皮是浪费时间的. 所以我自己写了一个程序判断当前动态是否有被关闭,如果有关闭就使用zabbix通知. 下面