小天管理 发表于 2024年9月1日 发表于 2024年9月1日 项目地址: https://github.com/eryajf/cloud_dns_exporter 项目简介 在我们维护网站的时候,偶尔可能会犯一些相对低级的错误,莫过于忘记更换域名证书而使网站无法访问。然而当我们记得并更换了证书,却又因为遗漏了某些解析而导致网站无法访问。这些都是令人难受的错误。 这个项目,希望能够让你轻松掌握到每个域名解析的证书信息,从而在更换证书时,不会遗漏任何一个解析。 支持多种 DNS 提供商(目前支持阿里云,腾讯云,其他更多,期待有缘人 PR),且支持单提供商多账号管理。 如何使用 可以直接在 Release 发布页面下载二进制,然后更改配置文件,直接运行即可。 默认端口监听在21798,为什么选择这个端口,因为项目对应在 grafana 中的仪表板 ID 就是21798。 你也可以选择使用 docker 部署,部署时把 config.yaml 在本地配置好,然后运行时,通过挂载(-v ./config.yaml:/app/config.yaml)覆盖容器内默认配置即可。 镜像地址: 国外: eryajf/cloud_dns_exporter 国内: registry.cn-hangzhou.aliyuncs.com/eryajf/cloud_dns_exporter 目前应用还提供了-v参数,用于打印当前所使用的版本信息。 一些注意 为了提高请求指标数据时的效率,项目设计为通过定时任务提前将数据缓存的方案,默认情况下,域名及解析记录信息为 30s/次,证书信息在每天凌晨获取一次。如果你想重新获取,则重启一次应用即可。 解析记录的证书信息获取,会受限于不同的网络访问场景,因此请尽可能把本程序部署在能够访问所有解析记录的地方。 很多域名证书可能与域名没有 match ,是因为取到了所在负载服务监听的 443 对应的证书信息,可根据自己的情况选择忽略或进行处理。 如果发现证书获取不准确或错误的情况,请提交 issue 交流。 指标说明 本项目提供指标有如下几项: 名称 说明 domain_list 域名列表 record_list 域名解析记录列表 record_cert_info 解析记录证书信息列表 指标标签说明: <!-- 域名列表 --> domain_list{ cloud_provider="DNS 提供商", cloud_name="云账号名称", domain_id="域名 ID", domain_name="域名", domain_remark="域名备注", domain_status="域名状态", create_time="域名创建时间"} 0 <!-- 域名记录列表 --> 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 仪表板 项目对应的 Grafana Dashboard ID: 21798 概览与域名列表: 解析记录与证书详情列表:
已推荐帖子