全网拓扑自动发现与服务器全维度监控的技术实践

MSRM3:全网拓扑自动发现与服务器全维度监控的技术实践

一、背景

在企业网络运维中,两个问题长期存在:一是网络拓扑难以快速获取,二是网络设备与服务器监控相互割裂。

传统方案通常需要手动绘制拓扑图,或依赖LLDP/CDP协议逐台采集邻居信息。服务器监控则往往单独部署一套系统,与网络拓扑没有关联,故障排查时需要在多个平台间切换。

MSRM3是一款基于.NET 10 AOT技术构建的运维平台,单文件交付(约30MB),无需数据库和环境依赖,同时支持网络设备监控与服务器主机监控。本文从技术实现角度,介绍其核心功能模块。

二、全网拓扑自动发现:基于SNMP的分层探测机制

2.1 传统方式的局限

常见的拓扑发现方法有两种:

  • 基于LLDP/CDP:需要设备开启协议,且只能获取直连邻居,无法发现完整拓扑
  • 基于SNMP的ARP/MAC分析:采集量大、计算复杂,多数方案无法自动去重和连线计算

2.2 MSRM3的实现方案

MSRM3采用基于SNMP的分层探索机制,完全不依赖LLDP协议:

  1. 起点设定:用户指定一台中心设备IP作为探测起点
  2. ARP分析:采集中心设备的ARP表,提取周边所有IP作为下一轮探测目标
  3. SNMP扫描:对提取的IP进行SNMP通讯扫描,识别支持SNMP的设备
  4. 递归采集:对新发现的设备再次采集ARP表,循环执行,圈层深度可配置(如3层)
  5. 去重与连线计算:自动去重后,通过内置算法计算设备间的连接关系

2.3 实测数据

在锐捷SDN大二层架构网络中(核心设备N18000,汇聚与接入设备均为二层透传模式):

阶段 操作 数据量
核心ARP扫描 采集核心设备ARP表 发现21,361个IP
首轮SNMP扫描 对2万+IP发起SNMP通讯 463台设备响应,发现2,844个新IP
次轮SNMP扫描 对2,844个新IP再次扫描 新增9台设备,发现22个新IP
第三轮扫描 无新增设备 结束

最终结果:识别473台设备,自动计算生成467根连接线,拓扑图按核心层-汇聚层-接入层自动排布。

三、服务器全维度监控:跨平台Agent架构

3.1 覆盖范围

MSRM3支持Windows x64、Linux x64、Linux ARM64三大架构,可监控的服务器指标包括:

维度 具体指标
基础硬件 CPU核心数/使用率、物理内存/虚拟内存总量及占用率
磁盘存储 磁盘IO(IOPS/读写次数/平均延时)、分区容量/已用/空闲/使用率
系统运行 系统负载(1/5/15分钟)、总进程数、总线程数
网络状态 TCP监听数/已连接数/握手数/等待关闭/重传率
网络流量 收发比特率、收发包转发率、接口状态
业务层 系统服务状态、指定进程(新增/退出/重启/PID变化)、TCP端口存活、Web存活、SSL证书有效期

3.2 接入流程

前端配置(Windows/Linux一致):

  1. 拓扑空白区新建辅助设备
  2. 双击进入编辑模式,点击"升级为通用主机设备"
  3. 选择操作系统类型(Windows/Linux)

代理部署

  • Windows:下载代理压缩包,解压后双击代理控制台,两个配置项均选"是"(允许自动更新 + 注册为系统服务)
  • Linux:解压后对照README执行两条命令完成安装启动

3.3 数据采集机制

  • 采集频率:核心指标默认每分钟自动更新
  • 历史存储:开启性能记录后,持续记录CPU、内存、虚拟内存等历史数据
  • 趋势分析:支持多指标叠加对比图表,可缩放拖拽回溯任意时间点

3.4 业务层监控细节

进程监控:可监测指定进程的新增、退出、重启及PID变化,按需选择仅记录状态或触发告警。

TCP端口监控:加载本机TCP监听列表后,选中业务对应套接字即可快速添加监控,实时监测端口存活状态。

SSL证书监控:填入HTTPS站点的URL,系统同步监控证书有效期,可设置剩余指定天数每日提醒,避免证书过期导致的业务中断。

四、IP精准定位:基于拓扑关系的逐跳查询

4.1 传统手动定位流程

定位一个IP所在的交换机端口,传统方式需要:

  1. 登录核心交换机,查询ARP表获取MAC地址
  2. 查询MAC表获取端口
  3. 查询LLDP/CDP获取邻居设备IP
  4. 登录邻居设备,重复2-3步
  5. 循环直至某端口无邻居设备

在多层网络架构中,此流程需重复6-7次,单次定位耗时10-20分钟。

4.2 MSRM3的自动化方案

MSRM3的实现逻辑:

  1. 用户选择起点设备,右键选择"从此设备出发全网定位IP或MAC"
  2. 输入目标IP,系统启动定位流程
  3. 通过SNMP采集当前设备的ARP表、MAC表、路由表
  4. 解析目标地址对应的端口
  5. 若目标不在当前设备,结合已构建的拓扑关系定位下一跳设备
  6. 递归执行3-5步
  7. 实时记录并展示途经设备及互联端口

4.3 实测对比

在穿越7层设备的复杂网络场景中:

  • 手动定位:约20分钟
  • MSRM3定位:约1分钟

结果完全一致。

五、3D物理拓扑:空间化网络管理

5.1 解决的问题

传统2D拓扑图无法反映设备的物理位置------设备在几号楼、几层、几号机柜,无从得知。故障排查时仍需要结合工单或人工记忆。

5.2 实现方式

MSRM3的3D拓扑基于WebGL渲染引擎实现:

底图处理

  • 上传园区平面图作为底图
  • 通过比例校准功能(内置49个设备立方体模型作为参照)调整底图与实际尺寸的比例关系

建筑建模

  • 沿底图建筑轮廓打点绘制多边形
  • 设置地上/地下楼层数及建筑总高度
  • 系统自动生成楼板结构

设备布放

  • 建筑内布放:选中建筑→设置建筑内设备布局→从左侧设备分组中选择设备→在楼层平面图上点击布放
  • 室外布放:在地面标记点→选择设备→添加到当前位置

链路渲染

  • 系统自动根据2D拓扑逻辑关系生成立体彩色线条
  • 建筑默认为半透明材质,避免遮挡内部设备和链路

5.3 交互功能

  • 视角:360度旋转、俯视/平视切换、穿透地面查看地下空间
  • 定位:设备搜索(名称/IP/MAC/描述)自动高亮并调整视角
  • 告警联动:点击告警的"定位设备"自动跳转至故障设备位置

5.4 性能支撑

  • WebSocket长连接实时推送设备状态
  • 设备ID与3D模型一一映射,状态更新毫秒级响应
  • 射线检测技术实现鼠标交互

六、监控数据存储与告警机制

6.1 数据采集策略

MSRM3采用分层采集策略:

  • 基础性能数据(CPU、内存、分钟级流量):每分钟定时SNMP查询写入存储
  • 秒级实时流量:通过高频请求获取,平衡实时性与系统资源占用

6.2 历史数据回溯

  • 开启性能记录的指标可查看多维度趋势图
  • 图表支持缩放、拖拽回看任意时间节点
  • 多个相关指标可同图叠加对比

6.3 阈值告警配置

告警触发条件支持灵活配置:

  • 指标类型:CPU/内存使用率、端口状态变化、流量阈值等
  • 持续时长:如"连续3分钟内平均值超过70%"
  • 阈值填写方式:纯数字、带单位数字(如500K、0.5兆)、百分比(如85%)

6.4 防抖机制

采用时间轮询延迟推送策略:故障及时恢复则终止推送,超时未恢复才触发告警,避免瞬时波动导致无效告警。

6.5 存储扩展

默认内置轻量存储引擎,针对超大规模网络或长周期审计场景,可选启用TDengine国产时序数据库,通过存储接口抽象层实现无缝切换。

七、网络工具集:集成化运维辅助能力

MSRM3在Web端集成了多个运维工具,无需安装第三方软件:

类别 工具 功能说明
配置生成 批量脚本生成 按设定规律生成多个设备配置
网络检测 Ping/TCP延时测试 检查设备响应速度
网络检测 端口扫描 指定IP、端口范围、并发数,快速获取开放端口
网络检测 DNS解析 指定DNS服务器进行各类记录查询
网络检测 SNMP采集测试 指定团体名、OID范围,检验设备SNMP响应
数据处理 IP计算器 计算IP范围、主机、广播地址、通配符掩码
数据处理 文本对比 精确到每行每个字符的差异比较
辅助工具 进制转换/编码加解密/时间戳转换/二维码生成 ---

这些工具全部运行在服务端,前端仅做交互展示,不依赖本地环境。

八、日志管理:Syslog与SNMP Trap集成

MSRM3内置了Syslog和SNMP Trap接收服务:

技术实现

  • SNMP Trap:UDP 162端口异步监听,自研解码器实现OID结构化提取
  • Syslog:UDP 514端口监听,自研引擎匹配RFC标准拆分日志字段

功能特性

  • 通过IP映射表关联拓扑设备ID
  • 支持多维度筛选、全文检索
  • 设备性能记录、端口流量记录统计分析
  • 可指定时间范围清理历史数据

九、部署与迁移

9.1 Windows部署

  • 系统要求:Windows 10 / Server 2016及以上(x64架构)
  • 操作:双击主程序 → 设置Web端口(如*:80*:8080)→ 浏览器自动打开管理界面 → 创建管理员账户
  • 服务注册:Web管理界面【系统设置】→【注册为系统服务】,实现开机自启

9.2 Linux部署

  • 系统要求:glibc ≥ 2.28,支持x86_64和ARM64架构
  • 兼容性:Debian 10、Ubuntu 19、CentOS 8、银河麒麟V10 SP1、统信UOS V20等
  • 操作:wget下载主程序 → chmod +x → 执行 → 设置Web端口 → 浏览器访问服务器IP → 创建管理员账户
  • 服务注册:控制台一键注册为systemd服务

9.3 迁移操作

  1. 停止旧机器MSRM3服务
  2. 卸载服务(/u参数或SC DELETE命令)
  3. 打包备份:主程序 + *.dat配置文件
  4. 新机器解压部署
  5. 注册系统服务

配置文件(MSRM3Base.dat)必须保留,日志文件可按需选择是否保留。

十、技术演进路线

MSRM系列自2010年启动开发,关键节点:

时间 版本/功能 技术要点
2010.09 MSRM 自动化采集设备信息与端口流量
2011.11 MSRM2 数据采集服务+网站服务+客户端三层架构
2020.03 MSRM3测试版 HTML5-SVG动态拓扑、实时流量可视化
2020.07 微信告警推送 多通道告警
2021.09 运维工具集成 端口扫描、批量脚本、OLT设备适配
2022.10 前端重构 React 18 + Ant Design 4.x
2023.10 日志服务 Syslog + SNMP Trap集中管理
2024.11 数据清理机制 智能数据保留策略
2025.09 AOT重构版 .NET 9 AOT,全平台单文件
2025.11 .NET 10升级 自研SNMPv3编解码模块
2025.12 3D拓扑 WebGL三维场景构建
2026.01 零代码大屏 可视化大屏编辑器
2026.03 TDengine集成 时序数据库扩展
2026.05 服务器全维度监控 主机Agent + 自定义监控

结语

MSRM3在30MB的单文件体积内,实现了网络设备监控与服务器监控的统一,涵盖了拓扑自动发现、IP精准定位、3D可视化、多维度告警、日志管理、集成化工具集等企业运维核心能力。

其技术特点可概括为:

  • 基于SNMP的分层探测机制:不依赖LLDP,适配更广泛的网络环境
  • 跨平台Agent架构:统一纳管Linux/Windows服务器
  • 空间化运维:3D拓扑实现物理位置与网络状态联动
  • 弹性存储:内置引擎与TDengine可选切换
  • 全栈自研:从协议解析到前端渲染,无开源依赖

对于正在评估网络运维方案的技术团队,MSRM3的技术架构和功能覆盖值得参考。

相关推荐
Ysn07197 小时前
中文乱码:在 Docker 容器中设置中文语言环境
运维·python·docker·容器
米高梅狮子7 小时前
01.CentOS-Stream-8-packstack安装OpenStack
linux·云原生·容器·kubernetes·centos·自动化·openstack
small_white_robot8 小时前
(Win)文件上传数据流绕过-面试常考
网络·安全·web安全·网络安全
xiaoye-duck8 小时前
《Linux系统编程》Linux基础开发工具 (二):详解自动化构建 make / Makefile
linux
OpsEye8 小时前
数据库连接池爆了,这3个命令能救你一次
运维·数据库·后端
cui_ruicheng8 小时前
Linux网络编程(五):基于UDP实现DictServer
linux·服务器·网络·udp
辣椒思密达8 小时前
住宅IP纯净度评估方法:黑名单、风险评分与历史行为检测
运维·服务器·网络
Terasic友晶科技8 小时前
答疑解惑|为DE25-Nano开发板配置Linux kernel时.config文件没有起作用是什么原因?
linux·服务器·fpga开发·linux kernel·de25-nano
寻道模式8 小时前
【运维心得】2000块的打印机复活记
运维·hp·喷墨打印机·墨盒