hardware-dashboard/README.md

2.7 KiB
Raw Blame History

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 与额外认证的反向代理,而不是直接端口映射。