默认分类

配置zabbix脚本监测网站SSL证书到期时间

配置zabbix脚本监测SSL证书到期时间

一、配置监测脚本

在执行监测的任意一台zabbix agent主机上配置

  1. 编写证书即将到期时间的脚本

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、创建模板

2022-12-19T01:56:50.png

2、创建监控项,更新间隔不用配置太频繁

2022-12-19T01:57:13.png

3、创建对应监控项的触发器,配置为小于等于15天触发

2022-12-19T01:57:37.png

4、选择脚本所在服务器,应用模板,新增其他主机监控需要重复《步骤一》

2022-12-19T01:57:54.png

This is just a placeholder img.