Skip to content

Prophet is a toolset to collect resources and generate report for cloud migration, cloud backup and disaster recovery.

License

Notifications You must be signed in to change notification settings

CarltonXu/prophet

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Prophet

资源自动采集分析工具集,云迁移/云灾备必备的调研工具

 release Stars


目录

项目说明

Prophet 是一个自动化资源采集、分析和管理的工具集,专为云迁移与云灾备前期技术调研设计。项目提供现代化的 Web 界面和强大的命令行工具,支持对物理机、VMware 环境的全面采集和分析,帮助用户快速了解源端基础设施状况,确保迁移和灾备方案的可行性。

核心价值

  • 自动化采集:通过多种协议(nmap、Ansible、WMI、VMware API)自动采集主机详细信息
  • 可视化分析:提供直观的 Web 界面,支持应用拓扑可视化和管理
  • 数据脱敏:自动移除敏感信息,确保数据安全
  • 容器化部署:一键部署,开箱即用,减少环境依赖

应用场景

  • 云迁移前期调研:全面了解源端基础设施,制定迁移方案
  • 云灾备规划:评估灾备可行性,预测数据传输时间
  • 基础设施管理:统一管理主机、应用和依赖关系
  • 技术文档生成:自动生成技术调研报告

主要功能

Web 界面功能

  • 主机管理:查看、搜索、管理已采集的主机信息
  • 应用管理:创建应用,通过可视化画布梳理业务拓扑和主机依赖关系
  • 扫描任务:创建和管理网络扫描任务,批量发现主机
  • 虚拟化平台:管理 VMware 平台和虚拟机信息
  • 标签管理:为主机添加标签,便于分类管理
  • 数据导入导出:支持批量导入主机数据,导出采集结果

命令行功能

  • 网络扫描:通过 nmap 扫描网段内存活的主机
  • 详细信息采集
    • 通过 VMware API 采集虚拟机和 ESXi 主机信息
    • 通过 Ansible 采集 Linux 主机详细信息
    • 通过 Windows WMI 接口采集 Windows 主机信息
  • 数据分析:对采集结果进行分析,生成技术调研报告
  • 数据打包:将采集结果打包压缩,自动脱敏处理

安装说明

Docker Compose 部署(推荐)

推荐使用 Docker Compose 方式部署,简单快速,无需配置复杂的环境依赖。

前提条件

  • Docker >= 20.10
  • Docker Compose >= 2.0

快速开始

  1. 克隆项目
git clone https://github.com/Cloud-Discovery/prophet
cd prophet
  1. 配置环境变量(可选)

复制环境变量示例文件并修改:

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
  1. 启动服务
# 构建并启动所有服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 查看服务状态
docker-compose ps
  1. 访问应用

服务说明

  • 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

使用说明

Web 界面使用

1. 登录系统

首次使用需要注册账号,注册后使用账号密码登录。

2. 主机管理

  • 查看主机列表:在"主机"页面查看所有已采集的主机
  • 搜索和筛选:支持按 IP、主机名、操作系统类型等条件搜索
  • 查看详情:点击主机查看详细信息(CPU、内存、磁盘、网络等)
  • 添加标签:为主机添加标签,便于分类管理

3. 应用管理

应用管理提供可视化画布,用于梳理业务中主机之间的依赖关系。

创建应用

  1. 点击"创建应用"按钮
  2. 输入应用名称和描述
  3. 进入应用详情页面

可视化画布操作

  1. 资源面板(左侧)
    • 搜索并添加未加入应用的主机
    • 使用模板节点(网络、存储、服务等)补充业务架构
  2. 画布操作(中间)
    • 拖拽节点移动位置
    • 连接两个节点创建关系
    • 使用工具栏调整布局(网格、横向、纵向)
    • 缩放和视图复位
  3. 属性面板(右侧)
    • 选中节点或连线查看/编辑属性
    • 修改关系类型和描述
    • 重新绑定主机

线条样式设置

  • 点击画布上的连线,在顶部工具栏点击"线条样式"
  • 可设置线条类型(折线、直线、贝塞尔曲线)
  • 可设置线条样式(实线、虚线、点线)
  • 可设置线条宽度和颜色

4. 扫描任务

  • 创建扫描任务:在"扫描"页面创建网络扫描任务
  • 查看任务状态:实时查看扫描进度和结果
  • 下载扫描结果:扫描完成后可下载 CSV 格式的结果文件

5. 数据导入

  • 在"集合"页面可以批量导入主机数据
  • 支持 CSV 和 YAML 格式

项目结构

详细的项目结构说明请参考 PROJECT_STRUCTURE.md

主要目录:

  • api/ - Flask API 端点
  • frontend/ - Vue.js 前端应用
  • models/ - 数据库模型
  • prophet/ - 核心库(采集、解析、扫描等)
  • services/ - 业务逻辑服务
  • tasks/ - Celery 异步任务
  • docker/ - Docker 部署配置

如何贡献

我们欢迎所有形式的贡献!请查看 CONTRIBUTING.md 了解详细的贡献指南。

安全政策

如果您发现安全漏洞,请查看 SECURITY.md 了解如何报告。

协议说明

本项目采用木兰公共许可证,第 2 版

贡献者

感谢以下贡献者为本项目做出的贡献

About

Prophet is a toolset to collect resources and generate report for cloud migration, cloud backup and disaster recovery.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 46.8%
  • Vue 46.2%
  • TypeScript 6.9%
  • Makefile 0.1%
  • Shell 0.0%
  • HTML 0.0%