配置zabbix脚本监测网站SSL证书到期时间
配置zabbix脚本监测SSL证书到期时间
一、配置监测脚本
在执行监测的任意一台zabbix agent主机上配置
编写证书即将到期时间的脚本
vim /etc/zabbix/ssl_check.sh
#!/bin/bash
#获取ssl证书的过期时间
#获取证书的有效时间
time=$(echo | openssl s_client -servername $1 -connect $1:$2 2>/dev/null | openssl x509 -noout -dates |awk -F'=' 'NR==2{print $2}')
#有效时间生成时间戳
time1=$(date +%s -d "$time")
#当前时间生成时间戳
time2=$(date +%s)
#当前时间减去有效时间,获得将要过期的天数
time3=$(((time1-time2)/(60*60*24)))
echo $time3
```
注意:网上大部分的脚本都有问题,虽然都能获取到到期时间,但是要注意的是,获取的剩余到期时间并不是很准确。另外,还有个问题,如果有多个二级域名,它们的证书到期时间都不一样,但是脚本检测出来的时间都是一样的。
原因:脚本获取证书时间的时候都没有指定-servername参数,所以才会导致此问题的出现
2、测试证书即将到期时间的脚本
bash ssl_check.sh www.whp666.com 4
225
3.修改脚本执行的权限
chmod a+x /opt/externalscripts/ssl_check.sh
修改配置文件,添加如下行,$1指需要监控的url,$2指对应的端口,默认ssl端口为443
vim /etc/zabbix/zabbix_agent2.conf
...
UserParameter=ssl_check[*],/opt/externalscripts/ssl_check.sh $1 $2
重启zabbix-agent2
sudo systemctl restart zabbix-agent2
在zabbix server端测试
(base) [krsc@node26 externalscripts]$ zabbix_get -s 10.0.0.26 -p 10050 -k ssl_check[whp.whp666.com]
196
(base) [krsc@node26 externalscripts]$ zabbix_get -s 10.0.0.26 -p 10050 -k ssl_check[www.whp666.com]
225
二、控制台创建模板及触发器
1、创建模板
2、创建监控项,更新间隔不用配置太频繁
3、创建对应监控项的触发器,配置为小于等于15天触发
4、选择脚本所在服务器,应用模板,新增其他主机监控需要重复《步骤一》