跳转至

🩺 安装 DNS 健康检查

📝 概述

重要

请先确保已安装 LoadUP-CP 和 Load Proxy,并从 Web 仪表板记录用户账户的 API Token,然后再进行以下操作。

注意

DNS 健康检查可以部署在现有的 LoadProxy 服务器上,或是干净的 VPS 上,只要其他 EdgeHit DNS 实例能够访问 DNS health-check 的 IP,并能够 CURL 到 DNS Healthcheck Web 实例中托管的 health-dns.txt 即可。

!!!tip “提示” 由于 DNS Health-check 不像其他独立安装一样包含 Node-Exporter,因此建议在 Load Proxy 实例中下载并运行。

DNS Healthcheck 是一个模块,用于从 LoadUP-CP 拉取数据,并以 health-dns.txt 形式呈现。它作为 EdgeHit DNS 和 LoadUP 之间的中间件,因为 EdgeHit DNS 只能识别通过 DNS Health-check 呈现的格式。

以下为安装 DNS Healthcheck 并配置 EdgeHit DNS 连接到 DNS Healthcheck(以及绑定 LoadUP 中 Healthcheck UUID)的步骤。


📦 安装 DNS 健康检查

  1. 设置环境变量与密钥

    export REGISTRY_PASSWORD='<密钥>'
    export health_check_api_url='<LoadUP-CP 的域名>'
    export health_check_api_key='<LoadUP-CP 的管理员账户 API Token>'
    

    !!!info “注意” HTTP_AUTH_PASS 是定义 LoadUP-Worker 中 Node-Exporter 的 PSK,如未配置将随机生成。提前设置为 Load Proxy 相同的值可简化加入 Prometheus 目标的流程,不过 LoadUP-Worker 的指标将与 Load Proxy 实例共享相同 job : node

  2. 使用 CURL 下载并运行安装脚本

    bash -c "$(curl -fsSL https://files.ops2.net/edgehit/prod/health-check/deploy/install.sh)"
    
    • 安装完成后,相关信息和管理工具将保存在 /usr/local/loadproxy/health-check/ 目录中,内容如下:

      health-check/
      ├──.env
      ├──install-info.txt
      ├──compose.yml
      ├──bin/
      │ ├── bash 脚本
      │ └── 更多 bash 脚本
      │ └── .....
      
    • .env 包含密钥和配置项

    • install-info.txt 包含安装信息
    • bin/ 目录包含如更新与备份的管理脚本

您可以通过浏览器访问 URL <DNS HealthCheck 域名>:16666/health-dns.txt 来验证安装是否成功,页面应类似如下图所示:

Pic

DNS Health-check 安装完成后,接下来可配置 EdgeHit DNS 连接 DNS Health-check。


🛠️ 编辑 EdgeHit DNS 的环境变量

  1. 编辑 .env 文件

    • 将 DNS 健康检查地址添加到 EdgeHit DNS 的 .env 文件中,使用如下命令:

    cat >> /usr/local/loadproxy/EdgeHit-DNS/.env <<EOF
    EdgeHit DNS_health_check_url=<DNS HealthCheck 域名>:16666/health-dns.txt
    EOF
    

  2. 重新加载 docker-compose 服务:

    /usr/local/loadproxy/EdgeHit-DNS/bin/docker-compose.sh down
    /usr/local/loadproxy/EdgeHit-DNS/bin/docker-compose.sh up -d
    

    注意

    需要使用 /usr/local/loadproxy/EdgeHit-DNS/bin/docker-compose.sh 脚本,而非原生 docker-compose 命令,因为某些 .env 值会通过脚本从预定义目录加载。

安装完成后,您可以在 EdgeHit Controller 中添加 DNS 记录并创建与 DNS 记录对应的 Uptime 跟踪任务。

接着,需要将该任务的 UUID 绑定到 DNS 记录中的 Healthcheck ID。详细说明请参见 配置 DNS 健康检查 部分。