前言
随着公司项目不断增多,随之开发使用的系统也越来越多,需要对域名SSL证书进行监控,以防止服务不可用。
环境准备
服务器:centos7.9
安装依赖:yum install bc gcc gcc-c++ openssl -y
zabbix:6.x
脚本准备
出于安全策略,服务并没有开放443端口,因此需要2个参数:域名和端口号
#!/bin/sh
host=$1
port=$2
end_date=`openssl s_client -servername $host -host $host -port $port -showcerts </dev/null 2>/dev/null |
sed -n '/BEGIN CERTIFICATE/,/END CERT/p' |
openssl x509 -text 2>/dev/null |
sed -n 's/ *Not After : *//p'`
if [ -n "$end_date" ]
then
end_date_seconds=`date '+%s' --date "$end_date"`
now_seconds=`date '+%s'`
echo "($end_date_seconds-$now_seconds)/24/3600" | bc
fi
zabbix配置
1、将上述脚本重命名为check_ssl.sh,放置在/etc/zabbix/scripts目录下,并更改执行权限chmod +x check_ssl.sh
2、配置Zabbix_agent.conf文件,增加以下内容
UserParameter=check_ssl[*],/ect/zabbix/scripts/check_ssl.sh $1 $2
3、重新启动zabbix
zabbix web页面配置
1、新建主机
2、新建监控项
3、新建触发器
通过以上步骤域名到期不足30天会触发告警。满足了现有的需求。