First Commit

This commit is contained in:
CN-JS-HuiBai
2026-04-04 15:13:32 +08:00
commit e69424dab2
14 changed files with 3927 additions and 0 deletions

78
README.md Normal file
View File

@@ -0,0 +1,78 @@
# 数据可视化展示大屏
多源 Prometheus 服务器监控展示大屏,支持对接多个 Prometheus 实例,实时展示所有服务器的 CPU、内存、磁盘、网络等关键指标。
## 功能特性
- 🔌 **多数据源管理** - MySQL 存储配置,支持对接多个 Prometheus 实例
- 📊 **NodeExporter 数据查询** - 自动聚合所有 Prometheus 中的 NodeExporter 数据
- 🌐 **网络流量统计** - 24 小时网络流量趋势图,总流量统计
-**实时带宽监控** - 所有服务器网络带宽求和,实时显示
- 💻 **资源使用概览** - CPU、内存、磁盘的总使用率和详细统计
- 🖥️ **服务器列表** - 所有服务器的详细指标一览表
## 快速开始
### 1. 环境要求
- Node.js >= 16
- MySQL >= 5.7
### 2. 配置
复制环境变量文件并修改:
```bash
cp .env.example .env
```
编辑 `.env` 文件,配置 MySQL 连接信息:
```env
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=display_wall
PORT=3000
```
### 3. 初始化数据库
```bash
npm run init-db
```
### 4. 安装依赖并启动
```bash
npm install
npm run dev
```
访问 `http://localhost:3000` 即可看到展示大屏。
### 5. 配置 Prometheus 数据源
点击右上角的 ⚙️ 按钮,添加你的 Prometheus 地址(如 `http://prometheus.example.com:9090`)。
## 技术栈
- **后端**: Node.js + Express
- **数据库**: MySQL (mysql2)
- **数据源**: Prometheus HTTP API
- **前端**: 原生 HTML/CSS/JavaScript
- **图表**: 自定义 Canvas 渲染
## API 接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/sources` | 获取所有数据源 |
| POST | `/api/sources` | 添加数据源 |
| PUT | `/api/sources/:id` | 更新数据源 |
| DELETE | `/api/sources/:id` | 删除数据源 |
| POST | `/api/sources/test` | 测试数据源连接 |
| GET | `/api/metrics/overview` | 获取聚合指标概览 |
| GET | `/api/metrics/network-history` | 获取24h网络流量历史 |
| GET | `/api/metrics/cpu-history` | 获取CPU使用率历史 |