背景:某项目,需要监控所有证书,过期前7天进行提示。
Zabbix 版本: 6.0.6
Zabbix 部署路径: /usr/local/zabbix
/usr/local/zabbix/share/zabbix/externalscripts/
一、脚本创建:
在zabbix 的externalscripts 目录下创建脚本check_ssl.sh,脚本内容如下。
# vi /usr/local/zabbix/share/zabbix/externalscripts/check_ssl.sh
#!/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
脚本check_ssh.sh授权。
# cd /usr/local/zabbix/share/zabbix/externalscripts/
# chown zabbix:zabbix check_ssh.sh
# chmod 755 check_ssh.sh
二、创建模板,添加监控项。
# 创建 ssl 证书有效期检测模板
#添加外部检查类型监控项
名称:ssl 证书有效期
类型:外部检查
键值:check_ssh.sh[{$KEY}]
信息类型:数字(无正负)
单位:天
更新间隔:1d
创建触发器:
名称:[SSL]{HOST.NAME} ssl证书剩余有效时间不足{$DAY}天
严重等级:警告
表达式:last(/SSL certificate monitoring/check_ssh.sh[{$KEY}])<{$DAY}
三、主机连接”ssl 证书有效期检测”模板,验证。
#主机连接模板
#填写域名和到期前提醒时间,测试验证。
四、验证。
手动执行: