v1.0.0 · SNMP 协议模拟

企业级 SNMP 协议模拟器

专为数据中心监控平台研发测试而设计,支持大规模模拟设备(5000+ IP),灵活配置 OID 响应数据,配合真实设备采集导入,让监控开发测试更高效。

运行概览
模拟器管理控制台 · 运行概览

产品简介

码粒协议模拟器(MaLi Simulator)是一款专为数据中心监控平台研发测试场景打造的 SNMP 协议模拟工具。

大规模模拟

支持 5000+ 独立 IP 模拟设备,每个设备独立配置 OID 响应数据,真实还原大规模监控场景。

完整 SNMP 协议栈

支持 GET、GETNEXT、GETBULK 请求,自动响应 OID 子树查询,兼容主流监控平台 SNMP Walk 操作。

智能数据生成

支持区间随机、百分比波动、循环递增/递减、固定值、取值序列等多种 OID 值生成算法,灵活模拟真实设备数据变化。

网卡 IP 自动挂载

支持 Linux / Windows 双平台,一键将模拟设备监听 IP 挂载到本机网卡,自动管理 IP 地址资源。

真实设备采集导入

支持对真实 SNMP 设备进行 Walk 采集,将采集结果直接导入为模拟设备的 OID 模板,一键复现真实设备数据。

实时运行监控

Web 管理控制台提供运行概览、请求统计、请求类型分布、绑定失败日志,引擎状态一目了然。

技术架构

基于 Spring Boot 3 + SNMP4J 构建,模块化分层设计,高性能、可扩展。

Web 管理控制台

Layui + HTML 静态页面,REST API 通信

Spring Boot 3

Java 17+,MyBatis-Plus,HikariCP 连接池

SNMP4J 引擎

多线程工作池,支持 GET/GETNEXT/GETBULK

MySQL 持久化

6 张核心表,启动自动建表(幂等)

模块化架构 · mali-sim-common(公共模型 + 值生成器) + mali-sim-snmp(SNMP 协议引擎) + mali-sim-server(管理服务)

预留 SSH / Telnet / IPMI 协议扩展接口,未来可扩展为多协议模拟器

适用场景

覆盖监控平台研发测试全流程的核心需求

监控平台开发测试

为自研监控平台提供大规模模拟设备,验证轮询调度、数据采集、告警触发等核心功能,无需依赖真实硬件设备。

性能压测

模拟数千台设备同时响应 SNMP 请求,检验监控平台在高并发场景下的吞吐能力与稳定性。

研发联调

开发环境中快速搭建模拟设备环境,配合真实设备采集导入功能,复现真实设备数据特征,加速联调进度。

下载与安装

码粒协议模拟器,快速部署,即刻使用

Windows 版

码粒协议模拟器 v1.0.0

ZIP 便携包 · 含嵌入式 JRE · 解压即用

下载 Windows 版
🐧

Linux 版

码粒协议模拟器 v1.0.0

TAR.GZ 便携包 · 含嵌入式 JRE · 解压即用

下载 Linux 版

环境要求

运行环境
Java 17+
数据库
MySQL 8.0+
操作系统
Linux / Windows
内存
≥ 512MB(推荐 2GB+)
磁盘
≥ 200MB
网卡 IP 挂载
Linux root / Windows 管理员

安装步骤

1

准备环境

安装 Java 17+MySQL 8.0+,确保 MySQL 服务正常运行。

2

创建数据库

登录 MySQL 并创建数据库(若使用默认配置则创建 mali_sim):

CREATE DATABASE IF NOT EXISTS mali_sim DEFAULT CHARSET utf8mb4;
3

下载并解压

下载安装包并解压到目标目录,得到 mali-sim-server.jar 可执行文件。

4

修改配置

编辑配置文件,修改数据库连接信息(如有需要):

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mali_sim?rewriteBatchedStatements=true
spring.datasource.username=root
spring.datasource.password=root
5

启动服务

运行以下命令启动模拟器:

java -jar mali-sim-server.jar

服务启动后,通过浏览器访问管理控制台:

http://localhost:17080/index.html
6

验证运行

打开管理控制台,进入「运行概览」页面,确认引擎已启动。使用 SNMP 工具对模拟设备进行 Walk 测试:

snmpwalk -v2c -c public 127.0.0.1:11611 1.3.6

也可通过控制台自带的「SNMP 采集」工具进行验证。

使用教程

从入门到精通,全面掌握码粒协议模拟器的使用方法

1 运行概览

运行概览页面是模拟器的「仪表盘」,实时展示 SNMP 模拟引擎的运行状态、请求统计数据和设备信息。

主要功能

  • 引擎状态 — 显示引擎运行/停止状态,支持启动/停止引擎操作
  • 统计卡片 — 展示今日请求总数、成功响应数、请求失败数、模拟设备在线/总数
  • 请求类型分布 — 按 GET / GETNEXT / GETBULK / SET 分类统计请求量
  • 最近失败 — 显示引擎绑定失败的设备 IP 及原因,便于排查问题
  • 自动刷新 — 支持 5 秒自动刷新,实时追踪统计数据变化
提示:引擎启动后,会自动加载所有启用状态的模拟设备并绑定到对应 IP 和端口。如果设备绑定失败,会在「最近失败」区域列出具体原因。
运行概览页面
运行概览页面 — 引擎状态与统计卡片

2 公共 OID 管理

公共 OID 管理页面提供了一个 OID 与名称的对照字典,用于为 OID 模板页面一键同步 OID 名称,方便识别和管理。

操作步骤

  • 新增公共 OID — 点击「新增」按钮,输入 OID 值、名称和备注信息
  • 编辑 — 点击 OID 条目的编辑按钮,修改名称或备注
  • 删除 — 点击删除按钮移除不再需要的公共 OID 条目
  • 本地搜索 — 支持按 OID 或名称关键字进行本地模糊搜索
建议:在配置设备型号的 OID 模板之前,先定义好公共 OID 字典。这样在 OID 模板页面可以一键同步名称,省去手动输入的麻烦。
公共 OID 管理页面
公共 OID 管理页面 — OID 名称对照字典

3 设备型号管理

设备型号是模拟设备的基础模板,定义了一类设备的 SNMP 版本、共同体等公共属性。每个型号可以关联多个 OID 模板和模拟设备。

核心操作

  • 新建型号 — 填写型号名称、描述,选择 SNMP 版本(v1/v2c/v3)和共同体名称
  • 编辑型号 — 修改型号的基本信息
  • 复制型号 — 一键复制型号及其关联的 OID 模板,快速创建相似型号
  • 启停型号 — 切换型号的启用/停用状态,停用后该型号下的所有设备将停止响应
  • 批量操作 — 支持批量修改 SNMP 版本、共同体、启用/停用和删除
设备型号管理页面
设备型号管理页面 — 型号列表与操作

4 OID 模板配置

OID 模板是模拟器的核心功能,定义设备型号下每个 OID 节点的响应值和生成算法。支持多种数据生成策略,灵活模拟真实设备的数据变化。

数据生成算法

  • 固定值(CONSTANT) — 返回固定的 OID 值,适用于系统描述、固件版本等不变信息
  • 区间随机(RANDOM_RANGE) — 在最小值和最大值之间随机取值,模拟 CPU 利用率、内存使用率等动态指标
  • 百分比波动(PERCENT) — 基于基准值按百分比波动,模拟温度、电压等有基准的波动数据
  • 循环递增(INCREMENT) — 从基准值开始按步长递增,到达最大值后重置,模拟计数器(如 ifInOctets)
  • 循环递减(DECREMENT) — 从基准值开始按步长递减,到达最小值后重置
  • 取值序列(SEQUENCE) — 按照预定义的取值列表循环返回,每行一个值,支持逗号分隔

表 OID 支持

对于表格型 OID(如 ifTable、ipAddrTable),支持配置「表模板」模式。启用后,取值序列中的每个值作为实例索引,生成多行实例数据,配合 GETNEXT/GETBULK 实现完整的 Walk 遍历。

提示:配置 OID 模板时,建议先创建公共 OID 字典,然后在 OID 模板页面点击「同步公共 OID 名称」按钮一键填充 OID 名称。
OID 模板配置页面
OID 模板配置页面 — 按设备型号筛选

5 模拟设备管理

模拟设备是绑定到具体 IP 地址的设备实例,基于设备型号和 OID 模板生成 SNMP 响应数据。

操作步骤

  • 新增设备 — 选择设备型号,填写设备名称、IP 地址、端口等基本信息
  • 批量添加 — 支持批量输入 IP 段(如 192.168.1.1-100),快速创建大量模拟设备
  • 修改端口 — 支持批量修改设备的 SNMP 端口号
  • 启用/停用 — 单个或批量切换设备的启用状态,停用后引擎将不再响应该设备的请求
  • 删除设备 — 单个或批量删除模拟设备
注意:新增或修改模拟设备后,引擎会自动增量刷新,无需手动重启。确保设备 IP 已挂载到本机网卡,否则引擎无法绑定监听。
模拟设备管理页面
模拟设备管理页面 — 设备列表

6 实例数据覆盖

实例数据覆盖功能允许对单台模拟设备的特定 OID 单独配置值生成策略,覆盖设备型号模板中的默认配置。适用于需要个别设备返回特殊数据的场景,如模拟故障设备、高负载设备等。

使用场景

  • 模拟某台设备 CPU 利用率持续偏高,触发告警阈值
  • 模拟某台设备接口流量异常,验证监控平台的异常检测逻辑
  • 模拟设备返回特定错误码,测试监控平台的错误处理流程
实例数据覆盖页面
实例数据覆盖页面 — 按设备配置 OID 覆盖

7 网卡 IP 管理

网卡 IP 管理工具负责将模拟设备配置的监听 IP 挂载到本机网卡上,使 SNMP 引擎能够监听这些 IP 地址上的请求。支持 Linux 和 Windows 双平台。

核心功能

  • 概览卡片 — 显示平台类型、权限状态、设备监听 IP 数、已挂载数、待挂载数
  • 一键同步 — 全量同步:挂载缺失 IP + 清理失效 IP
  • 挂载缺失 — 仅挂载尚未绑定的 IP,不影响已有配置
  • 清理无效 — 仅清理已不再使用的 IP 地址
  • 网卡选择 — 下拉选择目标网卡,查看该网卡上的 IP 列表
  • 实时进度 — 异步任务执行,实时显示进度条和操作日志
Linux 系统:使用 ip addr replace 批量挂载 /32 纯主机地址,通过 dummy 网卡可承载数千个 IP。
Windows 系统:使用 netsh 命令挂载 IP,单网卡可用约 100~255 个 IP,更多需添加 KM-TEST 回环适配器。
网卡 IP 管理页面
网卡 IP 管理页面 — 概览与 IP 列表

8 SNMP 采集

SNMP 采集工具支持从真实 SNMP 设备采集 OID 数据,并将采集结果直接导入为模拟设备的 OID 模板,实现真实设备数据的快速复现。

实时采集 Walk

  • 输入目标设备 IP、端口、共同体、SNMP 版本
  • 指定根 OID 进行子树 Walk 采集
  • 设置超时时间和最大采集数量
  • 采集结果以表格形式展示 OID / 类型 / 值

TXT 导入

  • 支持粘贴 snmpwalk 导出的 TXT 文本
  • 解析预览后再导入为指定设备型号的 OID 模板
技巧:先用 SNMP 采集工具从真实设备 Walk 出一组 OID 数据,然后导入到设备型号中,再微调数据生成算法,就能快速创建与真实设备行为一致的模拟设备。
SNMP 采集页面
SNMP 采集页面 — 实时 Walk 采集结果

9 引擎自测

模拟器提供了 HTTP 直连自测接口,不经过 UDP 网络,直接构造 SNMP 请求走引擎处理逻辑,方便在开发环境中验证 GET / GETNEXT / GETBULK 逻辑。

使用方式

通过浏览器或 curl 访问以下接口:

# GET 请求
curl "http://localhost:17080/api/runtime/probe?key=127.0.0.1:11611&oids=1.3.6.1.2.1.1.1.0&op=GET"

# GETNEXT 请求
curl "http://localhost:17080/api/runtime/probe?key=127.0.0.1:11611&oids=1.3.6.1.2.1.1.1&op=GETNEXT"

# GETBULK 请求
curl "http://localhost:17080/api/runtime/probe?key=127.0.0.1:11611&oids=1.3.6.1.2.1.1&op=GETBULK&maxRep=20"
说明:自测接口直接调用引擎内部的 buildResponse 方法,绕过 UDP 套接字发送接收。在沙箱环境(如 Trae 沙箱)中 UDP 包可能被隔离,此时务必使用此接口验证引擎逻辑。

10 最佳实践

根据实际使用经验,总结以下最佳实践帮助您更高效地使用码粒协议模拟器。

工作流程建议

  • 第一步:先在「公共 OID」页面录入常用的 OID 名称对照,建立 OID 字典库
  • 第二步:在「设备型号」页面创建设备型号,配置 SNMP 版本和共同体
  • 第三步:在「OID 模板」页面为型号配置 OID 条目,使用「同步公共 OID 名称」功能填充名称
  • 第四步:在「模拟设备」页面创建设备实例,填写 IP 地址
  • 第五步:在「网卡 IP」页面将设备 IP 挂载到本机网卡
  • 第六步:在「运行概览」页面确认引擎已启动,设备已在线
  • 第七步:使用「SNMP 采集」工具或外部 snmpwalk 工具验证模拟器响应

大规模部署建议

  • 5000+ 模拟设备建议使用 Linux 系统 + dummy 网卡
  • 调整 worker-threads 参数匹配并发请求量,建议 ≥ 64
  • 批量添加设备时使用 IP 段输入,减少重复操作
  • 使用「复制型号」功能快速创建相似设备型号
  • 充分利用「实例数据覆盖」功能模拟个别设备特殊行为

常见问题

  • Q:引擎启动后设备显示离线? — 检查设备 IP 是否已挂载到本机网卡,检查端口是否被占用
  • Q:SNMP Walk 超时? — 先通过「运行概览」确认引擎已启动,设备已绑定。再通过 probe 接口验证引擎逻辑
  • Q:Windows 下 IP 挂载失败? — 确保以管理员权限运行服务,单网卡 IP 建议不超过 255 个
  • Q:修改配置后不生效? — 模拟器支持增量刷新,修改后引擎会自动应用。如果仍有问题,可尝试重启引擎

联系我

有任何问题或建议,欢迎通过以下方式联系

QQ 邮箱

860595563@qq.com

点击邮箱地址可直接发送邮件,我会尽快回复