Skip to content

HUGHNew/SimplePanel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

服务器状态记录系统

这是一个C/S架构的服务器状态监控系统,用于收集和展示多台Linux服务器的系统状态信息。

功能特点

  • 客户端定时采集并发送系统状态信息(CPU、GPU、内存、磁盘)
  • 服务器端接收数据并以JSON格式存储
  • 提供Web界面展示服务器状态:
    • 所有服务器的最新状态概览
    • 各服务器的历史状态记录
  • 使用颜色编码(绿色、黄色、红色)标记服务器状态级别

系统架构

客户端 (Client)

  • 使用纯Python标准库实现,无第三方依赖
  • 通过HTTP协议发送数据到服务器
  • 采集以下系统信息:
    • CPU使用率
    • GPU使用率(如果有NVIDIA GPU)
    • 内存使用情况
    • 磁盘使用情况

服务器端 (Server)

  • 使用FastAPI框架构建
  • 使用Jinja2模板引擎生成HTML页面
  • 数据以JSON格式存储在data/<hostname>/<datetime>.json
  • 通过watch.py在终端查看当前状态

安装与使用

服务器端安装

  1. 克隆或下载代码
  2. 安装依赖:
pip install fastapi uvicorn jinja2
  1. 启动服务器:
uvicorn main:app --host 0.0.0.0 --port 8000
  1. [可选] 终端查看状态:
# 1. TUI
python3 watch.py

# 2. Web
lynx "http://localhost:8000"

客户端安装

  1. 复制client.py到需要监控的服务器
  2. 启动客户端:
python client.py "your_server_url"

Web界面

服务器端提供以下页面:

  • / - 主页,显示所有服务器的最新状态概览
  • /history - 显示所有被监控服务器的列表
  • /server/{hostname} - 显示特定服务器的历史状态记录

目录结构

.
├── client.py          # 客户端脚本
├── server.py          # 服务器端脚本
├── data/              # 数据存储目录
│   └── hostname/      # 按主机名分类的数据
│       ├── latest.json           # 最新状态数据
│       └── yyyy-mm-dd_HH-MM-SS.json  # 历史数据
└── templates/         # HTML模板
    ├── base.html
    ├── index.html
    ├── history.html
    └── server_detail.html

自定义和扩展

添加新的监控指标

要在客户端添加新的指标:

  1. SystemStatsCollector类中添加新的采集方法
  2. collect_stats方法中包含新指标
  3. 更新服务器端模板以显示新指标

About

Simple Panel for server monitor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published