hardware-dashboard/README.md

59 lines
2.7 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、内存、双 P100 显卡、磁盘 SMART、性能历史曲线、硬件问题记录和定时任务管理。后端只使用 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、GPU UUID 和磁盘名改成当前服务器的实际值。修改后重启监控采集服务。定时任务管理服务首次初始化会生成独立管理员密码文件;不要把生成的密码、任务数据库、日志或系统配置哈希提交到仓库。
## 安全边界
- 监控页面本身是只读的,可查看状态、曲线和日志。
- 定时任务能以 root 身份执行命令,新增、编辑、启用和立即执行均需要任务管理员登录。
- 不要把这个服务直接暴露到公网。当前设计只适合可信局域网。
- 远程访问应通过可信 VPN 或带 HTTPS 与额外认证的反向代理,而不是直接端口映射。