在客户端机器上创建脚本

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

zabbix 监控域名证书到期时间!!!!的更多相关文章

  1. zabbix监控ssl证书到期时间

    监控脚本 cat ssl_check.sh #!/bin/bash # #获取ssl证书的过期时间 #menghao #获取证书的有效时间 time=$(echo | openssl s_client ...

  2. zabbix监控ssl证书过期时间

    获取证书过期时间脚本: /etc/zabbix/scripts/check-cert-expire.sh: #!/bin/bash host=$ port=$ end_date=`/usr/bin/o ...

  3. 查看IOS-app证书到期时间

    参照: iOS企业版证书到期 https://www.jianshu.com/p/44b0dc46ef37 如果不能十分确定每一个打出来的ipa的有效期(过期时间),而又需要关注它具体什么时候需要强制 ...

  4. 查看域名https证书到期时间

    1.通过域名获取: echo | openssl s_client -servername 域名 -connect 域名:443 2>/dev/null | openssl x509 -noou ...

  5. zabbix监控SSL证书有效期

    想给公司网站加上证书的监控,发现agent无此监控项.科普之后发现需要自行添加脚本以及一些操作. 环境信息 系统版本: Ubuntu20.04 zabbix server版本:5.4 (这个自定义貌似 ...

  6. 使用nagios监控ssl证书过期时间

    1.编写监控脚本. # vim check_ssl_expiry.sh #!/bin/bash STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 Host=$1 ...

  7. zabbix监控域名带宽

    代码地址:https://github.com/Ma-Jing/python/blob/master/ngxv2_traffic_daemon.py READ.md里有使用说明! #!/usr/bin ...

  8. 检查阿里云ssl证书到期情况

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-06-10 16:00 # @Author : Anthony.long # ...

  9. shell脚本检查域名证书是否过期

    最近公司的域名准备过期了,防止用户访问的时候出现异常,所以最近我们准备替换相关网站证书为最新的. (一般HTTPS证书有效期为1年,证书过期后或者该证书不是该域名的有效证书时,在浏览器中访问会出现如下 ...

随机推荐

  1. 如何实现一个FormData

    一.前言 最近项目中遇到一个问题,我们需要在cocos项目里去上传音频文件,而cocos原生环境和平时我们开发所在的浏览器环境和Node环境有很多差异,而cocos环境只提供了基础类,没有提供Form ...

  2. web应用部署(Tomcat,springboot部署方式)

    转载自:https://www.cnblogs.com/haimishasha/p/10791454.html 核心内容 1.在Tomcat中有四种部署Web应用的方式,分别是: (1)利用Tomca ...

  3. Java数据结构-01顺序表

    一.定义 线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列. 二.存储分类 1.顺序存储: ①简述:是指将线性表中的各个元素依次存放在一组地址连续的存储单元中,通常将这种方 ...

  4. STM32入门系列-创建寄存器模板

    介绍如何使用 KEIL5 软件创建寄存器模板, 方便之后使用寄存器方式来操作STM32开发板上的LED,让大家创建属于自己的寄存器工程模板. 获取工程模板的基础文件 首先我们在电脑任意位置创建一个文件 ...

  5. java中常见的六种线程池详解

    之前我们介绍了线程池的四种拒绝策略,了解了线程池参数的含义,那么今天我们来聊聊Java 中常见的几种线程池,以及在jdk7 加入的 ForkJoin 新型线程池 首先我们列出Java 中的六种线程池如 ...

  6. DM存储过程示例子-表的行数对比

    1.DM存储过程示例子,表的行数对比 1 --1. ================全量 2 --select * from DM_VERI where c2 != c3; 3 --drop tabl ...

  7. 痞子衡嵌入式:基于恩智浦i.MXRT1060的MP4视频播放器(RT-Mp4Player)设计

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是基于i.MXRT1062的MP4播放器参考设计. i.MXRT1062是恩智浦i.MXRT四位数系列的中端型号,外设搭配上很均衡,辅以6 ...

  8. 【Jmeter】Jmeter安装配置教程

    jmeter安装配置教程 1.安装jdk,配置环境变量 进入官网,https://www.oracle.com/downloads/index.html#java,选择 Java (JDK) for ...

  9. flex与bison的学习

    获取bison http://www.gnu.org/software/bison 获取flex http://flex.sourceforge.net/ 本书的范例 ftp://ftp.iecc.c ...

  10. MFC的Static控件文字重叠问题

    写个普通的MFC桌面程序,为了美化界面用了界面库,然后界面上的静态文本就出现了重叠的效果,就像下面这样: 但是窗口被刷新一下就好了,比如被遮挡后恢复的时候.在程序中可以手动加入以下代码: void C ...