Prophet 是一个自动化资源采集、分析和管理的工具集,专为云迁移与云灾备前期技术调研设计。项目提供现代化的 Web 界面和强大的命令行工具,支持对物理机、VMware 环境的全面采集和分析,帮助用户快速了解源端基础设施状况,确保迁移和灾备方案的可行性。
- 自动化采集:通过多种协议(nmap、Ansible、WMI、VMware API)自动采集主机详细信息
- 可视化分析:提供直观的 Web 界面,支持应用拓扑可视化和管理
- 数据脱敏:自动移除敏感信息,确保数据安全
- 容器化部署:一键部署,开箱即用,减少环境依赖
- 云迁移前期调研:全面了解源端基础设施,制定迁移方案
- 云灾备规划:评估灾备可行性,预测数据传输时间
- 基础设施管理:统一管理主机、应用和依赖关系
- 技术文档生成:自动生成技术调研报告
- 主机管理:查看、搜索、管理已采集的主机信息
- 应用管理:创建应用,通过可视化画布梳理业务拓扑和主机依赖关系
- 扫描任务:创建和管理网络扫描任务,批量发现主机
- 虚拟化平台:管理 VMware 平台和虚拟机信息
- 标签管理:为主机添加标签,便于分类管理
- 数据导入导出:支持批量导入主机数据,导出采集结果
- 网络扫描:通过 nmap 扫描网段内存活的主机
- 详细信息采集:
- 通过 VMware API 采集虚拟机和 ESXi 主机信息
- 通过 Ansible 采集 Linux 主机详细信息
- 通过 Windows WMI 接口采集 Windows 主机信息
- 数据分析:对采集结果进行分析,生成技术调研报告
- 数据打包:将采集结果打包压缩,自动脱敏处理
推荐使用 Docker Compose 方式部署,简单快速,无需配置复杂的环境依赖。
- Docker >= 20.10
- Docker Compose >= 2.0
- 克隆项目
git clone https://github.com/Cloud-Discovery/prophet
cd prophet- 配置环境变量(可选)
复制环境变量示例文件并修改:
cp env.example .env编辑 .env 文件,设置必要的密钥:
# 必须修改的安全密钥
SECRET_KEY=your-secret-key-here
JWT_SECRET_KEY=your-jwt-secret-key-here
ENCRYPTION_KEY=your-encryption-key-here- 启动服务
# 构建并启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 查看服务状态
docker-compose ps- 访问应用
- Web 界面:http://localhost
- API 健康检查:http://localhost:5000/api/v1/health
- backend:后端服务容器(端口 5000)
- Flask REST API
- Celery Worker(异步任务处理)
- Redis(消息队列和缓存)
- frontend:前端服务容器(端口 80)
- Nginx 静态文件服务
- 自动代理 API 请求
以下目录通过 volume 挂载,数据会持久化:
./data:数据库文件./logs:日志文件./uploads:上传文件
# 停止服务
docker-compose down
# 重启服务
docker-compose restart
# 查看后端日志
docker-compose logs -f backend
# 进入后端容器
docker-compose exec backend bash
# 进入前端容器
docker-compose exec frontend sh更多详细信息请参考 Docker 部署文档。
- Python 环境:Python 3.8 以上版本
- 系统依赖(RHEL & CentOS):
yum install -y epel-release yum install -y nmap sshpass python3 python3-pip python3-devel
# 克隆项目
git clone https://github.com/Cloud-Discovery/prophet
cd prophet
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# 或
venv\Scripts\activate # Windows
# 安装依赖
pip install -U pip
pip install -r requirements.txt
pip install .
# 安装 Windows WMI 模块(仅 RHEL/CentOS)
yum install -y ./tools/wmi-1.3.14-4.el7.art.x86_64.rpm
# 初始化数据库
python -c "from app import create_app; from db import init_db; app = create_app(); init_db(app)"
# 启动 Web 服务
python app.py
# 启动 Celery Worker(另开终端)
celery -A celery_worker.celery worker --loglevel=info首次使用需要注册账号,注册后使用账号密码登录。
- 查看主机列表:在"主机"页面查看所有已采集的主机
- 搜索和筛选:支持按 IP、主机名、操作系统类型等条件搜索
- 查看详情:点击主机查看详细信息(CPU、内存、磁盘、网络等)
- 添加标签:为主机添加标签,便于分类管理
应用管理提供可视化画布,用于梳理业务中主机之间的依赖关系。
创建应用:
- 点击"创建应用"按钮
- 输入应用名称和描述
- 进入应用详情页面
可视化画布操作:
- 资源面板(左侧)
- 搜索并添加未加入应用的主机
- 使用模板节点(网络、存储、服务等)补充业务架构
- 画布操作(中间)
- 拖拽节点移动位置
- 连接两个节点创建关系
- 使用工具栏调整布局(网格、横向、纵向)
- 缩放和视图复位
- 属性面板(右侧)
- 选中节点或连线查看/编辑属性
- 修改关系类型和描述
- 重新绑定主机
线条样式设置:
- 点击画布上的连线,在顶部工具栏点击"线条样式"
- 可设置线条类型(折线、直线、贝塞尔曲线)
- 可设置线条样式(实线、虚线、点线)
- 可设置线条宽度和颜色
- 创建扫描任务:在"扫描"页面创建网络扫描任务
- 查看任务状态:实时查看扫描进度和结果
- 下载扫描结果:扫描完成后可下载 CSV 格式的结果文件
- 在"集合"页面可以批量导入主机数据
- 支持 CSV 和 YAML 格式
详细的项目结构说明请参考 PROJECT_STRUCTURE.md。
主要目录:
api/- Flask API 端点frontend/- Vue.js 前端应用models/- 数据库模型prophet/- 核心库(采集、解析、扫描等)services/- 业务逻辑服务tasks/- Celery 异步任务docker/- Docker 部署配置
我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解详细的贡献指南。
如果您发现安全漏洞,请查看 SECURITY.md 了解如何报告。
本项目采用木兰公共许可证,第 2 版
感谢以下贡献者为本项目做出的贡献