zoukankan      html  css  js  c++  java
  • zabbix 监控域名证书到期时间!!!!

    在客户端机器上创建脚本

    vim /etc/zabbix/zabbix_agentd.d/check-cert-expire.sh

    #!/bin/sh

    host=$1
    port=$2
    end_date=`openssl s_client -servername $host -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'`
    # openssl 检验和验证SSL证书。
    # -servername $host 因一台主机存在多个证书,利用SNI特性检查
    # </dev/null 定向标准输入,防止交互式程序Hang。从/dev/null 读时,直接读出0 。
    # sed -n 和p 一起使用,仅显示匹配到的部分。 //,// 区间匹配。
    # openssl x509 -text 解码证书信息,包含证书的有效期。

    if [ -n "$end_date" ]
    then
    end_date_seconds=`date '+%s' --date "$end_date"`
    now_seconds=`date '+%s'`
    echo "($end_date_seconds-$now_seconds)/24/3600" | bc
    fi

     

    vim /etc/zabbix/zabbix_agentd.d/check_domain_beian.py

    #/usr/bin/env python
    #author:denglei
    #email:dl528888@gmail.com
    import urllib2
    import urllib
    import sys
    import datetime
    import time
    import re
    check_api='https://whois.aliyun.com/whois/domain/?spm=5334.7477273.3.1'%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'

    vim /etc/zabbix/zabbix_agentd.d/userparameter_ssl_check_expire.conf

     UserParameter=ssl[*],/bin/bash /etc/zabbix/zabbix_agentd.d/check-cert-expire.sh $1 $2

    UserParameter=check_domain_beian[*],python /etc/zabbix/zabbix_agentd.d/check_domain_beian.py $1

     

    重启zabbix-agent

    进入zabbix后台配置监控项与触发器

    配置---主机---监控项---添加监控项

    键值: ssl[www.baidu.com,443]

     配置触发器,配置---主机--触发器--添加触发器

    表达式:{Zabbix server:ssl[www.baidu.com,443].last()}<10

  • 相关阅读:
    修复PLSQL Developer 与 Office 2010的集成导出Excel 功能
    Using svn in CLI with Batch
    mysql 备份数据库 mysqldump
    Red Hat 5.8 CentOS 6.5 共用 输入法
    HP 4411s Install Red Hat Enterprise Linux 5.8) Wireless Driver
    变更RHEL(Red Hat Enterprise Linux 5.8)更新源使之自动更新
    RedHat 5.6 问题简记
    Weblogic 9.2和10.3 改密码 一站完成
    ExtJS Tab里放Grid高度自适应问题,官方Perfect方案。
    文件和目录之utime函数
  • 原文地址:https://www.cnblogs.com/iantest/p/9619454.html
Copyright © 2011-2022 走看看