v6ole f511e3e808 fix: security remediation follow-up and OLT button layout improvements
- fix Casdoor JWT verification with correct PythonProject public key
- fix iMC TLS cert validation with custom SSL adapter (skip hostname check for non-DNS CN)
- add iMC CA cert and Casdoor public key to build context
- improve OLT manage page: unify button styles, fix mobile grid spacing, replace el-upload with native input for consistent alignment
- swap NTP sync button for duplicate MAC on mobile

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 15:05:52 +08:00

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
认证 CasdoorOIDC
部署 Docker Compose · Nginx

快速开始

环境要求

  • Docker 20.10+
  • Docker Compose 2.0+
  • 外部 PostgreSQL 数据库
  • 外部 Redis 服务
  • Casdoor 认证服务器

启动步骤

  1. 克隆项目

    git clone <repository-url>
    cd H3ConuMS2
    
  2. 配置环境变量

    cp deploy/.env.example deploy/.env
    # 编辑 deploy/.env,填写数据库、Redis、Casdoor 等配置
    
  3. 启动服务

    docker compose up -d
    
  4. 运行数据库迁移

    docker compose exec backend alembic upgrade head
    
  5. 访问系统

项目结构

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 导入、库存管理等核心功能

注意:生产环境部署前请修改默认密码和密钥,并配置适当的防火墙规则。

S
Description
No description provided
Readme 726 KiB
Languages
Vue 46.4%
Python 42%
Shell 4.9%
CSS 3.9%
JavaScript 2.5%
Other 0.2%