English | 简体中文
在我们维护网站的时候,偶尔可能会犯一些相对低级的错误,莫过于忘记更换域名证书而使网站无法访问。然而当我们记得并更换了证书,却又因为遗漏了某些解析而导致网站无法访问。这些都是令人难受的错误。
这个项目,希望能够让你轻松掌握到每个域名解析的证书信息,从而在更换证书时,不会遗漏任何一个解析。
支持多种 DNS 提供商,且支持单提供商多账号管理,同时支持自定义配置文件获取证书信息。
可以直接在 Release 发布页面下载二进制,然后更改配置文件,直接运行即可。
默认端口监听在 21798,为什么选择这个端口,因为项目对应在 Grafana 中的仪表板ID就是 21798。
你也可以选择使用 Docker 部署,部署时把 config.yaml 在本地配置好,然后运行时,通过挂载(-v ./config.yaml:/app/config.yaml)覆盖容器内默认配置即可。
镜像地址:
eryajf/cloud_dns_exporterregistry.cn-hangzhou.aliyuncs.com/eryajf/cloud_dns_exporter目前应用还提供了-v参数,用于打印当前所使用的版本信息。
本项目提供了 docker-compose.yml 配置文件用于快速体验。在启动前,请先在 docker-compose.yml 中配置好你的DNS服务商的AK/SK 相关信息,并确保你的 docker-compose 的版本不低于2.23.0。
然后在docker-compose.yml所在目录下执行以下命令:
docker-compose up -d
不懂docker-compose的用户,可以参考: docker-compose官方教程 或 中文教程
docker-compose.yml 中定义了三个容器,分别是:
cloud_dns_exporter: 用于获取域名和解析/证书信息grafana: 用于展示域名和解析/证书信息prometheus: 用于持久化存储域名和解析/证书信息使用docker-compose.yml启动后,通过 http://localhost:3000 访问 Grafana,使用默认的用户名和密码admin/admin登录。
Grafana 中添加 Prometheus 类型的数据源,地址为 http://prometheus:9090,然后保存。再导入Grafana Dashboard 21798,数据源选择刚才添加的 prometheus 数据源,即可看到 UI 展示效果。
domain_list 指标中域名创建时间和到期时间标签为空的情况。如果发现证书获取不准确或错误的情况,请提交issue交流。
本项目提供指标有如下几项:
| 名称 | 说明 |
|---|---|
build_info | 构建信息 |
domain_list | 域名列表 |
record_list | 域名解析记录列表 |
record_cert_info | 解析记录证书信息列表 |
指标标签说明:
<!-- 构建信息 --> build_info{ version="版本号", git_commit="git提交号", go_version="go版本", os_arch="系统架构", build_time="构建时间"} 1 <!-- 域名列表 --> domain_list{ cloud_provider="DNS提供商", cloud_name="云账号名称", domain_id="域名ID", domain_name="域名", domain_remark="域名备注", domain_status="域名状态", create_data="域名创建日期", expiry_date="域名到期日期"} 99 (此value为域名距离到期的天数) <!-- 域名记录列表 --> record_list{ cloud_provider="DNS提供商", cloud_name="云账号名称", domain_name="域名", record_id="记录ID", record_type="记录类型", record_name="记录", record_value="记录值", record_ttl="记录缓存时间", record_weight="记录权重", record_status="状态", record_remark="记录备注", update_time="更新时间", full_record="完整记录"} 0 <!-- 域名记录证书信息 --> record_cert_info{ cloud_provider="DNS提供商", cloud_name="云账号名称", domain_name="域名", record_id="记录ID", full_record="完整记录", subject_common_name="颁发对象CN(公用名)", subject_organization="颁发对象O(组织)", subject_organizational_unit="颁发对象OU(组织单位)", issuer_common_name="颁发者CN(公用名)", issuer_organization="颁发者O(组织)", issuer_organizational_unit="颁发者OU(组织单位)", created_date="颁发日期", expiry_date="过期日期", cert_matched="与主域名是否匹配", error_msg="错误信息"} 30 (此value为记录的证书距离到期的天数)
项目对应的 Grafana Dashboard ID: 21798
概览与域名列表:

解析记录与证书详情列表:

如果你觉得这个项目对你有帮助,你可以请作者喝杯咖啡 ☕️
| 支付宝 | 微信 |
|---|---|
![]() | ![]() |