PC Monitor - Windows 电脑监控系统
一个用于监控 Windows 电脑硬件状态的系统,支持监控 CPU、GPU、内存、网络、磁盘和电源等信息。
系统架构
- 客户端: Windows 可执行文件 (.exe),负责采集硬件指标数据
- 服务端: Go 后端 + SQLite 数据库,负责数据存储和 API 服务
- 前端: Vue 3 + Element Plus Web 仪表盘,负责数据展示
- 部署: 服务端支持 Docker 一键部署
快速开始
服务端部署 (Docker)
- 构建并启动服务端:
docker-compose up -d
- 访问 Web 仪表盘:http://localhost:8080
客户端安装 (Windows)
- 下载客户端可执行文件
- 编辑
config.yaml配置文件,设置服务器地址 - 运行客户端:
.\pc-monitor-client.exe
或者安装为 Windows 服务(开机自启):
.\install\install.ps1 -ServerUrl "http://your-server:8080"
开发环境
环境要求
- Go 1.21+
- Node.js 18+
- Docker(可选,用于部署服务端)
编译服务端
cd server
go mod tidy
go build -o server .
编译客户端
cd client
go mod tidy
go build -o pc-monitor-client.exe .
编译前端
cd web
npm install
npm run build
API 接口
设备管理
POST /api/v1/register- 注册新设备GET /api/v1/devices- 获取设备列表GET /api/v1/devices/:id- 获取设备详情DELETE /api/v1/devices/:id- 删除设备POST /api/v1/devices/:id/heartbeat- 设备心跳
指标数据
POST /api/v1/report- 上报指标数据GET /api/v1/devices/:id/metrics/latest- 获取最新指标GET /api/v1/devices/:id/metrics/history- 获取历史指标
告警管理
GET /api/v1/alerts- 获取活跃告警列表POST /api/v1/alerts/rules- 创建告警规则GET /api/v1/devices/:id/alerts/rules- 获取设备告警规则DELETE /api/v1/alerts/rules/:id- 删除告警规则POST /api/v1/alerts/:id/resolve- 解决告警
配置说明
服务端配置 (config.yaml)
server:
addr: ":8080" # 监听地址
database:
path: "./data/monitor.db" # 数据库路径
retention_days: 30 # 数据保留天数
auth:
admin_password: "admin123" # 管理密码
客户端配置 (config.yaml)
server:
url: "http://your-server:8080" # 服务器地址
token: "" # 设备令牌(首次注册后自动生成)
collect:
interval: 30s # 数据采集间隔
report:
interval: 60s # 数据上报间隔
监控指标
| 模块 | 监控内容 |
|---|---|
| CPU | 使用率、温度、每核使用率 |
| 内存 | 总量、已用、使用率 |
| GPU | 使用率、温度、显存(支持 NVIDIA) |
| 磁盘 | 各分区容量、已用空间、使用率 |
| 网络 | 网卡状态、IP 地址、收发流量 |
| 电源 | 电池状态、电量百分比、充电状态 |
项目结构
pc-monitor/
├── client/ # Windows 客户端
│ ├── collector/ # 数据采集模块
│ ├── reporter/ # 数据上报模块
│ └── install/ # 安装脚本
├── server/ # 服务端
│ ├── api/ # API 路由和处理器
│ ├── model/ # 数据模型
│ ├── service/ # 业务逻辑
│ └── repository/ # 数据访问层
├── web/ # 前端源码
│ └── src/
│ ├── views/ # 页面组件
│ └── api/ # API 调用封装
├── docker-compose.yml # Docker 部署配置
└── Dockerfile.server # 服务端镜像构建
许可证
MIT License
Description
Languages
Go
53.6%
Vue
38.4%
PowerShell
4.1%
TypeScript
3%
HTML
0.5%
Other
0.4%