# Network-Management-System **Repository Path**: MISSMYSEIF/network-management-system ## Basic Information - **Project Name**: Network-Management-System - **Description**: 一套用于监控、配置、管理和优化网络设备和网络服务的工具和软件,以确保网络的性能、可靠性和安全性 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2026-05-24 - **Last Updated**: 2026-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Network Management System (NMS) > **中文** | [English](./README_EN.md) 一款基于微服务架构的网络设备监控、配置、管理和优化平台,支持多数据库部署(默认 SQLite)。 --- ## ✨ 功能特性 - **路由网络监测** - 监测整个路由网络健康状态,设备在线/离线判定 - **网络拓扑管理** - 设备间连接关系管理,可视化网络拓扑结构 - **设备固件管理** - 固件版本记录、升级历史追踪、升级任务管理 - **IP级网络监控** - 实时监测每个IP的流量、带宽利用率、延迟、丢包率 - **进程级流量监控** - 监控每个IP所属设备上的进程网络使用情况 - **配置管理** - 配置备份/下发/回滚全生命周期,语法校验,审计日志 - **告警中心** - 阈值告警规则,实时告警通知(WebSocket/邮件) - **优化建议** - 基于监控趋势自动生成带宽优化/路由优化/负载均衡建议 - **多租户** - SaaS多租户逻辑隔离,独立配额和权限 - **可视化仪表盘** - 实时SSE数据推送,网络总览/设备分布/流量趋势/TOP N - **报表中心** - 监控数据 CSV 导出、汇总统计报告、异步导出 - **设备分组与标签** - 设备分组管理、标签分类检索 - **审计日志** - 全模块操作审计追踪 - **强制修改默认密码** - 安全默认策略 - **通知渠道管理** - 钉钉/企业微信/邮件/通用Webhook 数据库配置化,在线启停与连通性测试 - **配置自动备份** - 按策略定时拉取设备配置生成基线,回滚有据可依 - **监控数据采集器** - ICMP + SNMP 定时轮询采集,数据自动入库 - **会话管理** - 在线会话查询与强制下线 - **告警抑制** - 抑制窗口内同规则同目标只报一次,避免告警风暴 - **监控报表导出** - IP/进程监控数据 CSV 导出,监控数据汇总报告 - **服务注册中心** - Redis 轻量级服务注册/发现,网关动态路由,扩缩容无需改配置 - **多数据库支持** - 默认SQLite,支持PostgreSQL/MySQL切换 - **设备数据导出** - 设备列表 CSV 导出,支持按网络/状态/类型过滤 - **告警事件备注** - 运维人员在告警事件上记录处理进展与根因分析,支持团队协作 - **设备批量分组** - 批量将多台设备加入/移出分组,大幅提升运维效率 - **API Key 管理** - 外部系统安全集成凭证,支持权限范围/IP白名单/过期时间控制 - **告警通知模板** - 自定义通知内容模板,支持变量占位符动态填充 - **告警关联分析** - 同一目标/规则告警自动聚合,辅助定位根因 - **告警静默** - 设备级/全局告警静默,指定时间段内抑制告警产生与通知 - **告警分派** - 将未处理告警指派给指定处理人,明确告警归属与跟进人,支持取消分派(对齐 Zabbix/ServiceNow/PagerDuty) - **告警规则升级策略** - 规则级自定义升级配置,超时未确认自动升级并通知 - **配置变更影响分析** - 下发前自动分析风险(危险命令/链路影响/类型兼容性) - **配置同步状态监控** - 实时跟踪设备配置同步状态,检测配置漂移 - **容量规划与趋势预测** - 线性回归预测带宽/设备容量趋势,提前预警瓶颈 - **外部系统 Webhook 集成** - 设备状态/告警/配置变更事件推送到 CMDB/ITSM/工单系统,支持连通性测试 - **安全合规报告** - 自动生成安全审计报告(用户/操作/设备/密码策略),支持 CSV 导出 - **MIT 开源协议** - 完全免费开源 - **IP 地址管理** - 子网划分、IP 分配/释放/状态管理,支持批量创建 - **定时报表订阅** - 按日/周/月自动生成并发送监控报表到指定邮箱(支持邮件实际发送) - **巡检任务自动化** - 定时执行 Ping/SNMP/配置检查,自动记录巡检结果 - **告警规则预置模板** - 常用告警规则一键创建,支持 CPU/内存/带宽/延迟/丢包 - **告警规则编辑** - 支持在线修改规则名称、指标、阈值、级别和持续时间 - **配置差异逐行对比** - 支持统一/分栏视图查看逐行差异,快速定位变更 - **SSH 密钥认证** - 支持基于公钥的免密登录,替代明文密码 - **IP 监控趋势图表** - 实时展示带宽/延迟趋势曲线 - **审计日志时间线视图** - 按时间轴可视化操作历史 - **通知渠道灰度测试** - 自定义测试消息验证渠道连通性 - **系统全局设置** - 可视化管理安全策略/告警/监控/数据保留参数(对标 Zabbix Administration / SolarWinds System Settings) ### 安全加固 - **内部头签名** - 网关注入的身份头带 HMAC 签名,下游验签后才信任,防越权伪造 - **语义化 HTTP 状态码** - 支持按业务码返回真实 HTTP 状态码,便于网关与 APM 监控 - **定时任务分布式锁** - 多实例部署时同一任务只执行一次 - **JWT refresh 轮换** - jti 轮换 + 重放检测 + 租户校验 - **密码复杂度策略** - 长度/字符组合/历史密码禁用 - **登录失败锁定** - Redis Lua 原子计数,多实例并发不可绕过 ## 🚀 快速开始 ### Windows 一键启动 ```bat :: 启动所有服务(后端 + 前端) start-all.bat :: 暂停所有服务 stop-all.bat ``` ### 本地开发 ```bash # 后端 mvn clean package -DskipTests java -jar nms-gateway/target/nms-gateway-1.0.0-SNAPSHOT.jar # ... 依次启动其他微服务 # 前端 cd nms-web npm install npm run dev ``` 访问 `http://localhost:3000`,默认账号:**admin / admin123** ### Docker 部署 ```bash docker compose up -d ``` ## 📚 文档 详细的文档位于 [docs/](docs/README.md) 目录: | 文档 | 说明 | |------|------| | [架构概览](docs/architecture/overview.md) | 系统架构、微服务划分 | | [快速开始](docs/development/quickstart.md) | 5分钟上手开发 | | [Docker部署](docs/deployment/docker.md) | Docker Compose 部署指南 | | [API参考](docs/api/overview.md) | 所有 API 接口说明 | | [配置模块API](docs/api/config.md) | 配置基线/下发/回滚/审计日志接口 | | [第三方集成](docs/integration/third-party.md) | SNMP/SSH/邮件/存储等对接教程 | | [多数据库](docs/database/multi-db.md) | SQLite/PostgreSQL/MySQL 切换 | | [测试指南](docs/testing/testing-guide.md) | Python 测试使用说明 | | [服务注册中心](docs/api/registry.md) | Redis 服务注册/发现、动态路由 | | [监控模块API](docs/api/monitor.md) | IP 监控/进程流量/报表导出/订阅 | | [告警模块API](docs/api/alert.md) | 规则/事件/静默/通知渠道 | ## 🗄️ 数据库 默认使用 **SQLite**,零配置即可运行。支持切换: | 数据库 | 配置方式 | |--------|----------| | **SQLite**(默认) | `jdbc:sqlite:nms.db` | | **PostgreSQL** | `jdbc:postgresql://localhost:5432/nms` | | **MySQL** | `jdbc:mysql://localhost:3306/nms` | 初始化脚本位于 [sql/](sql/) 目录。 ## 🧪 测试 **前端单元测试(Vitest,325 用例)**: ```bash cd nms-web npm run test ``` **Python 集成测试**: 项目使用 Python 编写自动化测试脚本: ```bash cd tests pip install -r requirements.txt # 全部测试(367 用例) python -m pytest -v # 仅冒烟测试 python -m pytest -m "smoke" -v # 跳过依赖外部组件的集成测试 python -m pytest -m "not integration" -v ``` 项目配置了 [CNB CI/CD 流水线](docs/development/ci-cd.md)(`.cnb.yml`),在 `master` push 与 pull_request 时自动执行 Maven 全量编译、Java 单元测试与前端 `vue-tsc` 类型检查/构建,确保每次代码变更编译通过且单测回归。 ## 🔧 技术栈 ### 后端 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.3.13 | 微服务框架 | | Spring Cloud | 2023.0.6 | 网关/服务发现 | | MyBatis-Plus | 3.5.17 | ORM框架 | | SQLite | 3.45 | 默认数据库 | | PostgreSQL | 15 | 生产数据库 | | TDengine | 3.x | 时序数据库 | | Redis | 7.x | 缓存/会话 | | RabbitMQ | 3.12 | 消息队列 | | MinIO | latest | 对象存储 | | JWT | 0.12.7 | 认证 | ### 前端 | 技术 | 版本 | 说明 | |------|------|------| | Vue 3 | 3.4+ | 前端框架 | | TypeScript | 5.3+ | 类型安全 | | Vite | 5.0+ | 构建工具 | | Pinia | 2.1+ | 状态管理 | | Element Plus | 2.5+ | UI组件库 | | ECharts | 5.5+ | 图表可视化 | ## 📁 项目结构 ``` network-management-system/ ├── docs/ # 技术文档 ├── sql/ # 数据库初始化脚本 ├── tests/ # Python 测试脚本 ├── nms-common/ # 公共模块 ├── nms-gateway/ # API网关 :8080 ├── nms-auth/ # 认证鉴权服务 :8081 ├── nms-device/ # 设备管理服务 :8082 ├── nms-monitor/ # 监控数据服务 :8083 ├── nms-config/ # 配置管理服务 :8084 ├── nms-alert/ # 告警服务 :8085 ├── nms-optimization/ # 优化建议服务 :8086 ├── nms-dashboard/ # 仪表盘服务 :8087 ├── nms-web/ # Vue 3 前端 SPA :3000 ├── start-all.bat # Windows 一键启动 ├── stop-all.bat # Windows 一键暂停 ├── docker-compose.yml # Docker Compose 配置 ├── LICENSE # MIT 开源协议 └── pom.xml # Maven 父 POM ``` ## 🔌 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 | ## 🔐 默认账号 | 用户名 | 密码 | 角色 | |--------|------|------| | admin | admin123 | SYSTEM_ADMIN | > ⚠️ 生产环境请务必修改默认密码! ## 📄 许可证 本项目使用 [MIT](LICENSE) 开源协议。