跳转到内容
View in the app

A better way to browse. Learn more.

彼岸论坛

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[分享发现] 分享我的开源项目: cloud_dns_exporter。自动获取 DNS 提供商的域名及解析列表,同时自动获取每个域名解析的证书信息

发表于

项目地址: https://github.com/eryajf/cloud_dns_exporter

项目简介

在我们维护网站的时候,偶尔可能会犯一些相对低级的错误,莫过于忘记更换域名证书而使网站无法访问。然而当我们记得并更换了证书,却又因为遗漏了某些解析而导致网站无法访问。这些都是令人难受的错误。

这个项目,希望能够让你轻松掌握到每个域名解析的证书信息,从而在更换证书时,不会遗漏任何一个解析。

支持多种 DNS 提供商(目前支持阿里云,腾讯云,其他更多,期待有缘人 PR),且支持单提供商多账号管理。

如何使用

可以直接在 Release 发布页面下载二进制,然后更改配置文件,直接运行即可。

默认端口监听在21798,为什么选择这个端口,因为项目对应在 grafana 中的仪表板 ID 就是21798

你也可以选择使用 docker 部署,部署时把 config.yaml 在本地配置好,然后运行时,通过挂载(-v ./config.yaml:/app/config.yaml)覆盖容器内默认配置即可。

镜像地址:

目前应用还提供了-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

概览与域名列表:

1725118602116.webp

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

1725118643455.webp

Featured Replies

No posts to show

创建帐户或登录来提出意见

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.