主题
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 端口未被其他应用占用
访问系统
无论使用哪种运行方式,系统启动后可通过以下地址访问:
- 前端界面: http://localhost:8080
- 后端API: http://localhost:8000
- 默认登录: admin / admin123
配置 vSphere 环境
通过 Web 界面配置
- 登录系统后,点击右上角的 "环境管理" 按钮
- 点击 "添加环境" 按钮
- 填写 vSphere 环境信息:
- 环境名称: 自定义名称(如:生产环境)
- vCenter 地址: vCenter Server 的 IP 或域名
- 用户名: vSphere 管理员用户名
- 密码: vSphere 管理员密码
- 端口: 默认 443
- 点击 "测试连接" 验证配置
- 保存配置并启用环境
- 点击 "同步数据" 开始数据同步
使用说明
主要功能模块
环境管理
- 添加、编辑、删除 vSphere 环境
- 测试环境连接状态
- 启用/禁用环境监控
宿主机监控
- 查看 ESXi 宿主机列表
- 监控 CPU、内存、存储使用率
- 查看宿主机详细信息
虚拟机管理
- 查看虚拟机列表和状态
- 监控虚拟机资源使用情况
- 支持按环境、状态筛选
数据同步
- 自动定时同步(每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次
故障排除
常见问题
无法连接 vCenter
- 检查网络连接
- 验证 vCenter 地址和端口
- 确认用户名密码正确
- 检查防火墙设置
数据同步失败
- 查看后端日志文件
- 检查 vSphere 环境状态
- 验证用户权限
前端无法访问后端
- 确认后端服务正在运行
- 检查端口是否被占用
- 验证跨域配置
页面显示无数据
- 检查是否已添加 vSphere 环境
- 确认数据同步是否成功
- 查看浏览器控制台错误
Docker 相关问题
- 检查 Docker 服务是否运行:
systemctl status docker
- 查看容器状态:
docker-compose ps
- 检查容器日志:
docker-compose logs -f
- 重新构建镜像:
docker-compose build --no-cache
- 检查 Docker 服务是否运行:
端口检查
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
贡献指南
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启 Pull Request
许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
支持
如果您在使用过程中遇到问题,请:
- 查看本文档的故障排除部分
- 检查 Issues 中是否有类似问题
- 创建新的 Issue 描述您的问题
注意: 请确保您的 vSphere 环境版本兼容,建议使用 vSphere 6.5 或更高版本。
注意:本平台为只读监控系统,仅提供 vSphere 环境的监控和展示功能,不提供虚拟机的操作功能。首次运行后请通过 Web 界面添加 vSphere 环境配置。