前言

随着公司项目不断增多,随之开发使用的系统也越来越多,需要对域名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、新建主机

Zabbix6.x监控SSL证书到期时间_SSL证书到期

2、新建监控项

Zabbix6.x监控SSL证书到期时间_zabbix_02

3、新建触发器

Zabbix6.x监控SSL证书到期时间_centos7_03

通过以上步骤域名到期不足30天会触发告警。满足了现有的需求。