在客户端机器上创建脚本

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. 020_Typora使用

    目录 Typora使用 下载 安装 设置 使用 Typora使用 Typora插入本地图片为本地路径,网络上无法查看,所以建议只插入网络图片. 下载 百度搜索官网 下载 安装 设置 视图->显示 ...

  2. Java编程思想 笔记

    date: 2019-09-06 15:10:00 updated: 2019-09-24 08:30:00 Java编程思想 笔记 1. 四类访问权限修饰词 \ 类内部 本包 子类 其他包 publ ...

  3. Pytorch可视化指定层(Udacity)

    import cv2 import matplotlib.pyplot as plt %matplotlib inline # TODO: Feel free to try out your own ...

  4. FastCGI协议分析

    不知道什么时候,就开始有了让HomeServer支持PHP的念头.于是分析起了FastCGI协议.FastCGI用于WebServer与WebApplication之间的通讯,例如Apache与PHP ...

  5. ts流中的pcr与pts计算与逆运算

    mpeg2ts文件格式中有pcr和pts的概念,其代码含义如下: PCR(Program Clock Reference)--指示系统时钟本身的瞬时值的时间标签称为节目参考时钟标签(PCR). PTS ...

  6. XJOI 7191 Genius ACM

    二分+倍增 题目 题目中的最大校验值应由数组排序后,取出最大值和最小值,次大值和次小值--进行做差平方取和 所以在加入一个新的数时,校验值是不会下降的 那么可以发现,校验值是单调递增的,所以可以用二分 ...

  7. NodeJs 加入Windows开机自启动服务

    首先需要到http://nssm.cc/download/?page=download 下载 nssm,下下来之后是压缩包形式的解压之后,在命令行模式下进入到nssm的目录.之后运行:nssm ins ...

  8. Hadoop调优 | NameNode主备宕机引发的思考

    大家都知道在双十一这些电商大型营销活动期间,电商网站的访问量等是平时的N倍.每当这个时候到来,无论是开发还是运维人员都严阵以待生怕服务出现问题.很不幸,笔者的一个朋友在一家电商公司上班,在双十一时,恰 ...

  9. 教你写个简单到的 Redis Client 框架 - .NET Core

    目录 1,关于 Redis RESP 定义数据类型 2,定义异步消息状态机 3,定义命令发送模板 4,定义 Redis Client 5,实现简单的 RESP 解析 6,实现命令发送客户端 7,如何使 ...

  10. 论文解读 - Relational Pooling for Graph Representations

    1 简介 本文着眼于对Weisfeiler-Lehman算法(WL Test)和WL-GNN模型的分析,针对于WL测试以及WL-GNN所不能解决的环形跳跃连接图(circulant skip link ...