关于 HTTPS 证书的过期巡检监控,还真是百密一疏!仔细复盘,可能我们将注意力都集中在基础设施、基础状态、应用系统、中间件、数据库、链路追踪、日志,以及更高阶的可观测的概念及如何建设上,而忽略了当下,孰不知我们现阶段为监控所做的一切都是在提高系统的可观测性!因此对于监控,即使没有可观测性的加成,也可以使我们的监控系统满足业务日益发展的需要。
“见字如晤,运维自知”中我提到过,运维是一项耐心、细心、持续投入的工作,而且看到大家对于 HTTPS 证书的过期巡检监控都比较关心,所以我们特在此将能实现此需求的工具汇总给大家。
1、blackbox_exporter
Blackbox Exporter 是 Prometheus 社区提供的官方黑盒监控解决方案,其允许用户通过:HTTP、HTTPS、DNS、TCP以及ICMP的方式对网络进行探测。
-
HTTP 测试:
定义 Request Header 信息,判断 HTTP status/HTTP Respones Header/HTTP Body 内容
-
TCP 测试:
业务组件端口状态监听, 应用层协议定义与监听
-
-
-
2、EaseProbe
一个简单、独立、轻量级的工具,可以进行健康/状态检查,使用Go编写。
-
EaseProbe设计用于执行三种工作:
探测、通知和报告
-
支持 HTTP、TCP、SSH、SSL 证书、各种数据库/消息中间件服务探活
-
支持 email、slack、Discord、Telegram、飞书等多渠道的通知
-
支持消息通知和定时发送报表,可以自定义分类告警渠道
3、uptime-kuma
-
监控 HTTP(s)/TCP/HTTP(s)关键字/Ping/DNS记录/推送/Steam Game Server等的正常运行时间
-
支持丰富的通知渠道,如通过 Telegram、Discord、Gotify、Slack、Pushover、电子邮件 (SMTP) 和70 多种通知服务发送通知
-
-
-
-
4、domain-admin
基于 Python + Vue3.js 技术栈实现的域名和 SSL 证书监测平台。
-
domain-admin,开源的域名 SSL 证书监测平台
-
基于 Python + Vue3.js 技术栈实现的域名和 SSL 证书监测平台
-
-
解决不同业务域名 SSL 证书,申请自不同的平台,到期后不能及时收到通知,导致线上访问异常
-
支持平台:
macOS、Linux、Windows
5、接地气的 Shell 监控
# 填写需要监控的域名和端口号
domain="${1:-www.baidu.com}"
port="${2:-443}"
# 获取证书信息
cert_info=$(echo | openssl s_client -servername $domain -connect $domain:$port 2>/dev/null | openssl x509 -noout -dates)
# 提取证书有效期的起止日期
start_date=$(echo "$cert_info" | grep -i "notBefore" | awk -F '=' '{print $2}')
end_date=$(echo "$cert_info" | grep -i "notAfter" | awk -F '=' '{print $2}')
# 将日期转换为时间戳
start_timestamp=$(date -d "$start_date" +%s)
end_timestamp=$(date -d "$end_date" +%s)
current_timestamp=$(date +%s)
# 计算剩余天数
remaining_days=$(( ($end_timestamp - $current_timestamp) / 86400 ))
# 打印证书有效期信息
echo "域名: $domain"
echo "起始日期: $start_date"
echo "结束日期: $end_date"
echo "剩余天数: $remaining_days"
来源:本文转自公众号“木讷大叔爱运维”,
点击查看原文
。
近期好文:
“高效运维”公众号诚邀广大技术人员投稿