通过zabbix监控提醒网址ssl证书过期和网站域名过期未必不是一件好事,省掉过期后的一些麻烦。

一。SSL证书监控(zabbix客户端部署) vi /etc/zabbix/script/ssl_check.sh

#!/bin/bash time=openssl s_client -servername $1 -connect $1:443 2>/dev/null | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2 time1=date +%s -d "$time" time2=$(( $time1 - date +%s)) time3=$(( $time2 / 24 / 3600 )) echo $time3

脚本给执行权限 chmod +x /etc/zabbix/script/ssl_check.sh 编辑zabbix_agent配置文件添加一行 UserParameter=ssl_check[*],/etc/zabbix/script/ssl_check.sh $1

配置完别忘记重启一下zabbix_agent服务 systemctl restart zabbix-agent.service

可以通过命令检测一下,获取网站有ssl证书的到期时间 zabbix_get -s 192.168.100.9 -p 10050 -k ssl_check[www.baidu.com]

成功获取了数据,则可以在zabbix服务端上配置了。 在服务端上--配置--主机--监控项--创建监控项

然后再配置告警小于30天提醒

测试的时候可以把值改成3000,会有相应的告警系统,我这边是调用企业微信通知。 测试完记得改回去哦。

二.域名监控(客户端上配置) vi /etc/zabbix/script/domain_check.sh #/bin/bash time=$(echo | whois $1 |grep 'Registry Expiry Date' |awk '{print $4}'|cut -d 'T' -f 1 ) if [ -z "$time" ] then time=whois $1|grep 'Expiration Time' |awk '{print $3}' fi #有效时间生成时间戳 time1=$(date +%s -d "$time") #当前时间生成时间戳 time2=$(date +%s) #当前时间减去有效时间,获得将要过期的天数 time3=$(((time1-time2)/(606024))) echo $time3

脚本给执行权限 chmod +x /etc/zabbix/script/domain_check.sh 编辑zabbix_agent配置文件添加一行 UserParameter=domain_check[*],/etc/zabbix/script/domain_check.sh $1

配置完别忘记重启一下zabbix_agent服务 systemctl restart zabbix-agent.service

可以通过命令检测一下,获取网站有ssl证书的到期时间 zabbix_get -s 192.168.100.9 -p 10050 -k domain_check[www.baidu.com]

成功获取了数据,则可以在zabbix服务端上配置了。 在服务端上--配置--主机--监控项--创建监控项

就是这么简单。

参考文章: https://www.cnblogs.com/Star-Haitian/p/10483042.html https://blog.51cto.com/bkmaster/2473366?source=dra