# H3C ONU 设备管理系统 基于 Python FastAPI + Vue 3 的 H3C OLT 设备监控管理系统,用于监控和管理大规模 ONU 设备的在线状态。 ## 功能特性 ### 设备监控与管理 - H3C OLT 设备 SSH 连接和状态查询 - ONU 设备在线状态监控(支持 4000+ 设备) - 定时自动状态检查(可配置间隔,最小 5 分钟) - 手动刷新功能(5 分钟冷却限制) - 设备信息编辑(区域、学校、楼宇、场所类型、备注) - 设备 MAC 地址更换,保留完整变更历史 - OLT 扫描新发现设备自动入库流程 ### 数据管理 - Excel 批量导入设备信息 - 设备状态历史记录(保留 30 天) - 每日状态快照(用于趋势图) - 重复 MAC 地址检测 ### 统计分析 - 实时在线率统计 - 7 天趋势折线图 - 区域分布饼图 ### 权限管理 - Casdoor 统一认证(OIDC) - 基于 RBAC 的多级权限控制(管理员 / 区域管理员 / 学校管理员 / 普通用户) - 区域 / 学校级别的数据隔离 - 角色权限精细配置 ### 运维功能 - 用户操作审计日志(保留 90 天) - 业务下发(ONU 服务配置) - 库存序列号管理 - 关于页面(支持 Markdown,管理员可编辑) - 登录过期自动跳转 ## 技术栈 | 层级 | 技术 | |------|------| | 后端 | Python · FastAPI · SQLAlchemy · Celery · Redis · Paramiko · Pandas | | 前端 | Vue 3 · Element Plus · ECharts · marked | | 数据库 | PostgreSQL | | 认证 | Casdoor(OIDC) | | 部署 | Docker Compose · Nginx | ## 快速开始 ### 环境要求 - Docker 20.10+ - Docker Compose 2.0+ - 外部 PostgreSQL 数据库 - 外部 Redis 服务 - Casdoor 认证服务器 ### 启动步骤 1. 克隆项目 ```bash git clone cd H3ConuMS2 ``` 2. 配置环境变量 ```bash cp deploy/.env.example deploy/.env # 编辑 deploy/.env,填写数据库、Redis、Casdoor 等配置 ``` 3. 启动服务 ```bash docker compose up -d ``` 4. 运行数据库迁移 ```bash docker compose exec backend alembic upgrade head ``` 5. 访问系统 - 前端界面:http://localhost:8080 - API 文档:http://localhost:8000/docs ## 项目结构 ``` H3ConuMS2/ ├── backend/ │ ├── app/ │ │ ├── api/ # API 路由 │ │ ├── core/ # 配置、数据库、Celery │ │ ├── middleware/ # 权限、审计中间件 │ │ ├── models/ # 数据模型 │ │ ├── services/ # 业务逻辑 │ │ └── tasks/ # Celery 定时任务 │ ├── alembic/ # 数据库迁移 │ └── Dockerfile ├── frontend/ │ ├── src/ │ │ ├── api/ # API 调用 │ │ ├── components/ # 公共组件 │ │ ├── router/ # 路由配置 │ │ ├── views/ # 页面组件 │ │ └── utils/ # 工具函数 │ └── Dockerfile ├── deploy/ # 部署配置(docker-compose、nginx、.env) └── about.md # 系统介绍(关于页面内容) ``` ## 定时任务 | 任务 | 执行时间 | 说明 | |------|----------|------| | 设备状态检查 | 每 5 分钟触发,内部节流 | 轮询所有 OLT 采集 ONU 状态 | | 每日快照聚合 | 每天凌晨 1:00 | 生成趋势图数据 | | 审计日志清理 | 每天凌晨 2:00 | 删除 90 天前的审计记录 | | 状态历史清理 | 每天凌晨 3:00 | 删除 30 天前的状态历史 | ## 配置说明 ### Casdoor 1. 在 Casdoor 中创建应用 2. 配置回调地址:`http://your-domain/api/auth/callback` 3. 在 `.env` 中填写 Client ID、Client Secret 和 Certificate ### OLT 设备 通过系统界面添加 OLT 设备,配置 SSH 连接信息(IP、用户名、密码)和插槽命令。 ## 更新日志 ### v0.8.0 - 新增审计日志功能 - 新增关于页面(Markdown 编辑,管理员可配置) - 新增登录过期自动跳转提示 - 设备编辑支持场所类型字段,区域改为下拉快速填充 - MAC 地址统一格式为 `xxxx-xxxx-xxxx`(小写) - 更换设备 MAC 时自动清理 OLT 新发现列表中的冲突记录 - 状态历史自动清理(保留 30 天) ### v0.7.x 及以前 - 基础设备监控、OLT 管理、权限系统、Excel 导入、库存管理等核心功能 --- **注意**:生产环境部署前请修改默认密码和密钥,并配置适当的防火墙规则。