RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • 🤖智能体框架
  • 🦀TPCLAW 智能体平台 (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • 🤖智能体框架
  • 🦀TPCLAW 智能体平台 (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • 快速入门

  • 规则链

  • 标准组件

  • 扩展组件

    • 扩展组件概述
    • 过滤器

    • 动作

    • 转换器

    • 外部的

    • ai

    • CI

    • IoT

      • IoT 组件概览
      • 输入端点

      • 协议采集

        • OPC_UA Read
        • OPC_UA Write
        • Modbus Node
        • 串口通信
        • S7 读
        • S7 写
        • EtherNet/IP 读
        • EtherNet/IP 写
        • SNMP 读
          • 配置
          • 点位(Point)字段说明
          • 输出
          • 特性
          • Relation Type
          • 示例
        • SNMP 写
        • Modbus 点位读
        • Modbus 点位写
        • 通用采集读
        • IoT 写
        • IEC 104 读
        • IEC 104 写
        • FINS 读
        • FINS 写
        • MC Node
        • MC 读
        • MC 写
        • DL/T 645 Node
        • DL/T 645 读
        • DL/T 645 写
      • 时序数据库

      • 控制

      • IoT 场景示例
    • 流式计算

    • 服务发现

    • 文件

  • 自定义组件

  • 组件市场

  • 可视化

  • AOP

  • 触发器

  • 高级主题

  • 智能体框架

  • RuleGo-Server

  • 问题

目录

SNMP 读

x/snmpRead 组件:v0.37.0+ 用于通过 SNMP 协议(v1/v2c/v3)批量读取网络/设施设备(交换机/路由器/UPS/传感器等)的 OID 数据。

需要额外引入扩展库: rulego-components-iot (opens new window)

# 配置

字段 类型 说明 默认值
server string 设备地址(host 或 host:port,默认端口 161) 127.0.0.1:161
version string SNMP 版本,可选值:v1/v2c/v3 v2c
community string community 字符串(v1/v2c 使用) public
timeout int 请求超时时间(秒) 5
v3 安全参数 以下字段仅 version=v3 时使用,对应 SNMPv3 USM 安全模型
securityLevel string 安全级别,可选值:noAuthNoPriv/authNoPriv/authPriv noAuthNoPriv
username string v3 用户名 无
authProtocol string 认证协议,可选值:None/MD5/SHA/SHA224/SHA256/SHA384/SHA512 None
authPassword string 认证密码 无
privProtocol string 加密协议,可选值:None/DES/AES/AES192/AES256 None
privPassword string 加密密码 无
points 默认点位表
points []Point 默认采集点位列表;当 msg.Data 携带合法点位时优先使用 msg.Data 无

# 点位(Point)字段说明

每个 Point 的字段(读节点仅使用 name/addr):

字段 类型 说明 默认值
name string 点位名称,用于结果标识 无
addr string SNMP OID,如 1.3.6.1.2.1.1.5.0;加 walk: 前缀(大小写不敏感,如 walk:1.3.6.1.2.1.2.2.1.10)表示遍历子树,可能返回多条数据;无前缀为 Get 无
scale float 可选,缩放系数,换算公式 eng = raw*scale + offset 1
offset float 可选,偏移量 0

所有字段均支持 ${msg.xx} / ${metadata.xx} 模板变量。type/value 字段为写节点专用,读节点不使用。

# 输出

读取结果(统一契约 Data 列表)写回 msg.Data,dataType 置为 JSON。格式:

[
  {
    "name": "sysName",
    "address": "1.3.6.1.2.1.1.5.0",
    "value": "router-01",
    "type": "OctetString",
    "quality": "good",
    "timestamp": "2026-07-23T10:00:00.123Z"
  }
]
1
2
3
4
5
6
7
8
9
10
字段 类型 说明
name string 点位名称(来自配置)
address string 实际返回的 OID(当 addr 带 walk: 前缀时为子树下具体节点)
value any 值,类型由 SNMP PDU 类型决定
type string SNMP 类型字符串:Integer/OctetString/ObjectIdentifier/IPAddress/Counter32/Gauge32/TimeTicks/Counter64/Null
quality string 数据质量:good(成功)/ bad(失败)
timestamp string 采集时间戳(RFC3339 格式)

带 walk: 前缀的点位可能返回多条数据;单个点位失败不影响其它点位(标记 quality=bad)。仅当全部点位都失败(疑似连接级错误)时才触发重连重试。

# 特性

  • 定时采集:搭配 endpoint/schedule 端点前置触发,OID 在 points 中配置。
  • 模板变量:点位字段(addr 等)支持 ${msg.xx} / ${metadata.xx} 占位符。
  • 动态点位:msg.Data 携带合法点位列表(JSON 数组)时优先使用,适合运行时动态决定采集点位的场景。
  • 同链连接池:启用 ref:// 同链连接复用,链内其它节点可按节点 ID 借用连接,避免重复建连。参考组件连接复用。
  • 自动重连重试:连接级失败(全部 OID 失败)自动重建连接并重试,最多 3 次(maxRetries=3)。
  • SNMPv3 USM:完整支持 v3 User Security Model(认证 + 加密)。

# Relation Type

  • Success: 读取成功,把消息发送到 Success 链。
  • Failure: 读取失败,把消息发送到 Failure 链。

# 示例

{
  "ruleChain": {
    "name": "snmp read demo",
    "root": true
  },
  "metadata": {
    "nodes": [
      {
        "type": "x/snmpRead",
        "name": "读取设备信息",
        "configuration": {
          "server": "192.168.1.1:161",
          "version": "v2c",
          "community": "public",
          "timeout": 5,
          "points": [
            { "name": "sysName", "addr": "1.3.6.1.2.1.1.5.0" },
            { "name": "ifInOctets", "addr": "walk:1.3.6.1.2.1.2.2.1.10" }
          ]
        }
      }
    ]
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

SNMPv3 示例配置片段:

{
  "server": "192.168.1.1:161",
  "version": "v3",
  "timeout": 5,
  "securityLevel": "authPriv",
  "username": "admin",
  "authProtocol": "SHA",
  "authPassword": "authPass",
  "privProtocol": "AES",
  "privPassword": "privPass",
  "points": [
    { "name": "sysUpTime", "addr": "1.3.6.1.2.1.1.3.0" }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
在 GitHub 上编辑此页 (opens new window)
上次更新: 2026/07/29, 07:07:39
EtherNet/IP 写
SNMP 写

← EtherNet/IP 写 SNMP 写→

Theme by Vdoing | Copyright © 2023-2026 RuleGo Team | Apache 2.0 License

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式