Zabbix监控万物4--监控SSL证书有效期

背景

项目需要,需要监控所有的SSL证书的有效期,因此需要自定义一个监控项

实现

使用自定义脚本

创建自定义脚本

在Zabbix的scripts目录(/etc/zabbix/scripts/)下创建一个新的shell脚本check_ssl.sh,内容如下

1
2
3
4
#!/bin/bash
time=$(echo | openssl s_client -connect $1:443 2>/dev/null | openssl x509 -noout -dates |awk -F'=' 'NR==2{print $2}')
times=$((($(date +%s -d "$time")-$(date +%s))/(60*60*24)))
echo $times

修改agent配置文件

1
UserParameter=check_ssl[*],/etc/zabbix/scripts/check_ssl.sh $1

在Zabbix console中配置

创建如下item
name值为SSL certification expire date of
key值为check_ssl[domain]
都需要填入自己要监控的domain

在latest data中即可看到具体的有效期

使用agent2自带的插件

参考文章:https://www.zabbix.com/integrations/ssl
我们需要使用Website certificate by Zabbix agent 2这一个模版

配置宏变量

查看具体的item

修改item以适应多个domain

有时候我们需要监控不止一个domain,而是很多个domain,这时候这个item就显得有点不够了,这时候我们就需要用到LLD,动态创建多个domain的监控
具体操作如下

更新频率不需要太久,因为ssl不可能一直变,这个key的话,需要在agent中配置一个自定义脚本,通过脚本返回所有需要监控的domain

item propetype的话,跟之前在item中的保持一致即可
这样我们就可以在zabbix中动态获取所有的domain并一次性监控,不需要创建很多个item了