Press "Enter" to skip to content

zabbix4.0监控ssl证书到期

使用zabbix监控网站ssl证书到期,避免由于网站证书到期,而导致网站访问异常!
当前系统Centos7.6,此方式只需要在zabbix-server主机上运行一个zabbix-agent,然后在web页面配置监控所需要的域名即可(任意域名都可以),如果当前主机已经安装好了zabbix-agent,下面前两步可忽略!
注意:网上大部分的脚本都有问题,虽然都能获取到到期时间,但是要注意的是,获取的剩余到期时间并不是很准确。另外,还有个问题,如果有多个二级域名,它们的证书到期时间都不一样,但是脚本检测出来的时间都是一样的。
原因:网上很多脚本获取证书时间的时候都没有指定-servername参数,所以才会导致此问题的出现!!!这是一坑……

1、同步好主机时间

yum -y install ntp
/usr/sbin/ntpdate ntp1.aliyun.com

2、配置zabbix4.0源

官方源(速度有时候很不理想)

rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

或者可以考虑使用清华大学的源

wget -P /etc/yum.repos.d/ http://down.whsir.com/downloads/zabbix.repo

3、安装zabbix-agent4.0

yum install zabbix-agent

4、启动zabbix-agent

systemctl enable zabbix-agent
systemctl start zabbix-agent

5、配置ssl检测

mkdir /etc/zabbix/script
cd /etc/zabbix/script
vi ssl_certificates_check.sh
#!/bin/bash
time=`openssl s_client -servername $1 -connect $1:443 2>/dev/null | openssl x509 -noout -dates 2>/dev/null | grep notAfter | cut -d'=' -f2`
time1=`date +%s -d "$time"`
time2=$(( $time1 - `date +%s`))
time3=$(( $time2 / 24 / 3600 ))
echo $time3

给予执行权限

chmod +x ssl_certificates_check.sh

添加一个userparameter_ssl_certificates_check.conf文件

vi /etc/zabbix/zabbix_agentd.duserparameter_ssl_certificates_check.conf

UserParameter=ssl_check[*],/etc/zabbix/script/ssl_certificates_check.sh $1

6、重启zabbix-agent

systemctl restart zabbix-agent

7、使用zabbix-get检测配置

yum install zabbix-get
zabbix_get -s 127.0.0.1 -p 10050 -k ssl_check[blog.whsir.com]

如果看到正常返回ssl证书到期值,表示配置正确,可以进入web页面进行配置了

8、开始进入web页面配置

配置-主机-创建主机ssl_certificates_check

创建好主机后添加监控项ssl_check $1,注意我这里更新间隔是1d,为了演示效果,建议先配置成30s,后续配置图形无误后,再把这个值改成1d,证书的到期时间毕竟是固定的,如果长期配置成30s的话很浪费资源!

9、创建触发器

触发器的这个时间根据情况自行设置,我这里以30天为单位
问题表现形式设置ssl证书小于等于30天触发警告

{ssl_certificates_check:ssl_check[blog.whsir.com].last()}<=30

恢复表达式设置ssl证书大于30天恢复警告

{ssl_certificates_check:ssl_check[blog.whsir.com].last()}>30

10、添加图形,勾选查看触发器,添加监控项


至此ssl证书监控配置完成,后续可以搭配邮件功能进行邮件报警
注:本文转自https://blog.whsir.com/post-3561.html

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注