添加域名ssl证书过期时间监控
1.cd /usr/local/zabbix/scripts 目录下
创建如下脚本(check-cert-expire.sh):
#!/bin/sh
host=$1port=$2end_date=`openssl s_client -servername $host -host $host -port $port -showcerts </dev/null 2>/dev/null | sed -n '/BEGIN CERTIFICATE/,/END CERT/p' | openssl x509 -text 2>/dev/null | sed -n 's/ *Not After : *//p'`# openssl 检验和验证SSL证书。# -servername $host 因一台主机存在多个证书,利用SNI特性检查# </dev/null 定向标准输入,防止交互式程序Hang。从/dev/null 读时,直接读出0 。# sed -n 和p 一起使用,仅显示匹配到的部分。 //,// 区间匹配。# openssl x509 -text 解码证书信息,包含证书的有效期。if [ -n "$end_date" ]then end_date_seconds=`date '+%s' --date "$end_date"` now_seconds=`date '+%s'` echo "($end_date_seconds-$now_seconds)/24/3600" | bcfi2.cd /usr/local/zabbix/conf/zabbix_agentd目录下
创建如下自定义参数配置文件(userparameter_ssl_check_expire.conf):
|
1
|
UserParameter=check_ssl_cert_expire[*],/bin/bash /usr/local/zabbix/scripts/check-cert-expire.sh $1 $2 |
可以使用sh+脚本+域名+443端口进行测试
sh check-cert-expire.sh mj0001.mjshxiaochengxu.top 443
3.重启zabbix agent
|
1
2
3
4
5
6
7
8
9
10
|
#kill zabbix进程pkill zabbix# 配置文件软链接ln -s /usr/local/zabbix/conf/zabbix_agentd.conf /usr/local/etc/zabbix_agentd.conf#启动命令启动zabbix agent/usr/local/zabbix/sbin/zabbix_agentd#查看启动日志tail -f /data/logs/zabbix/zabbix_agentd.log#检查端口服务netstat -ntlp |
4.zabbix server端找到对应主机
1)创建监控项(目前没有做到自动发现) 进入该目录找到相应的证书域名 /usr/local/nginx/conf/ssl
一个域名对应一个https端口
键值如下:check_ssl_cert_expire[www.mjshenghuo.com,443]

时间间隔可调大
2)创建触发器
一个触发器对应一个监控项键值
名称:{HOSTNAME}的域名www.qqsk.com的ssl证书还有{ITEM.LASTVALUE}天过期
严重性:一般严重
表达式如下:{weilaili-nj-java-mysql-01:check_ssl_cert_expire[www.mjshenghuo.com,443].last()}<60


浙公网安备 33010602011771号