hardware-dashboard/README.md

59 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hardware Dashboard
这是运行在 192.168.1.37 上的局域网设备监控与维护面板。页面提供 CPU、内存、NVIDIA 显卡、磁盘 SMART、性能历史曲线、硬件问题记录和定时任务管理。支持在网页选择使用 1 张或 2 张显卡,支持夜间关机与 RTC 定时唤醒。后端只使用 Python 标准库;前端使用原生 HTML、CSS 和 JavaScript,不依赖外部 CDN。
当前访问地址是 http://192.168.1.37:8090。定时任务可以执行服务器命令,必须使用独立的管理员账号登录。该账号与 SSH root 密码相互独立。
## 目录结构
```
.
├── server.py # 监控网页、实时指标和历史数据 API
├── task_core.py # 定时任务定义、校验和 systemd 管理
├── taskd.py # root 侧任务管理服务
├── task_exec.py # 单个任务的执行器和输出记录
├── static/ # 前端页面、样式和脚本
├── scripts/hwlog # 硬件事件采集与命令行查看工具
├── config/
| └── hardware-watch.example.json
├── deploy/systemd/ # dashboard、taskd 和硬件采集服务文件
├── deploy/journald/ # 原始内核日志持久化配置
├── docs/DEPLOYMENT.zh-CN.md # 服务器部署与技术说明
└── tests/ # 自动化测试
```
## 本地检查
项目只需要 Python 3.12 或更新版本,没有第三方 Python 依赖。
```
python -m unittest discover -s tests -p "test_*.py" -v
python -m py_compile server.py task_core.py taskd.py task_exec.py scripts/hwlog
```
如需本地启动网页:
```
python server.py --host 127.0.0.1 --port 8090
```
服务器上的完整部署方式、文件路径、权限、任务管理和维护命令见 docs/DEPLOYMENT.zh-CN.md。
## 服务器配置
仓库中不保存真实硬件基准配置和任务管理凭据。部署前复制示例配置:
```
sudo cp config/hardware-watch.example.json /etc/hardware-watch.json
sudo nano /etc/hardware-watch.json
```
把 expected_gpu_count 和磁盘名改成当前服务器的实际值。若经常更换显卡,将 expected_gpu_uuids 设为空列表;也可在“计算显卡”卡片选择数量并保存。网页设置通过现有管理员登录验证,保存后同步到硬件采集器,重启后仍有效。定时任务管理服务首次初始化会生成独立管理员密码文件;不要把生成的密码、任务数据库、日志或系统配置哈希提交到仓库。
## 安全边界
- 状态、曲线和日志无需登录;修改显卡数量需要管理员登录。
- 定时任务能以 root 身份执行命令,新增、编辑、启用和立即执行均需要任务管理员登录。
- 不要把这个服务直接暴露到公网。当前设计只适合可信局域网。
- 远程访问应通过可信 VPN 或带 HTTPS 与额外认证的反向代理,而不是直接端口映射。