码粒协议模拟器(MaLi Simulator)是一款专为数据中心监控平台研发测试场景打造的 SNMP 协议模拟工具。
支持 5000+ 独立 IP 模拟设备,每个设备独立配置 OID 响应数据,真实还原大规模监控场景。
支持 GET、GETNEXT、GETBULK 请求,自动响应 OID 子树查询,兼容主流监控平台 SNMP Walk 操作。
支持区间随机、百分比波动、循环递增/递减、固定值、取值序列等多种 OID 值生成算法,灵活模拟真实设备数据变化。
支持 Linux / Windows 双平台,一键将模拟设备监听 IP 挂载到本机网卡,自动管理 IP 地址资源。
支持对真实 SNMP 设备进行 Walk 采集,将采集结果直接导入为模拟设备的 OID 模板,一键复现真实设备数据。
Web 管理控制台提供运行概览、请求统计、请求类型分布、绑定失败日志,引擎状态一目了然。
基于 Spring Boot 3 + SNMP4J 构建,模块化分层设计,高性能、可扩展。
Layui + HTML 静态页面,REST API 通信
Java 17+,MyBatis-Plus,HikariCP 连接池
多线程工作池,支持 GET/GETNEXT/GETBULK
6 张核心表,启动自动建表(幂等)
模块化架构 · mali-sim-common(公共模型 + 值生成器) + mali-sim-snmp(SNMP 协议引擎) + mali-sim-server(管理服务)
预留 SSH / Telnet / IPMI 协议扩展接口,未来可扩展为多协议模拟器
覆盖监控平台研发测试全流程的核心需求
为自研监控平台提供大规模模拟设备,验证轮询调度、数据采集、告警触发等核心功能,无需依赖真实硬件设备。
模拟数千台设备同时响应 SNMP 请求,检验监控平台在高并发场景下的吞吐能力与稳定性。
开发环境中快速搭建模拟设备环境,配合真实设备采集导入功能,复现真实设备数据特征,加速联调进度。
码粒协议模拟器,快速部署,即刻使用
安装 Java 17+ 和 MySQL 8.0+,确保 MySQL 服务正常运行。
登录 MySQL 并创建数据库(若使用默认配置则创建 mali_sim):
CREATE DATABASE IF NOT EXISTS mali_sim DEFAULT CHARSET utf8mb4;
下载安装包并解压到目标目录,得到 mali-sim-server.jar 可执行文件。
编辑配置文件,修改数据库连接信息(如有需要):
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mali_sim?rewriteBatchedStatements=true spring.datasource.username=root spring.datasource.password=root
运行以下命令启动模拟器:
java -jar mali-sim-server.jar
服务启动后,通过浏览器访问管理控制台:
http://localhost:17080/index.html
打开管理控制台,进入「运行概览」页面,确认引擎已启动。使用 SNMP 工具对模拟设备进行 Walk 测试:
snmpwalk -v2c -c public 127.0.0.1:11611 1.3.6
也可通过控制台自带的「SNMP 采集」工具进行验证。
从入门到精通,全面掌握码粒协议模拟器的使用方法
运行概览页面是模拟器的「仪表盘」,实时展示 SNMP 模拟引擎的运行状态、请求统计数据和设备信息。
公共 OID 管理页面提供了一个 OID 与名称的对照字典,用于为 OID 模板页面一键同步 OID 名称,方便识别和管理。
设备型号是模拟设备的基础模板,定义了一类设备的 SNMP 版本、共同体等公共属性。每个型号可以关联多个 OID 模板和模拟设备。
OID 模板是模拟器的核心功能,定义设备型号下每个 OID 节点的响应值和生成算法。支持多种数据生成策略,灵活模拟真实设备的数据变化。
对于表格型 OID(如 ifTable、ipAddrTable),支持配置「表模板」模式。启用后,取值序列中的每个值作为实例索引,生成多行实例数据,配合 GETNEXT/GETBULK 实现完整的 Walk 遍历。
模拟设备是绑定到具体 IP 地址的设备实例,基于设备型号和 OID 模板生成 SNMP 响应数据。
实例数据覆盖功能允许对单台模拟设备的特定 OID 单独配置值生成策略,覆盖设备型号模板中的默认配置。适用于需要个别设备返回特殊数据的场景,如模拟故障设备、高负载设备等。
网卡 IP 管理工具负责将模拟设备配置的监听 IP 挂载到本机网卡上,使 SNMP 引擎能够监听这些 IP 地址上的请求。支持 Linux 和 Windows 双平台。
ip addr replace 批量挂载 /32 纯主机地址,通过 dummy 网卡可承载数千个 IP。netsh 命令挂载 IP,单网卡可用约 100~255 个 IP,更多需添加 KM-TEST 回环适配器。
SNMP 采集工具支持从真实 SNMP 设备采集 OID 数据,并将采集结果直接导入为模拟设备的 OID 模板,实现真实设备数据的快速复现。
模拟器提供了 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"
根据实际使用经验,总结以下最佳实践帮助您更高效地使用码粒协议模拟器。
worker-threads 参数匹配并发请求量,建议 ≥ 64有任何问题或建议,欢迎通过以下方式联系