1.cd /usr/local/zabbix/scripts 目录下
创建如下脚本(check-cert-expire.sh):
1
2
3
4
5
6
7
8
9
10
11
|
#/bin/bash
host=$1
port=$2
end_date=`openssl s_client -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'
`
if
[ -n
"$end_date"
]
then
end_date_seconds=`
date
'+%s'
--
date
"$end_date"
`
# date指令format字符串时间。
now_seconds=`
date
'+%s'
`
echo
"($end_date_seconds-$now_seconds)/24/3600"
|
bc
fi
|
2.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
|
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端找到对应主机
扫描二维码关注公众号,回复:
2443595 查看本文章
1)创建监控项(目前没有做到自动发现)
一个域名对应一个https端口
键值如下:check_ssl_cert_expire[www.mjshenghuo.com,443]
时间间隔可调大
2)创建触发器
一个触发器对应一个监控项键值
名称:{HOST.NAME}的域名www.mjshenghuo.com的ssl证书将在60天后过期时间
严重性:一般严重
表达式如下:{weilaili-nj-java-mysql-01:check_ssl_cert_expire[www.mjshenghuo.com,443].last()}<60