
muxinc/certificate-expiry-monitor本镜像是一个轻量级工具,用于将TLS证书的过期时间转换为Prometheus兼容指标,帮助用户实时监控证书有效期。通过Prometheus采集这些指标,结合Grafana等可视化工具,可实现证书过期预警,确保依赖TLS/SSL的服务(如HTTPS网站、API网关、内部服务等)持续可用。
.crt、.pem)及远程URL(如[***])的证书。将本地证书文件挂载到容器内,指定证书路径进行监控:
bashdocker run -d \ -p 9100:9100 \ # 暴露Prometheus指标端口 -v /path/to/local/certs:/certs \ # 挂载本地证书目录到容器内/certs --name tls-cert-monitor \ your-image-name \ --cert-file /certs/server.crt \ # 容器内证书路径 --metrics-port 9100 \ # 指标暴露端口(默认9100) --check-interval 300 # 检查间隔(秒,默认300)
通过URL检查远程服务的TLS证书(如[***]):
bashdocker run -d \ -p 9100:9100 \ --name tls-cert-monitor \ your-image-name \ --cert-url [***] \ # 远程服务URL(需指定端口,默认443) --metrics-port 9100 \ --timeout 10 # 连接超时时间(秒,默认10)
创建docker-compose.yml文件,配置多证书监控:
yamlversion: '3' services: tls-cert-monitor: image: your-image-name ports: - "9100:9100" volumes: - /path/to/local/certs:/certs # 本地证书目录 command: > --cert-file /certs/server1.crt \ # 监控本地证书1 --cert-file /certs/server2.pem \ # 监控本地证书2 --cert-url [***] \ # 监控远程API证书 --metrics-port 9100 \ --check-interval 600 # 每10分钟检查一次
| 参数 | 说明 | 默认值 |
|---|---|---|
--cert-file | 本地TLS证书文件路径(可重复指定多个) | 无 |
--cert-url | 远程服务URL(格式:host:port) | 无 |
--metrics-port | Prometheus指标暴露端口 | 9100 |
--check-interval | 证书检查间隔(秒) | 300 |
--timeout | 证书获取超时时间(秒) | 10 |
工具暴露的核心指标如下(可通过http://<容器IP>:9100/metrics访问):
| 指标名称 | 类型 | 说明 | 标签示例 |
|---|---|---|---|
tls_certificate_expiry_seconds | Gauge | 证书剩余有效时间(秒) | cert_path="/certs/server.crt"、host="example.com" |
tls_certificate_expiry_days | Gauge | 证书剩余有效天数(四舍五入) | 同上 |
--user指定用户或调整文件权限)。scrape_configs中添加对该容器指标端口(默认9100)的抓取配置,例如:
yamlscrape_configs: - job_name: 'tls-cert-monitor' static_configs: - targets: ['tls-cert-monitor:9100'] # 容器名称或IP:端口
tls_certificate_expiry_days < 30时触发告警),及时通知管理员更新证书。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务