9854f478c0ae050ee7c46206a7e7b425ab138d8e
PromdataPanel
多源 Prometheus 服务器监控展示大屏。支持对接多个 Prometheus 实例,实时聚合展示所有服务器的 CPU、内存、磁盘、带宽等关键指标,并提供可视化节点分布图。
功能特性
- 🔌 多数据源管理 - 支持对接多个 Prometheus 实例(Node_Exporter / BlackboxExporter)
- 📊 指标自动聚合 - 自动汇总所有数据源的 NodeExporter 指标,实时计算全网负载
- 🌐 网络流量统计 - 24 小时流量趋势图,实时带宽(Rx/Tx)求和显示
- 🗺️ 节点分布可视化 - 自动识别服务器地理位置,并在全球地图上展示实时连接状态与延迟
- ⚡ 毫秒级实时性 - 深度优化查询逻辑,支持 5s 采集频率的实时动态展示
- 📱 响应式与美学设计 - 现代 UI/UX 体验,支持暗色模式,极致性能优化
快速安装
方式一:一键脚本安装 (推荐)
在 Linux 服务器上,您可以使用以下脚本一键完成下载、环境检测、依赖安装并将其注册为 Systemd 系统服务:
# 下载安装最新版本 (默认 v0.1.0)
VERSION=v0.1.0 curl -sSL https://git.littlediary.cn/CN-JS-HuiBai/PromdataPanel/raw/branch/main/install.sh | bash
方式二:手动安装
1. 环境要求
- Node.js >= 18
- MySQL >= 8.0
- Valkey >= 7.0 (或 Redis >= 6.0)
2. 配置与启动
- 克隆代码库:
git clone https://git.littlediary.cn/CN-JS-HuiBai/PromdataPanel.git - 复制配置文件:
cp .env.example .env - 安装依赖:
npm install --production - 启动服务:
npm start
方式三:更新现有版本
如果您已经安装了本系统,可以使用随附的 update.sh 脚本一键升级到最新代码:
# 进入程序目录
curl -sSL https://git.littlediary.cn/CN-JS-HuiBai/PromdataPanel/raw/branch/main/update.sh | bash
3. 系统初始化
首次运行后,访问 http://your-ip:3000/init.html,按照引导完成 MySQL 数据库和 Valkey 缓存的连接。
使用指引
1. 添加 Prometheus 数据源
点击页面右上角的 ⚙️ 按钮进入设置,添加并测试您的 Prometheus HTTP 地址。
2. Prometheus 采集配置
建议在 prometheus.yml 中设置采集周期为 5s 以实现平滑的实时动态效果:
global:
scrape_interval: 5s
scrape_configs:
- job_name: 'nodes'
static_configs:
- targets: ['your-server-ip:9100']
技术栈
- Runtime: Node.js
- Framework: Express.js
- Database: MySQL 8.0+
- Caching: Valkey / Redis
- Visualization: ECharts / Canvas
- Frontend: Vanilla JS / CSS3
API 接口文档
本项提供了完整的 RESTful API,用于数据采集、系统配置和状态监控。
1. 认证接口 (/api/auth)
POST /api/auth/login: 用户登录POST /api/auth/logout: 退出登录POST /api/auth/change-password: 修改密码 (需登录)GET /api/auth/status: 获取当前登录状态
2. 数据源管理 (/api/sources)
GET /api/sources: 获取所有 Prometheus 数据源及其状态POST /api/sources: 添加新数据源 (需登录)PUT /api/sources/:id: 修改数据源信息 (需登录)DELETE /api/sources/:id: 删除数据源 (需登录)POST /api/sources/test: 测试数据源连接性 (需登录)
3. 指标数据获取 (/api/metrics)
GET /api/metrics/overview: 获取所有服务器的聚合实时指标 (CPU, 内存, 磁盘, 网络)GET /api/metrics/network-history: 获取全网 24 小时流量历史趋势GET /api/metrics/cpu-history: 获取全网 CPU 使用率历史记录GET /api/metrics/server-details: 获取特定服务器的详细实时指标GET /api/metrics/server-history: 获取特定服务器的历史指标数据GET /api/metrics/latency: 获取节点间的实时延迟数据
4. 系统配置与监控
GET /api/settings: 获取站点全局配置POST /api/settings: 修改站点全局配置 (需登录)GET /health: 获取系统健康检查报告 (数据库、缓存、内存等状态)
5. 延迟链路管理 (/api/latency-routes)
GET /api/latency-routes: 获取配置的所有延迟检测链路POST /api/latency-routes: 添加延迟检测链路 (需登录)PUT /api/latency-routes/:id: 修改延迟检测链路 (需登录)DELETE /api/latency-routes/:id: 删除延迟检测链路 (需登录)
6. 实时通信 (WebSocket)
系统支持通过 WebSocket 接收实时推送,默认端口与 HTTP 服务一致:
- 消息类型
overview: 包含聚合指标、服务器在线状态以及地理分布后的延迟链路数据。
LICENSE
MIT License
Description
Releases
3
PromdataPanel-v1.0.0
Latest
Languages
JavaScript
69.3%
HTML
13.7%
CSS
13.6%
Shell
3.4%