2026-04-11 17:53:11 +08:00
2026-04-11 17:53:11 +08:00
2026-04-11 17:53:11 +08:00
2026-04-07 16:01:29 +08:00
2026-04-04 15:13:32 +08:00
2026-04-09 14:02:58 +08:00
2026-04-06 15:14:49 +08:00
2026-04-07 20:49:03 +08:00
2026-04-09 14:02:58 +08:00

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. 配置与启动

  1. 克隆代码库:git clone https://git.littlediary.cn/CN-JS-HuiBai/PromdataPanel.git
  2. 复制配置文件:cp .env.example .env
  3. 安装依赖:npm install --production
  4. 启动服务: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
No description provided
Readme 6 MiB
2026-04-09 15:12:51 +08:00
Languages
JavaScript 69.3%
HTML 13.7%
CSS 13.6%
Shell 3.4%