Skip to content

vSphere 运维管理平台

一个基于 Vue3 + TypeScript + Element Plus 前端和 Python Flask + SQLite 后端的 vSphere 运维管理平台。

项目截图

功能特性

  • 🖥️ 实时监控 - 监控 vSphere 环境中的虚拟机、主机、数据存储等资源
  • 📊 数据可视化 - 直观的图表展示资源使用情况和性能指标
  • 🔄 自动同步 - 定时同步 vSphere 环境数据,保持信息实时更新
  • 🎯 智能告警 - 基于阈值的告警机制,及时发现异常情况
  • 📱 响应式设计 - 支持桌面和移动设备访问
  • 🔐 安全认证 - 支持用户登录和权限管理

技术栈

前端

  • Vue.js 3 - 渐进式前端框架
  • TypeScript - 类型安全的 JavaScript
  • Element Plus - 基于 Vue 3 的组件库
  • Vite - 快速的前端构建工具
  • Pinia - Vue 3 状态管理库

后端

  • Python 3.9+ - 编程语言
  • Flask - 轻量级 Web 框架
  • SQLite - 轻量级数据库
  • APScheduler - 定时任务调度
  • pyVmomi - vSphere API Python SDK

环境要求

  • Python 3.9+
  • Node.js 18.0+
  • npm 8.0+
  • Docker & Docker Compose(可选,用于容器化部署)

运行方式

方式一:传统运行(手动配置环境)

1. 克隆项目

bash
git clone <repository-url>
cd rsync-vsphere

2. 配置文件准备

bash
# 复制配置文件模板
cp config.ini.template config.ini

# 编辑配置文件,填入你的 vSphere 环境信息
vim config.ini

3. 初始化数据库

bash
cd backend
python init_database_with_vsphere.py

4. 后端环境配置

bash
# 创建虚拟环境
cd backend
python3 -m venv venv

# 激活虚拟环境
source venv/bin/activate  # Linux/Mac
# 或
venv\Scripts\activate     # Windows

# 安装依赖
pip install -r requirements.txt

# 启动后端服务
python app.py

后端服务将在 http://localhost:8000 启动

5. 前端环境配置

bash
# 安装依赖
cd frontend
npm install

# 启动开发服务
# ⚠️ 需要注意.env.development 文件中定义的后端接口地址,VITE_API_BASE_URL
npm run dev

前端服务将在 http://localhost:8080 启动

6. 使用启动脚本(推荐)

项目提供了便捷的启动脚本:

bash
# 启动所有服务
./start_all.sh

# 停止所有服务
./stop_all.sh

7. 手动启动服务

如果不使用启动脚本,可以手动启动:

bash
# 启动后端(在 backend 目录下)
source venv/bin/activate
python app.py

# 启动前端(在 frontend 目录下)
npm run dev

方式二:使用 Docker Compose 运行(推荐)

1. 环境准备

确保系统已安装 Docker 和 Docker Compose:

bash
# 检查 Docker 版本
docker --version
docker-compose --version

2. 克隆项目

bash
git clone <repository-url>
cd rsync-vsphere

3. 配置文件准备

bash
# 复制配置文件模板
cp config.ini.template config.ini

# 编辑配置文件,填入你的 vSphere 环境信息
vim config.ini

4. 构建并启动服务

bash
# 构建镜像并启动所有服务
docker-compose up -d

# 或者先构建再启动
docker-compose build
docker-compose up -d

5. 查看服务状态

bash
# 查看容器运行状态
docker-compose ps

# 查看服务日志
docker-compose logs -f

# 查看特定服务日志
docker-compose logs -f backend
docker-compose logs -f frontend

6. 停止服务

bash
# 停止所有服务
docker-compose down

# 停止服务并删除数据卷(谨慎使用)
docker-compose down -v

7. 重新构建服务

当代码更新后,需要重新构建镜像:

bash
# 重新构建并启动
docker-compose build --no-cache
docker-compose up -d

Docker Compose 服务说明

  • backend: 后端 Flask 应用,端口 8000
  • frontend: 前端 Vue 应用,端口 8080
  • 数据持久化: 数据库文件和日志文件通过 volumes 挂载到宿主机

数据目录说明

使用 Docker Compose 运行时,以下目录会自动创建并持久化数据:

  • ./data/: 数据库文件存储目录
  • ./logs/: 应用日志文件存储目录

注意事项

  • 首次启动时,如果数据库文件不存在,系统会自动创建空的数据库文件
  • 配置文件 config.ini 需要在启动前准备好
  • 确保 8000 和 8080 端口未被其他应用占用

访问系统

无论使用哪种运行方式,系统启动后可通过以下地址访问:

配置 vSphere 环境

通过 Web 界面配置

  1. 登录系统后,点击右上角的 "环境管理" 按钮
  2. 点击 "添加环境" 按钮
  3. 填写 vSphere 环境信息:
    • 环境名称: 自定义名称(如:生产环境)
    • vCenter 地址: vCenter Server 的 IP 或域名
    • 用户名: vSphere 管理员用户名
    • 密码: vSphere 管理员密码
    • 端口: 默认 443
  4. 点击 "测试连接" 验证配置
  5. 保存配置并启用环境
  6. 点击 "同步数据" 开始数据同步

使用说明

主要功能模块

  1. 环境管理

    • 添加、编辑、删除 vSphere 环境
    • 测试环境连接状态
    • 启用/禁用环境监控
  2. 宿主机监控

    • 查看 ESXi 宿主机列表
    • 监控 CPU、内存、存储使用率
    • 查看宿主机详细信息
  3. 虚拟机管理

    • 查看虚拟机列表和状态
    • 监控虚拟机资源使用情况
    • 支持按环境、状态筛选
  4. 数据同步

    • 自动定时同步(每30分钟)
    • 手动触发同步
    • 按环境单独同步
    • 查看同步状态和历史

筛选和搜索

  • 环境筛选: 选择特定的 vSphere 环境
  • 状态筛选: 按运行状态筛选资源
  • 名称搜索: 支持模糊搜索资源名称
  • IP地址搜索: 按IP地址查找资源

API 接口

认证接口

bash
# 用户登录
POST /api/auth/login
{
  "username": "admin",
  "password": "admin123"
}

# 用户登出
POST /api/auth/logout

# 验证令牌
GET /api/auth/verify

环境管理接口

bash
# 获取环境列表
GET /api/environments

# 添加环境
POST /api/environments
{
  "name": "生产环境",
  "vcenter_host": "vcenter.example.com",
  "vcenter_user": "administrator@vsphere.local",
  "vcenter_password": "password",
  "vcenter_port": 443
}

# 测试环境连接
POST /api/environments/test

# 删除环境
DELETE /api/environments/{id}

监控数据接口

bash
# 获取宿主机列表
GET /api/hosts?environment_id=1

# 获取虚拟机列表
GET /api/vms?environment_id=1&status=poweredOn

# 获取系统统计
GET /api/system/stats

数据同步接口

bash
# 手动同步所有环境
POST /api/sync/all

# 同步特定环境
POST /api/sync/environment/{id}

# 获取同步状态
GET /api/sync/status

配置说明

数据库配置

  • 路径: data/vsphere_monitor.db
  • 类型: SQLite
  • 自动创建: 首次运行时自动创建表结构

日志配置

  • 日志文件: logs/vsphere_monitor.log

同步配置

  • 同步间隔: 30分钟(可配置)
  • 超时设置: 60秒
  • 重试机制: 失败后自动重试3次

故障排除

常见问题

  1. 无法连接 vCenter

    • 检查网络连接
    • 验证 vCenter 地址和端口
    • 确认用户名密码正确
    • 检查防火墙设置
  2. 数据同步失败

    • 查看后端日志文件
    • 检查 vSphere 环境状态
    • 验证用户权限
  3. 前端无法访问后端

    • 确认后端服务正在运行
    • 检查端口是否被占用
    • 验证跨域配置
  4. 页面显示无数据

    • 检查是否已添加 vSphere 环境
    • 确认数据同步是否成功
    • 查看浏览器控制台错误
  5. Docker 相关问题

    • 检查 Docker 服务是否运行:systemctl status docker
    • 查看容器状态:docker-compose ps
    • 检查容器日志:docker-compose logs -f
    • 重新构建镜像:docker-compose build --no-cache

端口检查

bash
# 检查端口占用
lsof -i :8000  # 后端端口
lsof -i :8080  # 前端端口

# 检查服务状态
ps aux | grep python  # 后端进程
ps aux | grep node    # 前端进程

# Docker 环境检查
docker-compose ps     # 容器状态
docker-compose logs   # 容器日志

日志查看

传统运行方式日志

bash
# 查看实时日志
tail -f logs/vsphere_monitor.log

# 查看错误日志
grep ERROR logs/vsphere_monitor.log

# 查看同步日志
grep "sync" logs/vsphere_monitor.log

Docker 运行方式日志

bash
# 查看所有服务日志
docker-compose logs -f

# 查看后端日志
docker-compose logs -f backend --tail=100

# 查看前端日志
docker-compose logs -f frontend --tail=100

# 查看特定时间的日志
docker-compose logs --since="2024-01-01T00:00:00" backend

贡献指南

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

支持

如果您在使用过程中遇到问题,请:

  1. 查看本文档的故障排除部分
  2. 检查 Issues 中是否有类似问题
  3. 创建新的 Issue 描述您的问题

注意: 请确保您的 vSphere 环境版本兼容,建议使用 vSphere 6.5 或更高版本。


注意:本平台为只读监控系统,仅提供 vSphere 环境的监控和展示功能,不提供虚拟机的操作功能。首次运行后请通过 Web 界面添加 vSphere 环境配置。

最近更新

采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟