用cloudflare worker搭建 vps探针+网站检测 面板 免服务器

用cloudflare worker搭建 vps探针+网站检测 面板,部署简单,不需要服务器,只需要一个cf账号。

写在前面:这个项目只是抛砖引玉,大家玩玩就好,千万不要当主力探针使用!本人非程序员,能力有限,有实力大佬们可以多多接力。

体验地址:https://vps-monitor.abo-vendor289.workers.dev/

项目地址:https://github.com/kadidalax/cf-vps-monitor
自己用manus和roo code鼓捣出来的小玩意,欢迎star。

前端:

ff4e8ac1-eb33-4776-89ca-ee026df536f5

后台:

c63ede1c-2299-4d3e-9d2a-e5806dc6473b

VPS端:

d10a83f2-17c1-4523-8f79-03bb1ce77e1f

VPS 监控面板 (Cloudflare Worker + D1 版) - 部署指南

这是一个部署在 Cloudflare Workers 上的简单 VPS 监控面板,使用 Cloudflare D1 数据库存储数据。本指南将引导你通过 Cloudflare 网页控制面板 完成部署,无需使用命令行工具。

先决条件

  • 一个 Cloudflare 账户。

部署步骤

1. 创建 D1 数据库

你需要一个 D1 数据库来存储面板数据(服务器列表、API 密钥、监控数据等)。

  1. 登录 Cloudflare 控制面板。
  2. 在左侧菜单中,找到并点击 存储和数据库
  3. 在下拉菜单中,选择 D1 SQL 数据库
  4. 点击 创建数据库
  5. 为数据库命名(例如 vps-monitor-db),然后点击 创建
  6. 重要:初始化数据库表
    • 数据库创建后,你会看到数据库的概览页面。点击 控制台 标签页。
    • 复制下面的第一段 SQL 命令,粘贴到控制台的输入框中,然后点击 执行
    CREATE TABLE IF NOT EXISTS admin_credentials (
      username TEXT PRIMARY KEY,
      password TEXT NOT NULL
    );
    
    • 复制下面的第二段 SQL 命令,粘贴并点击 执行
    CREATE TABLE IF NOT EXISTS servers (
      id TEXT PRIMARY KEY,
      name TEXT NOT NULL,
      description TEXT,
      api_key TEXT NOT NULL UNIQUE,
      created_at INTEGER NOT NULL,
      sort_order INTEGER
    );
    
    • 复制下面的第三段 SQL 命令,粘贴并点击 执行
    CREATE TABLE IF NOT EXISTS metrics (
      server_id TEXT PRIMARY KEY,
      timestamp INTEGER,
      cpu TEXT,
      memory TEXT,
      disk TEXT,
      network TEXT,
      FOREIGN KEY(server_id) REFERENCES servers(id) ON DELETE CASCADE
    );
    
    • 现在你的数据库表结构已经准备好了。

2. 创建并配置 Worker

接下来,创建 Worker 并将代码部署上去。

  1. 在左侧菜单中,点击 计算(Workers),选择 Workers & Pages
  2. 在概览页面,点击 创建
  3. 选择 Start with Hello World!点击开始使用
  4. 为你的 Worker 命名(例如 vps-monitor-worker),确保名称可用。
  5. 点击 部署
  6. 部署完成后,点击 编辑代码 进入 Worker 编辑器。
  7. 删除编辑器中现有的所有代码
  8. 打开本仓库的 worker.js 文件,复制其全部内容。
  9. 将复制的代码粘贴到 Cloudflare Worker 编辑器中。
  10. 点击编辑器右上角的 部署 按钮。

3. 绑定 D1 数据库到 Worker

Worker 需要访问你之前创建的 D1 数据库。

  1. 在 Worker 的管理页面(编辑代码页面上方有 Worker 名称,点击它可以返回管理页面),选择 设置 标签页。
  2. 在设置页面中,选择 绑定 子菜单。
  3. 选择D1数据库
  4. 在 变量名称 处输入 DB (必须大写)。
  5. 在 D1 数据库 下拉菜单中,选择你之前创建的数据库 (例如 vps-monitor-db)。
  6. 点击 部署

4. 设置触发频率(检测网站用)

  1. 在 Worker 的管理页面选择 设置 标签页。
  2. 在设置页面中,选择 触发事件 子菜单。
  3. 点击添加,选择Cron触发器
  4. 选择计划,执行 Worker 的频率选择小时,下面的框填入1(即每整点检测一次网站)。
  5. 点击添加

5. 访问面板

部署和绑定完成后,你的监控面板应该可以通过 Worker 的 URL 访问了。

  • 在设置页面你会看到一个 .workers.dev 的 URL,例如 vps-monitor.abo-vendor289.workers.dev
  • 在浏览器中打开这个 URL,你应该能看到监控面板的前端界面。

使用面板

1. 初始登录

  1. 访问你的 Worker URL。
  2. 点击页面右上角的 登录 或直接访问 /login 路径 (例如 https://vps-monitor.abo-vendor289.workers.dev/login)。
  3. 使用默认凭据登录:
    • 用户名: admin
    • 密码: admin
  4. 登录后,建议立即修改密码。

2. 添加服务器

  1. 登录后台后,你应该会看到管理界面。
  2. 找到添加服务器的选项。
  3. 输入服务器的名称和可选的描述。
  4. 点击 保存
  5. 面板会自动生成一个唯一的 服务器 ID 和 API 密钥请记下这个 服务器ID 和 API 密钥,部署 Agent 时需要用到。

3. 部署 Agent (探针)

Agent 是一个需要在你的 VPS 上运行的脚本,用于收集状态信息并发送回面板。

有两种方式安装Agent脚本:

第一种是直接从后台复制带有参数的命令一键安装(推荐)
11e3c3bf-84c1-41ec-ae67-310c566830b3

第二种是:下载脚本并运行:

wget https://raw.githubusercontent.com/kadidalax/cf-vps-monitor/main/cf-vps-monitor.sh -O cf-vps-monitor.sh && chmod +x cf-vps-monitor.sh && ./cf-vps-monitor.sh

或者下载脚本并运行:

curl -O https://raw.githubusercontent.com/kadidalax/cf-vps-monitor/main/cf-vps-monitor.sh && chmod +x cf-vps-monitor.sh && ./cf-vps-monitor.sh
  • 安装需要 API密钥 服务器ID 你的 worker网址 和上报间隔(和后台的更新频率设置最好保持一致)`
  • 可以在后台点击 查看密钥 来获取上述前三个参数
  • 按照提示输入安装完成后,Agent 会开始定期向你的面板发送数据。你应该能在面板上看到对应服务器的状态更新。

4. Agent 管理

安装脚本本身也提供了管理功能:

  • 安装服务:
  • 卸载服务:
  • 查看状态:
  • 查看日志:
  • 停止服务:
  • 重启服务:
  • 修改配置:

5. 添加检测网站

  1. 登录后台后,你应该会看到管理界面。
  2. 点击添加监控网站
  3. 输入网站名称(可选)网站URL 如(https://example.com)
  4. 点击保存

6. 配置Telegram 通知

  1. BotFather创建bot并获取Bot Token
  2. @userinfobot获取自己的ID
  3. 将上述两项分别填入。
  4. 启用通知,点击保存Telegram设置

注意事项

  • Worker 和 D1 每日配额: Cloudflare Worker 和 D1 免费额度有限。详情请查阅 Cloudflare 文档。
  • 安全性: 默认密码 admin 非常不安全,请务必在首次登录后修改。Agent 使用的 API 密钥也应妥善保管。
  • 错误处理: 如果面板或 Agent 遇到问题,可以检查 Worker 的日志(在 Cloudflare 控制面板 Worker 页面)和 Agent 的日志。
  • 以上所有内容和代码均为AI生成,出现问题请直接拿着代码找AI吧。
THE END