zabbix监控域名证书期限

前言

zabbix通过自定义key"domain.discovery"发现域名(Json格式),然后自动生成监控项,监控项通过自定义key"https"获取域名证书有效期,若少于30天则出发告警。

说明

名称 作用
domain.txt 域名列表,存放需要监控的域名
get_domain.sh zabbix通过这个脚本发现域名
ssl_check.sh zabbix通过这个脚本获取域名证书有效期

步骤

1、在/usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts下创建domain.txt、get_domain.sh、ssl_check.sh这三个文件
2、创建zabbix自定义监控项

#获取域名domain.txt中的域名
UserParameter=domain.discovery,/usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/get_domain.sh
#检测域名证书过期时间
UserParameter=https[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/ssl_check.sh $1

3、在zabbix配置自动发现规则
在这里插入图片描述
在这里插入图片描述
4、在zabbix配置自动生成监控项
在这里插入图片描述
5、在zabbix配置告警触发器
在这里插入图片描述
6、成功监控
在这里插入图片描述

附件

  • domain.txt
abc.xx.com.cn
rown.xxx.com.cn
  • get_domain.sh
#/bin/bash
file_path=$(dirname $0)
CONFIG_FILE="$file_path/domain.txt"
Check(){
    
    
    grep -vE '(^ *#|^$)' ${CONFIG_FILE} | grep -vE '^ *[a-Z]+' &> /dev/null
    if [ $? -eq 0 ]
    then
        echo Error: ${CONFIG_FILE} Contains Invalid Domain.
        exit 1
    else
        domainarray=($(grep -vE '(^ *#|^$)' ${
     
     CONFIG_FILE} | grep -E '^ *[a-Z]+'))
    fi
}
DomainDiscovery(){
    
    
    length=${
    
    #domainarray[@]}
    printf "{
    
    \n"
    printf  '\t'"\"data\":["
    for ((i=0;i<$length;i++))
      do
         printf '\n\t\t{'
         printf "\"{#DOMAIN}\":\"${domainarray[$i]}\"}"
         if [ $i -lt $[$length-1] ];then
                    printf ','
         fi
      done
    printf  "\n\t]\n"
    printf "}\n"
}
domain(){
    
    
    Check
    DomainDiscovery
}
domain
  • ssl_check.sh
#/bin/bash
#################Version Info#######################
#Author: Bertram
#Create Date:2023-05-31
#Attention: 通过域名获取证书的过期时间
####################################################
#获取证书时间
end_time=`echo |openssl s_client -connect $1:443 2>/dev/null|openssl x509 -noout -dates|awk -F= '/After/{print $2}'`
#把证书时间转换为时间戳
end_timestamp=`date +%s -d "$end_time"`
#获取今天的时间戳
today=`date +%s`
#计算还有证书几天过期
date=$((($end_timestamp - $today)/86400))
echo $date

如有不足的地方请指出!

猜你喜欢

转载自blog.csdn.net/chj_1224365967/article/details/131212024