# NetViewPro **Repository Path**: kuangsao/net-view-pro ## Basic Information - **Project Name**: NetViewPro - **Description**: NetViewPro-一个网络设备和服务器监控软件 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-01-12 - **Last Updated**: 2026-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NetViewPro 网络监控平台 [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/) [![Vue](https://img.shields.io/badge/vue-3.x-green.svg)](https://vuejs.org/) [![Go](https://img.shields.io/badge/go-1.20+-00ADD8.svg)](https://golang.org/) NetViewPro 是一个基于 Vue3 + FastAPI + Go 的企业级网络监控管理平台,提供设备监控、配置管理、WebSSH/VNC远程访问、SNMP数据采集、终端软件管理等功能。 **📢 特别声明:本项目代码由AI辅助完成,界面图标资源来源于EVE-NG网络模拟器。** **🔧 设备兼容性说明:** 本项目在H3C(华三)设备上经过充分测试,支持完整功能。对于华为设备,基础功能(拓扑自动生成、流量采集、配置备份、远程访问等)运行正常,华为设备部分功能(如CPU/内存指标采集)可能需要额外的MIB库支持或配置调整。欢迎社区贡献其他厂商设备的支持。 ## 📑 目录 - [系统架构](#系统架构) - [核心功能](#核心功能) - [技术栈](#技术栈) - [目录结构](#目录结构) - [快速开始](#快速开始) - [配置说明](#配置说明) - [部署指南](#部署指南) - [API文档](#api文档) - [故障排查](#故障排查) --- ## 🏗️ 系统架构 ### 整体架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ 浏览器客户端 │ │ (Vue3 + Element Plus) │ └────────────────────────┬────────────────────────────────────┘ │ HTTPS/WebSocket ▼ ┌─────────────────────────────────────────────────────────────┐ │ 后端API服务 (FastAPI/Uvicorn) │ │ Port: 8443 │ └─────────┬───────────────────────────────────────────────────┘ │ ├─────────────────┬─────────────────┬──────────────┐ ▼ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ MySQL │ │ Go │ │ Redis │ │ 网络设备 │ │ 数据库 │ │ 采集服务 │ │ 缓存 │ │ (SNMP) │ │ Port:3306│ │ Port:9090│ │ Port:6379│ │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ ``` ### 技术架构层次 ``` ┌─────────────────────────────────────────────────────────────┐ │ 表现层 │ │ Vue3 + Vue Router + Element Plus + ECharts + Xterm.js │ ├─────────────────────────────────────────────────────────────┤ │ 应用层 │ │ FastAPI + Pydantic + JWT + WebSocket + Paramiko + Pysnmp │ ├─────────────────────────────────────────────────────────────┤ │ 业务层 │ │ 设备管理 | 监控采集 | 配置备份 | 告警管理 | 终端软件管理 │ ├─────────────────────────────────────────────────────────────┤ │ 数据层 │ │ SQLAlchemy ORM + MySQL/MariaDB + Redis │ ├─────────────────────────────────────────────────────────────┤ │ 采集层 │ │ Go采集服务 (SNMP/TCP/ICMP) + Agent (Windows/Linux) │ └─────────────────────────────────────────────────────────────┘ ``` --- ## ✨ 核心功能 ### 1. 设备管理 - ✅ 设备发现(SNMP/Ping扫描) - ✅ 设备分组管理 - ✅ 设备拓扑图展示(网络拓扑、服务器拓扑) - ✅ 设备信息管理(厂商、型号、序列号、SNMP配置等) - ✅ 多设备类型支持(路由器、交换机、防火墙、AC、AP、服务器等) - ✅ 设备图标管理 - ✅ 设备层级管理(核心设备、接入设备) ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E4%BB%AA%E8%A1%A8%E7%9B%98.png) ![网络设备管理](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E7%AE%A1%E7%90%86.png) ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E6%9C%8D%E5%8A%A1%E5%99%A8-%E7%BB%88%E7%AB%AF%E7%AE%A1%E7%90%86.png) ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF.png) ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E7%BD%91%E5%8D%A1%E7%9B%91%E6%8E%A7.png) ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E7%BD%91%E7%BB%9C%E6%8B%93%E6%89%91.png) ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%8B%93%E6%89%91.png) ### 2. 监控采集 - ✅ SNMP v1/v2c/v3 数据采集 - ✅ CPU、内存、磁盘、流量实时监控 - ✅ 网络接口状态监控 - ✅ 服务器Agent监控(Windows/Linux) - ✅ Go采集服务(高性能SNMP采集) - ✅ 历史数据存储与图表展示 - ✅ 外网带宽报表 ### 3. 配置管理 - ✅ 设备配置自动备份(SSH方式) - ✅ 配置版本管理 - ✅ 定时备份计划 - ✅ 手动/自动备份触发 - ✅ 配置对比功能 ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E5%AE%9A%E6%97%B6%E5%A4%87%E4%BB%BD.png) ### 4. 远程访问 - ✅ WebSSH 终端 (基于xterm.js) - ✅ Web VNC 远程桌面(通过websockify代理) - ✅ SFTP文件传输(上传/下载/浏览/删除) ### 5. 告警管理 - ✅ 多维度告警规则(设备离线、资源告警、接口告警、进程告警、Agent离线) - ✅ 告警通知(飞书、企业微信、邮件) - ✅ 告警静默时间段配置 - ✅ 恢复通知 - ✅ 告警历史记录与查询 - ✅ 告警规则模板 ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E9%A3%9E%E4%B9%A6%E9%80%9A%E7%9F%A5.png) ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E9%A3%9E%E4%B9%A6%E5%91%8A%E8%AD%A6%E6%95%88%E6%9E%9C.png) ### 6. 权限管理 - ✅ 基于角色的访问控制 (RBAC) - ✅ 四级角色(系统管理员、安全管理员、审计管理员、操作员) - ✅ 操作审计日志 - ✅ JWT Token认证 ### 7. IP地址管理 - ✅ IP地址池管理 - ✅ IP使用情况统计 - ✅ MAC地址表自动采集 - ✅ ARP表自动采集 - ✅ IP与设备关联 ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/IP%E8%B5%84%E4%BA%A7.png) ### 8. 终端软件管理 - ✅ 终端设备列表管理 - ✅ 已安装软件信息采集 - ✅ 软件统计分析 - ✅ 违规软件管理(黑名单规则) - ✅ 软件批量卸载 - ✅ 操作日志记录 - ✅ 终端统计报表 ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E7%BB%88%E7%AB%AF%E7%BB%9F%E8%AE%A1.png) ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E8%BD%AF%E4%BB%B6%E5%88%86%E6%9E%90.png) ![输入图片说明](%E8%BD%AF%E4%BB%B6%E6%88%AA%E5%9B%BE%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A8%A1%E6%8B%9F%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%EF%BC%8C%E6%97%A0%E7%A4%BA%E4%BE%8BDemo/%E8%BF%9D%E8%A7%84%E8%BD%AF%E4%BB%B6%E5%88%97%E8%A1%A8.png) ### 9. 服务器管理 - ✅ 服务器设备管理 - ✅ Agent注册与管理 - ✅ 服务器监控数据采集(CPU、内存、磁盘、网络、进程) - ✅ 服务器拓扑展示 ### 10. 其他功能 - ✅ SNMP模板管理 - ✅ 设备凭证管理(加密存储) - ✅ 凭证模板管理 - ✅ Agent下载(Windows/Linux) - ✅ 设备发现任务管理 --- ## 🔧 技术栈 ### 前端技术栈 - **框架**: Vue 3.3+ (Composition API) - **构建工具**: Vite 4.x - **UI组件库**: Element Plus - **状态管理**: Pinia - **路由管理**: Vue Router 4.x - **HTTP客户端**: Axios - **图表库**: ECharts 5.x - **终端模拟**: Xterm.js - **拓扑图**: Cytoscape.js - **样式**: SCSS / CSS3 ### 后端技术栈 - **Web框架**: FastAPI 0.104+ - **ASGI服务器**: Uvicorn - **ORM**: SQLAlchemy 2.x - **数据验证**: Pydantic - **认证**: JWT (PyJWT) - **SSH客户端**: Paramiko - **SNMP**: Pysnmp - **任务调度**: APScheduler - **加密**: Cryptography ### 采集服务 - **语言**: Go 1.20+ - **SNMP库**: gosnmp - **HTTP框架**: Gin ### Agent - **Windows Agent**: Go语言编写(new-agent目录) - **Linux Agent**: Python编写(network-monitor-agent-linux目录) ### 数据存储 - **关系数据库**: MySQL 8.0+ / MariaDB 10.6+ - **缓存数据库**: Redis 6.x+ (可选) --- ## 📁 目录结构 ``` NetViewPro/ ├── frontend/ # 前端项目目录 │ ├── public/ # 静态资源 │ ├── src/ │ │ ├── api/ # API接口定义 │ │ │ ├── auth.js # 认证相关API │ │ │ ├── device.js # 设备管理API │ │ │ ├── monitor.js # 监控数据API │ │ │ ├── server.js # 服务器管理API │ │ │ ├── terminalSoftware.js # 终端软件管理API │ │ │ ├── ipManagement.js # IP管理API │ │ │ ├── alarm.js # 告警管理API │ │ │ ├── topology.js # 拓扑管理API │ │ │ └── ... │ │ ├── components/ # 公共组件 │ │ ├── views/ # 页面组件 │ │ │ ├── Dashboard.vue # 仪表盘 │ │ │ ├── DeviceManagement.vue # 网络设备管理 │ │ │ ├── ServerManagement.vue # 服务器管理 │ │ │ ├── TerminalDeviceList.vue # 终端设备列表 │ │ │ ├── TerminalStatistics.vue # 终端统计 │ │ │ ├── SoftwareStatistics.vue # 软件统计分析 │ │ │ ├── ViolationSoftwareManage.vue # 违规软件管理 │ │ │ ├── TerminalOperationLog.vue # 操作日志 │ │ │ ├── Topology.vue # 拓扑图 │ │ │ ├── Monitor.vue # 监控图表 │ │ │ ├── WANBandwidthReport.vue # 外网带宽报表 │ │ │ ├── IPManagement.vue # IP地址管理 │ │ │ ├── Alarm.vue # 告警管理 │ │ │ ├── NotificationSettings.vue # 通知设置 │ │ │ ├── CredentialManagement.vue # 账号管理 │ │ │ ├── UserManagement.vue # 用户管理 │ │ │ ├── AuditLogs.vue # 审计日志 │ │ │ └── ... │ │ ├── router/ # 路由配置 │ │ ├── utils/ # 工具函数 │ │ └── main.js # 入口文件 │ ├── package.json # 前端依赖 │ └── vite.config.js # Vite配置 │ ├── backend/ # 后端项目目录 │ ├── app/ │ │ ├── api/ # API路由 │ │ │ ├── v1/ # API v1版本 │ │ │ │ ├── auth.py # 认证接口 │ │ │ │ ├── users.py # 用户管理 │ │ │ │ ├── devices.py # 设备管理 │ │ │ │ ├── servers.py # 服务器管理 │ │ │ │ ├── terminal_software.py # 终端软件管理 │ │ │ │ ├── monitor.py # 监控数据 │ │ │ │ ├── backups.py # 配置备份 │ │ │ │ ├── alarms.py # 告警管理 │ │ │ │ ├── notifications.py # 通知设置 │ │ │ │ ├── ip_management.py # IP地址管理 │ │ │ │ ├── topology.py # 拓扑布局 │ │ │ │ ├── discovery.py # 设备发现 │ │ │ │ ├── credentials.py # 设备凭证 │ │ │ │ ├── credential_templates.py # 凭证模板 │ │ │ │ ├── snmp_templates.py # SNMP模板 │ │ │ │ ├── device_groups.py # 设备分组 │ │ │ │ ├── file_transfer.py # 文件传输 │ │ │ │ ├── agents.py # Agent下载 │ │ │ │ └── audit.py # 审计日志 │ │ │ └── websocket.py # WebSocket路由 │ │ ├── config/ # 配置模块 │ │ │ ├── settings.py # 应用配置 │ │ │ └── database.py # 数据库配置 │ │ ├── database/ # 数据库模块 │ │ │ ├── session.py # 数据库会话 │ │ │ └── base.py # 基础模型 │ │ ├── models/ # 数据模型 │ │ │ ├── user.py # 用户模型 │ │ │ ├── device.py # 设备模型 │ │ │ ├── server.py # 服务器模型 │ │ │ ├── terminal_software.py # 终端软件模型 │ │ │ ├── monitor.py # 监控模型 │ │ │ ├── alarm.py # 告警模型 │ │ │ ├── ip_management.py # IP管理模型 │ │ │ ├── topology.py # 拓扑模型 │ │ │ └── ... │ │ ├── schemas/ # Pydantic模式 │ │ │ ├── user.py # 用户模式 │ │ │ ├── device.py # 设备模式 │ │ │ └── ... │ │ ├── services/ # 业务逻辑层 │ │ │ ├── user_service.py # 用户服务 │ │ │ ├── device_service.py # 设备服务 │ │ │ ├── server_service.py # 服务器服务 │ │ │ ├── terminal_software_service.py # 终端软件服务 │ │ │ ├── monitor_service.py # 监控服务 │ │ │ ├── backup_scheduler_service.py # 备份调度服务 │ │ │ ├── device_backup_service.py # 设备备份服务 │ │ │ ├── alarm_service.py # 告警服务 │ │ │ ├── alarm_monitor_service.py # 告警监控服务 │ │ │ ├── notification_service.py # 通知服务 │ │ │ ├── ip_collection_service.py # IP采集服务 │ │ │ ├── ip_association_service.py # IP关联服务 │ │ │ ├── discovery_task_service.py # 发现任务服务 │ │ │ ├── collect_task_service.py # 采集任务服务 │ │ │ ├── ssh_session_service.py # SSH会话服务 │ │ │ ├── ssh_command_service.py # SSH命令服务 │ │ │ ├── snmp_service.py # SNMP服务 │ │ │ ├── snmp_template_service.py # SNMP模板服务 │ │ │ ├── credential_encryption_service.py # 凭证加密服务 │ │ │ ├── vnc_proxy_service.py # VNC代理服务 │ │ │ └── ... │ │ ├── utils/ # 工具模块 │ │ │ ├── jwt.py # JWT工具 │ │ │ ├── common.py # 通用工具 │ │ │ ├── timezone_utils.py # 时区工具 │ │ │ └── go_collector_client.py # Go服务客户端 │ │ └── main.py # 应用入口 │ ├── requirements.txt # Python依赖 │ ├── .env # 环境变量配置 │ └── .credential_master_key # 凭证加密主密钥(敏感文件) │ ├── collector-service/ # Go采集服务目录 │ ├── cmd/ # 命令入口 │ │ └── collector/ │ │ └── main.go # Go服务主程序 │ ├── internal/ # 内部包 │ │ ├── api/ # HTTP API │ │ ├── collector/ # 采集器实现 │ │ └── config/ # 配置管理 │ ├── config/ # 配置文件 │ │ └── config.yaml # Go服务配置 │ ├── go.mod # Go依赖 │ └── collector # 编译后的可执行文件 │ ├── new-agent/ # Windows Agent(Go版本) │ ├── bin/ # 编译输出目录 │ │ ├── NetViewProAgent.exe # Windows Agent可执行文件 │ │ └── config.json # 配置文件 │ ├── cmd/ # 命令入口 │ ├── internal/ # 内部包 │ ├── pkg/ # 公共包 │ ├── go.mod # Go依赖 │ └── README.md # Agent说明文档 │ ├── network-monitor-agent-linux/ # Linux Agent(Python版本) │ ├── main.py # Agent主程序 │ ├── config.json.example # 配置示例 │ ├── requirements.txt # Python依赖 │ └── 使用说明.txt # 使用说明 │ ├── database/ # 数据库相关 │ ├── schema.sql # 数据库表结构 │ ├── init.sql # 初始化数据 │ └── migrations/ # 数据库迁移脚本 │ ├── scripts/ # 项目脚本 │ ├── 启动开发环境.sh # 启动开发环境 │ ├── 停止开发环境.sh # 停止开发环境 │ └── 重启开发环境.sh # 重启开发环境 │ ├── 图标/ # PNG图标资源 │ ├── Cloud.png │ ├── Desktop.png │ └── ... │ ├── SVG图标/ # SVG图标资源 │ ├── Router-2D-Cat-Blue-S.svg │ ├── Switch-2D-L3-Generic-S.svg │ └── ... │ ├── MIBS/ # SNMP MIB库 │ ├── 华三-MIBs/ # 华三MIB库 │ └── 华为-MIBs/ # 华为MIB库 │ ├── 创建更新包.sh # 创建更新包脚本 ├── 打包部署脚本.sh # 完整打包部署脚本 ├── README.md # 项目说明文档(本文件) └── LICENSE # 许可证文件 ``` --- ## 🚀 快速开始 ### 环境要求 - **操作系统**: CentOS 9 / RHEL 9 / Ubuntu 20.04+ - **Python**: 3.9+ - **Node.js**: 16.x+ - **Go**: 1.20+ (用于编译采集服务和Agent) - **MySQL/MariaDB**: 8.0+ / 10.6+ - **Redis**: 6.x+ (可选) ### 安装依赖 #### 1. 系统依赖 ```bash # CentOS/RHEL 9 sudo dnf install -y python3.9 python3-pip nodejs npm mysql-server # Ubuntu/Debian sudo apt install -y python3.9 python3-pip nodejs npm mysql-server ``` #### 2. 后端依赖 ```bash cd backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` #### 3. 前端依赖 ```bash cd frontend npm install ``` #### 4. Go采集服务依赖 ```bash cd collector-service go mod download go build -o collector cmd/collector/main.go ``` #### 5. Windows Agent编译 ```bash cd new-agent make build-windows # 或使用 go build ``` ### 初始化数据库 ```bash # 创建数据库 mysql -u root -p << EOF CREATE DATABASE network_monitor DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; EOF # 导入表结构 mysql -u root -p network_monitor < database/schema.sql # 导入初始数据 mysql -u root -p network_monitor < database/init.sql ``` ### 配置环境变量 ```bash # 后端配置 cp backend/.env.example backend/.env vi backend/.env # 修改数据库连接信息 MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=your_password MYSQL_DATABASE=network_monitor ``` ### 启动开发环境 ```bash # 使用启动脚本(推荐) ./scripts/启动开发环境.sh # 或手动启动各服务 # 1. 启动Go采集服务 cd collector-service ./collector & # 2. 启动后端服务 cd backend source venv/bin/activate uvicorn app.main:app --host 0.0.0.0 --port 8443 --reload # 3. 启动前端服务 cd frontend npm run dev ``` ### 访问系统 **开发环境**: - **前端开发服务器**: http://localhost:5173 (Vite Dev Server) - **后端API**: https://localhost:8443 - **API文档**: https://localhost:8443/docs - **Go采集服务**: http://localhost:9090 **默认管理员账号**: - 用户名: `admin` - 密码: `admin123` ⚠️ **首次登录后请立即修改密码!** --- ## ⚙️ 配置说明 ### 后端配置 (backend/.env) ```bash # 数据库配置 MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=your_password MYSQL_DATABASE=network_monitor # Redis配置(可选) REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD= REDIS_DB=0 # JWT配置 JWT_SECRET_KEY=your-secret-key-change-in-production JWT_ALGORITHM=HS256 JWT_EXPIRATION_HOURS=24 # CORS配置 CORS_ORIGINS=* # 生产环境请设置具体域名 # SSL配置 USE_HTTPS=true SSL_CERT_PATH=cert.pem SSL_KEY_PATH=key.pem # Go采集服务配置 USE_GO_COLLECTOR=true GO_COLLECTOR_BASE_URL=http://127.0.0.1:9090 ``` ### 前端配置 (frontend/.env) ```bash # API地址 VITE_API_BASE_URL=https://localhost:8443 VITE_WS_BASE_URL=wss://localhost:8443 # 是否启用HTTPS VITE_USE_HTTPS=true ``` ### Go服务配置 (collector-service/config/config.yaml) ```yaml server: host: "127.0.0.1" port: 9090 log: level: "info" file: "logs/collector.log" snmp: timeout: 5 retries: 3 ``` --- ## 📦 部署指南 ### 打包构建 使用打包脚本自动打包所有组件: ```bash ./打包部署脚本.sh # 生成 NetViewPro-Deploy-YYYYMMDD_HHMMSS.tar.gz ``` ### 生产部署 #### 方式1:使用一键安装脚本(推荐) 适用于CentOS 9 / Rocky Linux 9 / AlmaLinux 9系统。 ```bash # 1. 解压部署包 tar -xzf NetViewPro-Deploy-YYYYMMDD_HHMMSS.tar.gz cd NetViewPro-Deploy # 2. 运行一键安装脚本 chmod +x 一键安装.sh ./一键安装.sh # 3. 按提示输入配置(数据库密码、端口等) # 4. 等待自动安装完成 ``` #### 方式2:手动部署 1. 解压部署包到 `/opt/NetViewPro-Deploy` 2. 安装MySQL 8.0+ 3. 运行 `./scripts/init_database.sh` 初始化数据库 4. 编辑 `config/backend.env` 配置数据库连接 5. 运行 `./scripts/start.sh` 启动服务 --- ## 📖 API文档 完整API文档请访问: https://localhost:8443/docs ### 主要接口 - **认证**: `/api/v1/auth/login` - 用户登录 - **设备管理**: `/api/v1/devices` - 设备CRUD操作 - **服务器管理**: `/api/v1/servers` - 服务器管理 - **终端软件**: `/api/v1/terminal-software` - 终端软件管理 - **监控数据**: `/api/v1/monitor` - 监控数据查询 - **告警管理**: `/api/v1/alarms` - 告警规则和事件 - **IP管理**: `/api/v1/ip-management` - IP地址管理 - **拓扑**: `/api/v1/topology` - 拓扑布局管理 - **Agent下载**: `/api/v1/agents` - Agent文件下载 ### WebSocket接口 - **实时监控**: `WS /ws/monitor` - 实时监控数据推送 - **WebSSH**: `WS /ws/ssh/{device_id}` - SSH终端连接 - **WebVNC**: `WS /ws/vnc/{device_id}` - VNC远程桌面连接 --- ## 🔐 安全说明 ### 凭证加密 系统使用AES-256-GCM算法加密存储设备凭证密码: - 加密密钥文件: `backend/.credential_master_key` - ⚠️ **此文件非常重要,丢失将无法解密已存储的密码** - 首次运行时自动生成 - 打包部署时会自动复制到部署包 - 更新版本时保留原有密钥文件 ### JWT认证 - Token有效期: 24小时(可配置) - 算法: HS256 - 生产环境请修改 `JWT_SECRET_KEY` ### HTTPS/SSL - 生产环境强烈建议使用HTTPS - 可使用自签名证书或Let's Encrypt证书 - 证书配置在 `backend/.env` 中 --- ## 🐛 故障排查 ### 常见问题 1. **端口被占用** ```bash # 检查端口占用 netstat -tunlp | grep 8443 ss -tlnp | grep 8443 ``` 2. **数据库连接失败** - 检查MySQL服务状态: `systemctl status mysqld` - 验证配置文件中的数据库连接信息 - 测试连接: `mysql -u root -p network_monitor` 3. **WebSocket连接失败** - 检查CORS配置 - 确认SSL证书有效 - 查看后端日志 4. **设备远程连接失败** - 检查凭证密钥文件 - 验证设备凭证配置 - 测试网络连通性 5. **Go采集服务无响应** - 检查服务状态: `ps aux | grep collector` - 检查9090端口: `netstat -tunlp | grep 9090` - 查看日志: `tail -f logs/collector.log` --- ## 📄 许可证 本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。 --- ## 👥 贡献指南 欢迎提交Issue和Pull Request! --- ## 📞 联系方式 - **仓库地址**: https://gitee.com/lxq-wx/net-view-pro - **问题反馈**: 提交Issue --- ## 🙏 致谢 感谢以下开源项目: - [Vue.js](https://vuejs.org/) - [FastAPI](https://fastapi.tiangolo.com/) - [Element Plus](https://element-plus.org/) - [SQLAlchemy](https://www.sqlalchemy.org/) - [Xterm.js](https://xtermjs.org/) - [ECharts](https://echarts.apache.org/) --- **⭐ 如果这个项目对你有帮助,请给个Star支持一下!**