通过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