Skip to content
Carry-RaoPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

服务器监控面板

基于 Cloudflare Workers + KV 实现的轻量级服务器状态监控面板,支持48小时状态可视化、容器状态监控、系统资源(CPU/内存)监控,简洁美观的暗色界面,开箱即用。

功能特性

  • 📊 48小时状态时序图:直观展示服务器连续运行状态
  • 🖥️ 容器监控:自动识别Docker容器状态,支持自定义容器名称映射
  • 📈 资源监控:实时展示CPU、内存使用率
  • 🔴 状态分级:正常/警告/异常三色状态自动标记
  • 🔐 安全上报:API密钥鉴权,仅允许授权设备上报数据
  • 📱 响应式设计:支持手机、电脑等多设备访问
  • ⚡ 无成本部署:基于Cloudflare免费版即可完整运行

部署教程

1. 前置准备

2. 创建KV命名空间

  1. 进入 Cloudflare 控制台 → 左侧菜单 Workers & Pages → KV
  2. 点击 Create a namespace,创建命名空间(例如:monitor-kv)

3. 部署Worker

  1. 创建新的 Worker,粘贴完整代码
  2. 绑定 KV 命名空间:
    • 进入 Worker 设置 → Variables → KV Namespace Bindings
    • 添加绑定,变量名填写 KV,选择刚才创建的命名空间
  3. 添加环境变量:
    • 变量名:API_KEY
    • 值:自定义一个密钥(用于数据上报鉴权)

4. 配置容器名称映射

修改代码中的 nameMap 对象,将你的容器名称替换为中文/图标别名:

const nameMap = {
    "容器名称": "图标+自定义名称",
    "picoclaw": "🦞龙虾",
    "cloudreve": "🗄️网盘",
    // 可自行增删
};

数据上报

上报地址

POST https://你的worker域名/update

请求头

Content-Type: application/json
x-api-key: 你的API_KEY

请求体格式

{
    "timestamp": 1718888888,
    "cpu_usage": "25",
    "mem_usage": "40",
    "containers": [
        {
            "name": "cloudreve",
            "status": "Up 2 hours",
            "restarts": 0
        }
    ]
}

自动上报脚本(Linux)

将upload.sh脚本上传到服务器, 并修改API_KEY,WORKER_URL两个变量的值。

# 在你的宿主机上
scp upload.sh 用户@你的服务器IP:目录
# 登录服务器并修改
ssh 用户@你的服务器IP
vim upload.sh

添加定时任务(每小时执行一次):

chmod a+x monitor.sh
sudo crontab -e
# 在文件末尾添加一行
0 * * * * /root/monitor.sh

请确保你的服务器有以下依赖:

  • bash
  • curl
  • coreutils
  • grep
  • sed
  • awk
  • docker 建议先测试一下脚本是否能正常运行,再添加到定时任务中。

状态说明

时序图颜色

  • 🟢 绿色:CPU<30%、内存<50%、无异常容器 → 正常
  • 🟡 橙色:CPU 30%-60%、内存 50%-70%、少量异常 → 警告
  • 🔴 红色:CPU>60%、内存>70%、多个异常容器 → 异常
  • ⚫ 灰色:无数据/未上报

容器状态

  • 运行中、正常停止、异常退出、重启中、已暂停、已失效等

自定义配置

  • 修改监控时长:调整 TIMES_LIMIT 数值(单位:小时)
  • 修改阈值:修改 getStatus() 中的CPU、内存警戒值
  • 修改界面样式:直接编辑 render() 函数内的CSS样式
  • 新增容器:在 nameMap 中添加键值对即可

注意事项

  1. Cloudflare KV 免费版有请求次数限制,日常监控完全够用
  2. 上报间隔建议1小时一次,避免频繁请求
  3. 首次部署需等待第一次上报后才会显示数据

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages