51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

|-----|------------------------------------------------------| | 1 2 | 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

|---|-----------------------------------------------------------------------------------------------| | 1 | 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/ https://down.whsir.com/downloads/zabbix.repo

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

3、安装zabbix-agent4.0
yum install zabbix-agent

|---|--------------------------| | 1 | yum install zabbix-agent |

4、启动zabbix-agent
systemctl enable zabbix-agent systemctl start zabbix-agent

|-----|------------------------------------------------------------| | 1 2 | systemctl enable zabbix-agent systemctl start zabbix-agent |

5、配置ssl检测
mkdir /etc/zabbix/script cd /etc/zabbix/script

|-----|------------------------------------------------| | 1 2 | mkdir /etc/zabbix/script cd /etc/zabbix/script |


vi ssl_certificates_check.sh

|---|------------------------------| | 1 | 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

|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 | #!/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

|---|------------------------------------| | 1 | chmod +x ssl_certificates_check.sh |

添加一个userparameter_ssl_certificates_check.conf文件
vi /etc/zabbix/zabbix_agentd.d/userparameter_ssl_certificates_check.conf

|---|--------------------------------------------------------------------------| | 1 | vi /etc/zabbix/zabbix_agentd.d/userparameter_ssl_certificates_check.conf |


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

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

6、重启zabbix-agent
systemctl restart zabbix-agent

|---|--------------------------------| | 1 | systemctl restart zabbix-agent |

7、使用zabbix-get检测配置
yum install zabbix-get

|---|------------------------| | 1 | yum install zabbix-get |


zabbix_get -s 127.0.0.1 -p 10050 -k ssl_check[blog.whsir.com]

|---|-----------------------------------------------------------------| | 1 | 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

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

恢复表达式设置ssl证书大于30天恢复警告
{ssl_certificates_check:ssl_check[blog.whsir.com].last()}>30

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


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


至此ssl证书监控配置完成,后续可以搭配邮件功能进行邮件报警

赞(0)
未经允许不得转载:工具盒子 » zabbix4.0监控ssl证书到期