在客户端机器上创建脚本

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. 通过两行代码即可调整苹果电脑 Launchpad 图标大小

    之前用 13 寸 Mac 的时候我还没觉得,后来换了 16 寸就发现有点不对劲了.因为 Mac 的高分辨率,当你进入 Launchpad 界面,应用图标的大小可能会让你怀疑:这特么是苹果的设计吗?有点 ...

  2. python机器学习TensorFlow框架

    TensorFlow框架 关注公众号"轻松学编程"了解更多. 一.简介 ​ TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运 ...

  3. canvas生成圆图和微信小程序canvas圆图

    先在HTML中创建 img和canvas并设置id属性 <canvas id="canvas" width="500" height="500& ...

  4. C语言100题集合-ex003

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...

  5. C# Base64解码小工具编写

    1 界面如下 2 关键代码如下 try { var callback = reqStr.Deserialize<dynamic>(); resStr = Newtonsoft.Json.J ...

  6. RabbitMq 基本命令

    rabbitmqadmin 命令汇总: 命令 解释 rabbitmqadmin list users 查看所有用户 User rabbitmqadmin list users name 查看所有用户名 ...

  7. 如何优雅阻止view UI 的 Switch 切换?

    一.官方文档提供的方法 个人觉得官方提供的方法有时候不能够满足现实需求,第二点是view UI版本必须是4.0.0版本及以上才能使用这个开关组件. 二.自定义方法解决 ①将开关禁用掉  加一个 dis ...

  8. 获取List集合对象中某一列属性值

    例:获取disposeList集合中CorpusMarkPage对象中的responseId属性,生成新的List集合 List<String> responseIdList = disp ...

  9. Ubuntu17.10 React Native 环境搭建

    React Native 环境搭建 环境:ubuntu17.10 安装依赖 必须安装的依赖有:Node.React Native 命令行工具以及 JDK 和 Andriod Studio. 安装nod ...

  10. 释放至强平台 AI 加速潜能 汇医慧影打造全周期 AI 医学影像解决方案

    基于英特尔架构实现软硬协同加速,显著提升新冠肺炎.乳腺癌等疾病的检测和筛查效率,并帮助医疗科研平台预防"维度灾难"问题 <PAGE 1 LEFT COLUMN: CUSTOM ...