# Network-Management-System **Repository Path**: MISSMYSEIF/network-management-system ## Basic Information - **Project Name**: Network-Management-System - **Description**: 一套用于监控、配置、管理和优化网络设备和网络服务的工具和软件,以确保网络的性能、可靠性和安全性 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-05-24 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Network Management System (NMS) 一款基于微服务架构的网络设备监控、配置、管理和优化平台,支持 Docker 一键部署到 NAS。 ## 功能特性 - **路由网络监测** - 监测整个路由网络健康状态,设备在线/离线判定 - **IP级网络监控** - 实时监测每个IP的流量、带宽利用率、延迟、丢包率 - **进程级流量监控** - 监控每个IP所属设备上的进程网络使用情况 - **配置管理** - 配置备份/下发/回滚全生命周期,语法校验,审计日志 - **告警中心** - 阈值告警规则,实时告警通知(WebSocket/邮件) - **优化建议** - 基于监控趋势自动生成带宽优化/路由优化/负载均衡建议 - **多租户** - SaaS多租户逻辑隔离,独立配额和权限 - **可视化仪表盘** - 实时SSE数据推送,网络总览/设备分布/流量趋势/TOP N ## 技术栈 ### 后端 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.2.5 | 微服务框架 | | Spring Cloud | 2023.0.1 | 网关/服务发现 | | MyBatis-Plus | 3.5.6 | ORM框架 | | PostgreSQL | 15 | 关系型数据库 | | TDengine | 3.x | 时序数据库 | | Redis | 7.x | 缓存/会话 | | RabbitMQ | 3.12 | 消息队列 | | MinIO | latest | 对象存储 | | JWT | 0.12.5 | 认证 | ### 前端 | 技术 | 版本 | 说明 | |------|------|------| | Vue 3 | 3.4+ | 前端框架 | | TypeScript | 5.3+ | 类型安全 | | Vite | 5.0+ | 构建工具 | | Pinia | 2.1+ | 状态管理 | | Element Plus | 2.5+ | UI组件库 | | ECharts | 5.5+ | 图表可视化 | ## 项目结构 ``` network-management-system/ ├── nms-common/ # 公共模块(统一响应/异常/租户拦截器/JWT工具) ├── nms-gateway/ # API网关(路由/鉴权/限流/CORS) :8080 ├── nms-auth/ # 认证鉴权服务(JWT/RBAC/租户) :8081 ├── nms-device/ # 设备管理服务(网络/设备/心跳) :8082 ├── nms-monitor/ # 监控数据服务(指标采集/写入/查询) :8083 ├── nms-config/ # 配置管理服务(备份/下发/回滚) :8084 ├── nms-alert/ # 告警服务(规则/事件/通知) :8085 ├── nms-optimization/ # 优化建议服务(趋势分析/建议生成) :8086 ├── nms-dashboard/ # 仪表盘服务(聚合/SSE推送) :8087 ├── nms-web/ # Vue 3 前端 SPA :80 ├── docker/ # Docker Compose 部署文件 ├── docs/sql/ # 数据库初始化脚本 │ ├── postgresql/ # PostgreSQL DDL + 初始数据 │ └── tdengine/ # TDengine 超级表 └── pom.xml # Maven 父 POM ``` ## Docker 部署 ### 架构说明 采用 **All-in-One** 镜像模式:8个Java微服务 + Nginx前端打包在同一个容器中,由 supervisord 统一管理进程。外部基础设施(PostgreSQL/TDengine/Redis/RabbitMQ/MinIO)作为独立容器运行。 启动流程:`entrypoint.sh` → 等待基础设施就绪 → 自动初始化数据库schema → 启动supervisord管理所有服务 ### 前置要求 | 组件 | 最低版本 | |------|---------| | Docker | 20.10+ | | Docker Compose | 2.0+ | | 可用内存 | 4GB+ | | 可用磁盘 | 10GB+ | ### 方式一:NAS容器管理器部署(推荐) 直接将 `docker-compose.yml` 的内容粘贴到 NAS 的容器管理器(Portainer / Container Station / 群晖Docker等)中即可。 1. 打开 NAS 容器管理器的「新建堆栈/Compose」功能 2. 将项目根目录下 `docker-compose.yml` 的**全部内容**粘贴进去 3. (可选)修改环境变量自定义配置,见下方「环境变量」章节 4. 点击「部署/启动」 5. 等待所有容器健康检查通过(约30秒) 6. 访问 `http://NAS的IP` 进入系统 > 首次启动会自动初始化 PostgreSQL 和 TDengine 的数据库 schema,无需手动操作。 ### 方式二:命令行部署 ```bash # 克隆项目 git clone https://gitee.com/MISSMYSEIF/network-management-system.git cd network-management-system # 启动所有服务 docker compose up -d # 查看启动状态 docker compose ps # 查看NMS服务日志 docker compose logs -f nms ``` ### 方式三:本地构建后部署 适用于需要二次开发或修改代码的场景: ```bash # 构建All-in-One镜像(约10-20分钟,需Maven和npm下载依赖) docker build -f Dockerfile.all-in-one -t nms/all-in-one:latest . # 修改docker-compose.yml中的镜像地址为本地构建 # 将 image 行改为: nms/all-in-one:latest docker compose up -d ``` ### 环境变量 在 `docker-compose.yml` 中通过 `${VARIABLE:-default}` 语法支持自定义,可直接在YML中修改对应值: | 变量 | 默认值 | 说明 | |------|--------|------| | `NMS_IMAGE` | `swr.cn-north-4.../all-in-one:latest` | 镜像地址,见下方多仓库切换 | | `NMS_PORT` | `80` | 前端对外端口 | | `PG_PASSWORD` | `changeme` | PostgreSQL密码 | | `MQ_PASSWORD` | `changeme` | RabbitMQ密码 | | `TD_USER` | `root` | TDengine用户名 | | `TD_PASSWORD` | `taosdata` | TDengine密码 | | `MINIO_ACCESS_KEY` | `minioadmin` | MinIO访问密钥 | | `MINIO_SECRET_KEY` | `minioadmin` | MinIO秘密密钥 | | `JWT_SECRET` | `changeme-...` | JWT签名密钥(**生产环境务必修改**) | | `JWT_EXPIRATION` | `3600` | Token过期时间(秒) | > **安全提示**:生产部署请务必修改 `PG_PASSWORD`、`MQ_PASSWORD`、`JWT_SECRET`、`MINIO_SECRET_KEY` 等默认密码。 ### 多镜像仓库切换 修改 `docker-compose.yml` 中 `nms` 服务的 `image` 字段即可切换镜像源: | 仓库 | image 值 | |------|---------| | **华为云 SWR**(默认) | `swr.cn-north-4.myhuaweicloud.com/nms/all-in-one:latest` | | **阿里云 ACR** | `registry.cn-hangzhou.aliyuncs.com/nms/all-in-one:latest` | | **Docker Hub** | `nms/all-in-one:latest` | 或通过环境变量指定(命令行部署时): ```bash # 使用阿里云ACR NMS_IMAGE=registry.cn-hangzhou.aliyuncs.com/nms/all-in-one:latest docker compose up -d # 使用Docker Hub NMS_IMAGE=nms/all-in-one:latest docker compose up -d ``` ### 访问系统 部署成功后访问以下地址: | 服务 | 地址 | 说明 | |------|------|------| | **NMS前端** | `http://` | 主界面,默认端口80 | | RabbitMQ管理 | `http://:15672` | 消息队列管理面板 | | MinIO控制台 | `http://:9001` | 对象存储管理面板 | 默认登录账号:`admin / admin123` ### 数据持久化 所有数据存储在 `./data/` 目录下: ``` data/ ├── postgresql/ # 关系型数据(设备/告警/配置等) ├── tdengine/ # 时序数据(监控指标) ├── redis/ # 缓存数据 ├── rabbitmq/ # 消息队列数据 ├── minio/ # 配置备份文件 └── logs/ # 应用日志 ``` ### 常用运维命令 ```bash # 查看服务状态 docker compose ps # 查看NMS日志 docker compose logs -f nms # 重启NMS服务 docker compose restart nms # 停止所有服务 docker compose down # 停止并清除数据 docker compose down -v # 进入NMS容器排查问题 docker exec -it nms sh # 查看supervisord管理的各服务状态 docker exec nms supervisorctl status # 重启某个微服务(如auth) docker exec nms supervisorctl restart auth ``` ## 本地开发 ### 后端 ```bash # 需先启动 PostgreSQL、TDengine、Redis、RabbitMQ、MinIO mvn clean package -DskipTests # 各服务独立启动 java -jar nms-gateway/target/nms-gateway-1.0.0-SNAPSHOT.jar java -jar nms-auth/target/nms-auth-1.0.0-SNAPSHOT.jar java -jar nms-device/target/nms-device-1.0.0-SNAPSHOT.jar java -jar nms-monitor/target/nms-monitor-1.0.0-SNAPSHOT.jar java -jar nms-config/target/nms-config-1.0.0-SNAPSHOT.jar java -jar nms-alert/target/nms-alert-1.0.0-SNAPSHOT.jar java -jar nms-optimization/target/nms-optimization-1.0.0-SNAPSHOT.jar java -jar nms-dashboard/target/nms-dashboard-1.0.0-SNAPSHOT.jar ``` ### 前端 ```bash cd nms-web npm install npm run dev # 开发模式,访问 http://localhost:3000 npm run build # 生产构建 ``` ## API 接口 所有API通过网关统一入口 `/api/v1/`,认证方式:`Authorization: Bearer {token}` | 模块 | 路径前缀 | 说明 | |------|---------|------| | 认证 | /api/v1/auth/ | 登录/登出/刷新Token | | 用户 | /api/v1/users/ | 用户CRUD | | 租户 | /api/v1/tenants/ | 租户管理 | | 网络 | /api/v1/networks/ | 路由网络CRUD | | 设备 | /api/v1/devices/ | 设备注册/管理 | | 监控 | /api/v1/monitor/ | IP指标/进程流量 | | 配置 | /api/v1/config/ | 基线/下发/回滚 | | 告警 | /api/v1/alert/ | 规则/事件 | | 优化 | /api/v1/optimization/ | 建议管理 | | 仪表盘 | /api/v1/dashboard/ | 聚合数据/SSE | ## 许可证 Private - All Rights Reserved