No description
| .trae/documents | ||
| backend | ||
| docker | ||
| docs | ||
| frontend | ||
| other | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| create_test_credential.py | ||
| create_test_host.py | ||
| docker-compose.yml | ||
| docs.html | ||
| package-lock.json | ||
| README.md | ||
| smanager.db | ||
| smanager.sh | ||
| start.sh | ||
| start_services.py | ||
| start_smanager.sh | ||
| stop.sh | ||
| test_decrypt.py | ||
| test_login.py | ||
| test_salt.py | ||
| test_ssh_connection.py | ||
| test_ssh_hosts.py | ||
运维管理系统
一个现代化的运维管理平台,结合堡垒机安全控制功能,支持主机管理、监控告警、SSH连接和移动端访问。
🚀 功能特性
核心功能
- 🔐 用户认证与权限管理: 基于RBAC的完整权限控制系统
- 🖥️ 主机自动发现与管理: 支持多种扫描方式,主机分组和标签管理
- 📊 系统监控与告警: 实时监控数据,智能告警系统
- 🔒 堡垒机安全控制: SSH连接管理,会话录像,操作审计
- 📱 移动端支持: PWA渐进式Web应用,响应式设计
高级功能
- 🌍 国际化支持: 中英文双语,可扩展多语言
- 📈 数据可视化: 实时图表,监控大屏
- 🔧 批量操作: 批量导入导出,批量命令执行
- 📝 审计日志: 完整的操作记录和合规支持
- 🤖 自动化运维: 定时任务,自动巡检,故障自愈
🛠️ 技术架构
后端技术栈
- 框架: FastAPI + Python 3.9+
- 数据库: SQLite (开发环境) / PostgreSQL (生产环境)
- 认证: JWT + RBAC权限系统
- 监控: psutil + paramiko + python-nmap
前端技术栈
- 框架: Vue.js 3 + JavaScript
- UI组件: Element Plus
- 状态管理: Pinia
- 构建工具: Vite
- PWA: Service Worker + Manifest
部署技术
- 容器化: Docker + Docker Compose
- Web服务器: Nginx
- 反向代理: WebSocket支持
📋 项目结构
smanager/
├── backend/ # FastAPI后端
│ ├── app/
│ │ ├── api/ # API路由
│ │ ├── core/ # 核心功能
│ │ ├── models/ # 数据库模型
│ │ └── utils/ # 工具函数
│ ├── alembic/ # 数据库迁移
│ ├── core/ # 核心模块
│ ├── security/ # 安全模块
│ ├── transfer/ # 文件传输模块
│ ├── requirements.txt # 依赖管理
│ └── requirements-dev.txt # 开发依赖
├── frontend/ # Vue.js前端
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ ├── services/ # API服务
│ │ ├── stores/ # 状态管理
│ │ ├── utils/ # 工具函数
│ │ └── locales/ # 国际化文件
│ ├── public/ # 静态资源
│ ├── package.json # 前端依赖
│ └── vite.config.js # Vite配置
├── docker/ # Docker配置
├── docs/ # 项目文档
├── scripts/ # 脚本文件
├── start.sh # 启动脚本
├── stop.sh # 停止脚本
└── docker-compose.yml # Docker Compose配置
🚀 快速开始
环境要求
- Python 3.9+
- Node.js 16+
- Docker & Docker Compose (可选)
一键启动
最简单的启动方式是使用一键启动脚本:
# 克隆项目
git clone <repository-url>
cd smanager
# 启动所有服务
./start.sh
脚本会自动:
- 检查系统依赖
- 启动后端API服务器 (端口8000)
- 启动前端开发服务器 (端口3000)
- 显示服务状态和访问地址
手动启动
如果需要手动启动各个服务:
# 启动后端
cd backend
python3 -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
# 启动前端
cd frontend
npm run dev
访问应用
- 前端: http://localhost:3000
- 后端API: http://localhost:8000
- API文档: http://localhost:8000/docs
- API文档(ReDoc): http://localhost:8000/redoc
生产环境部署
- 配置环境变量
cp .env.example .env
# 编辑 .env 文件,设置生产环境配置
- 启动生产环境
docker-compose up -d
📖 API文档
启动后端服务后,可以访问:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
🔧 配置说明
环境变量
主要的环境变量配置(详见 .env.example):
# 应用配置
APP_NAME="运维管理系统"
DEBUG=false
SECRET_KEY=your-secret-key
# 数据库配置
DATABASE_URL=sqlite:///./smanager.db
# 生产环境使用PostgreSQL
# DATABASE_URL=postgresql://user:password@localhost:5432/smanager
# JWT配置
JWT_SECRET_KEY=your-jwt-secret
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
# 监控配置
MONITORING_INTERVAL=60
SESSION_TIMEOUT=1800
权限配置
系统预定义角色:
- 超级管理员: 全部权限
- 系统管理员: 系统和用户管理
- 运维工程师: 主机管理和监控
- 只读用户: 查看权限
🧪 测试
# 后端测试
cd backend
python -m pytest tests/
# 前端测试
cd frontend
npm run test
📝 开发指南
代码规范
- 后端: PEP 8 规范
- 前端: ESLint 规范
- 提交: Conventional Commits
分支策略
- main: 生产环境分支
- develop: 开发环境分支
- feature/*: 功能开发分支
- hotfix/*: 紧急修复分支
🔒 安全特性
- JWT Token认证
- RBAC权限控制
- 密码加密存储
- SQL注入防护
- XSS防护
- CSRF防护
- 操作审计日志
- SSH会话录像
- 数据传输加密
📱 移动端
- PWA支持,可安装到主屏幕
- 响应式设计,适配各种设备
- 离线功能支持
- 推送通知
🌍 国际化
- 简体中文
- English
- 可扩展其他语言
📊 系统状态
<EFBFBD> 当前功能
- ✅ 用户认证: 完整的登录/登出功能
- ✅ 主机管理: 主机增删改查,分组管理
- ✅ SSH连接: Web终端,命令执行
- ✅ 系统监控: 主机状态监控
- ✅ 审计日志: 操作记录和审计
- ✅ 前端界面: 完整的Vue组件
- ✅ API文档: Swagger和ReDoc文档
🚧 开发中功能
- ⏳ 批量操作: 批量命令执行
- ⏳ 自动发现: 网络主机扫描
- ⏳ 告警系统: 智能告警和通知
- ⏳ 移动端优化: PWA完善
- ⏳ 多语言支持: 国际化完善
📄 许可证
MIT License
🤝 贡献
欢迎提交Issue和Pull Request!
📞 支持
- 文档: docs/
- 问题反馈: GitHub Issues
- 邮箱: support@example.com
💡 提示
- 启动服务:
./start.sh - 停止服务:
./stop.sh - 查看日志:
tail -f logs/*.log - 重启服务:
./stop.sh && ./start.sh