在某项目中,为了确保系统安全稳定运行,需要对所有 SSL 证书的有效期进行监控。当证书距离到期时间小于 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}
# 添加变量宏
{$KEY}
{$DAY}
# 主机连接模板
# 填写域名和到期前提醒时间,测试验证。
手动执行:
错误信息