想给公司网站加上证书的监控,发现agent无此监控项。科普之后发现需要自行添加脚本以及一些操作。
环境信息
系统版本: Ubuntu20.04
zabbix server版本:5.4 (这个自定义貌似无所谓版本,更取决执行脚本的系统)
zabbix agent:同上
自定义参数
官方文档:
准备脚本
### SSL Certificate Expire Day Check Script ###
if [ "$1" = '' ];then
echo "Need URL."
exit
1;fi
TARGET_URL=$1
EXP_DAY=`openssl s_client -connect ${TARGET_URL}:443 < /dev/null 2> /dev/null | openssl x509 -text 2> /dev/null | grep "Not After" | sed -e 's/^ *//g' | cut -d " " -f 4,5,6,7,8`
NOW_TIME=`date +%s`
EXP_TIME=`date +%s -d "${EXP_DAY}"`
if [ "${EXP_DAY}" != '' -a ${NOW_TIME} -lt ${EXP_TIME} ]; then
echo $(((EXP_TIME-NOW_TIME)/(60*60*24)))
else
echo "ERROR"
exit 1;
fi
这个脚本我看有判断,比一些捡漏的要好一点。
此文件路径 /etc/zabbix/script/ssl_check.sh
这路径关系到agent参数,只要稳妥放哪你看着来。
在agent主机上可以测试下此脚本 执行./ssl_check.sh www.baidui.com
正常可以看到结果哦 一个int数, 脚本ok。不ok的自行科普。
配置agent
上面脚本正常,下面就是配置agent。
vim /etc/zabbix/zabbix_agent.d/ssl_check.sh
内容:
UserParameter=ssl_check[*],/etc/zabbix/script/ssl_check.sh $1
此部分内容会被agent.conf引入。也就是agent会知道这个key怎么操作,key后面是之前定义的shell+参数。
这下其实就一定搞定了主要工作,重启agent后配置zabbix server进行监控了。
重启 systemctl restart zabbix-agent
添加Item
选择一台主机,对其添加监控项item:
键值: 定义的key[网址]
更新间隔: 我觉得这个时间不用太久,所以我选择24小时。
添加完成可以测试一下:
可以看到83, 那我的证书还有83天。
配置Trigger
如果不加Trigger,那即便是0天我也不知道。没人跟我说到期了。
所以我们通过他来触发告警。
创建触发器:
我这里判断30天触发,那就是30天触发之后通过媒介给我发送警报。
配置Aciton
Trigger 负责触发问题,Action来执行通知。
我认定你已经在自己账号上面设置了告警媒介了。
动作-> triggen action -> 创建
通过上面的配置,我就能接收到只有此主机出现的问题,发送到我指定的账户中。这会账户配置了相关的媒介来接收。
到此结束~
祝好!