基于 Cloudflare Workers + KV 实现的轻量级服务器状态监控面板,支持48小时状态可视化、容器状态监控、系统资源(CPU/内存)监控,简洁美观的暗色界面,开箱即用。
- 📊 48小时状态时序图:直观展示服务器连续运行状态
- 🖥️ 容器监控:自动识别Docker容器状态,支持自定义容器名称映射
- 📈 资源监控:实时展示CPU、内存使用率
- 🔴 状态分级:正常/警告/异常三色状态自动标记
- 🔐 安全上报:API密钥鉴权,仅允许授权设备上报数据
- 📱 响应式设计:支持手机、电脑等多设备访问
- ⚡ 无成本部署:基于Cloudflare免费版即可完整运行
- 注册 Cloudflare 账号
- 开通 Workers 和 KV 命名空间功能
- 进入 Cloudflare 控制台 → 左侧菜单 Workers & Pages → KV
- 点击 Create a namespace,创建命名空间(例如:
monitor-kv)
- 创建新的 Worker,粘贴完整代码
- 绑定 KV 命名空间:
- 进入 Worker 设置 → Variables → KV Namespace Bindings
- 添加绑定,变量名填写
KV,选择刚才创建的命名空间
- 添加环境变量:
- 变量名:
API_KEY - 值:自定义一个密钥(用于数据上报鉴权)
- 变量名:
修改代码中的 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
}
]
}将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中添加键值对即可
- Cloudflare KV 免费版有请求次数限制,日常监控完全够用
- 上报间隔建议1小时一次,避免频繁请求
- 首次部署需等待第一次上报后才会显示数据