Press "Enter" to skip to content

使用zabbix监控https域名证书有效期

zabbix自带的监控模版,是没有https证书有效期监控功能的。对于拥有大量Let's Encrypt免费证书的管理员来说,证书有效期提醒非常重要。因为之前用nagios的时候,是可以监控证书有效期的,所以这里我考虑直接引入nagios的插件“check_http”,创建zabbix自定义监控项来完成这项工作。

二、nagios plugin安装

安装都很简单了,需要注意的是编译安装时需要带上openssl选项。

wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz#_ga=2.161100925.179589927.1534837802-754351232.1526614897
tar -zxf nagios-plugins-2.2.1.tar.gz
yum install -y openssl-devel
cd nagios-plugins-2.2.1
./configure --with-openssl
make && make install

插件默认安装到了 /usr/local/nagios/libexec
我们先观察一下check_http查看证书有效期返回的格式:

./check_http -H www.baidu.com -C 1
SSL OK - Certificate 'baidu.com' will expire on 2019-05-26 13:31 +0800/CST. HTTP OK: HTTP/1.1 200 OK - 912 bytes in 0.038 second response time |time=0.037553s;;;0.000000 size=912B;;;0
-H参数指定主机名,-C参数指定告警阈值,我们可以看到,第9第10列即我们需要的时间。之所以告警阈值设为1,是因为我们不需要在这里配置告警,如果产生告警了会改变输出格式,那么采集的数据就不对了。

三、配置item

新建item配置文件:

cat /etc/zabbix/zabbix_agentd.d/certificate_check.conf
UserParameter=ssl.status[*],/etc/zabbix/zabbix_agentd.d/certificate_check.sh $1

新建检测脚本:

cat /etc/zabbix/zabbix_agentd.d/certificate_check.sh
#!/bin/bash
plugin_dir=/usr/local/nagios/libexec
current_time=`date +%s`
case $1 in
muzifei)
    expr_time=`date -d "$(${plugin_dir}/check_http -t 20 -H www.muzifei.com -u /post/gitlab_update.html -C 1|awk '{print $9,$10}')" +%s`
    expr ${expr_time} - ${current_time}
    ;;
baidu)
    expr_time=`date -d "$(${plugin_dir}/check_http -t 20 -H ww.baidu.com  -C 1|awk '{print $9,$10}')" +%s`
    expr ${expr_time} - ${current_time}
    ;;
qq)
    expr_time=`date -d "$(${plugin_dir}/check_http -t 20 -H www.qq.com -u /evh/api -C 1|awk '{print $9,$10}')" +%s`
    expr ${expr_time} - ${current_time}
esac

到zabbix网页新建item,注意单位选择秒“s”:


注:本文转自https://www.muzifei.com/post/zabbix_check_certificate.html

Be First to Comment

发表回复

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