产品定价 立即试用
IoT网关
文档 > 配置指南 > SNMP连接器
入门
安装
目录

SNMP连接器配置

本指南将帮助您熟悉ThingsBoard IoT Gateway的SNMP连接器配置。
请使用通用配置指南启用此连接器。
该连接器的用途是从SNMP管理器对象获取数据并向其写入数据。

当您的网络中有SNMP管理器并希望将数据推送至ThingsBoard时,此连接器非常有用。

下面将介绍连接器配置文件的内容。

连接器配置:snmp.json

连接器配置是一个JSON文件,包含有关SNMP管理器及数据处理方式的信息。
让我们通过以下示例来了解配置文件的格式。

SNMP连接器配置文件示例。

以下示例将连接到snmp.live.gambitcommunications.com上的管理器。
然后,连接器将尝试使用attributes和telemetry部分的配置从对象中读取数据。更多信息请参阅下方说明。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{
  "devices": [
    {
      "deviceName": "SNMP router",
      "deviceType": "snmp",
      "ip": "snmp.live.gambitcommunications.com",
      "port": 161,
      "pollPeriod": 5000,
      "community": "public",
      "attributes": [
        {
          "key": "ReceivedFromGet",
          "method": "get",
          "oid": "1.3.6.1.2.1.1.1.0",
          "timeout": 6
        },
        {
          "key": "ReceivedFromMultiGet",
          "method": "multiget",
          "oid": [
            "1.3.6.1.2.1.1.1.0",
            "1.3.6.1.2.1.1.2.0"
          ],
          "timeout": 6
        },
        {
          "key": "ReceivedFromGetNext",
          "method": "getnext",
          "oid": "1.3.6.1.2.1.1.1.0",
          "timeout": 6
        },
        {
          "key": "ReceivedFromMultiWalk",
          "method": "multiwalk",
          "oid": [
            "1.3.6.1.2.1.1.1.0",
            "1.3.6.0.1.2.1"
          ]
        },
        {
          "key": "ReceivedFromBulkWalk",
          "method": "bulkwalk",
          "oid": [
            "1.3.6.1.2.1.1.1.0",
            "1.3.6.1.2.1.1.2.0"
          ]
        },
        {
          "key": "ReceivedFromBulkGet",
          "method": "bulkget",
          "scalarOid": [
            "1.3.6.1.2.1.1.1.0",
            "1.3.6.1.2.1.1.2.0"
          ],
          "repeatingOid": [
            "1.3.6.1.2.1.1.1.0",
            "1.3.6.1.2.1.1.2.0"
          ],
          "maxListSize": 10
        }
      ],
      "telemetry": [
        {
          "key": "ReceivedFromWalk",
          "community": "private",
          "method": "walk",
          "oid": "1.3.6.1.2.1.1.1.0"
        },
        {
          "key": "ReceivedFromTable",
          "method": "table",
          "oid": "1.3.6.1.2.1.1"
        }
      ],
      "attributeUpdateRequests": [
        {
          "attributeFilter": "dataToSet",
          "method": "set",
          "oid": "1.3.6.1.2.1.1.1.0"
        },
        {
          "attributeFilter": "dataToMultiSet",
          "method": "multiset",
          "mappings": {
            "1.2.3": "10",
            "2.3.4": "${attribute}"
          }
        }
      ],
      "serverSideRpcRequests": [
        {
          "requestFilter": "setData",
          "method": "set",
          "oid": "1.3.6.1.2.1.1.1.0"
        },
        {
          "requestFilter": "multiSetData",
          "method": "multiset"
        },
        {
          "requestFilter": "getData",
          "method": "get",
          "oid": "1.3.6.1.2.1.1.1.0"
        },
        {
          "requestFilter": "runBulkWalk",
          "method": "bulkwalk",
          "oid": [
            "1.3.6.1.2.1.1.1.0",
            "1.3.6.1.2.1.1.2.0"
          ]
        }
      ]
    },
    {
      "deviceName": "SNMP router",
      "deviceType": "snmp",
      "ip": "127.0.0.1",
      "pollPeriod": 5000,
      "community": "public",
      "converter": "CustomSNMPConverter",
      "attributes": [
        {
          "key": "ReceivedFromGetWithCustomConverter",
          "method": "get",
          "oid": "1.3.6.1.2.1.1.1.0"
        }
      ],
      "telemetry": [
        {
          "key": "ReceivedFromTableWithCustomConverter",
          "method": "table",
          "oid": "1.3.6.1.2.1.1.1.0"
        }
      ]
    }
  ]
}

通用部分

配置的通用部分包含“devices”列表。每个条目将作为一个独立设备进行处理。 设备条目的主要配置应包含以下参数:

参数 默认值 描述
deviceName SNMP router ThingsBoard中的设备名称。
deviceType snmp ThingsBoard中的设备类型。
ip snmp.live.gambitcommunications.com SNMP管理器的IP或主机名。
port 161 SNMP端口。
pollPeriod 5000 数据轮询周期。
community public 社区类型,publicprivate

Attributes部分

此配置部分包含一组用于数据处理配置的对象。此处配置的对象将作为设备属性进行处理。
默认情况下,网关使用上行转换器将从SNMP管理器接收到的数据发送至ThingsBoard,但也可以使用自定义转换器。

注意:配置对象中的某些配置参数取决于所使用的方法。您可以在此处了解更多关于各方法的特定配置参数

通用配置参数如下:

参数 默认值 描述
key ReceivedFromGet ThingsBoard中设备的属性键。
method get 数据处理方法。支持的方法请参阅此处
oid 1.3.6.1.2.1.1.1.0 管理器对象标识符。

配置部分条目示例:

1
2
3
4
5
    {
      "key": "ReceivedFromGet",
      "method": "get",
      "oid": "1.3.6.1.2.1.1.1.0"
    }

Telemetry部分

此配置部分包含一组用于数据处理配置的对象。此处配置的对象将作为设备遥测数据进行处理。
默认情况下,网关使用上行转换器将从SNMP管理器接收到的数据发送至ThingsBoard,但也可以使用自定义转换器。

注意:配置对象中的某些配置参数取决于所使用的方法。您可以在此处了解更多关于各方法的特定配置参数

通用配置参数如下:

参数 默认值 描述
key ReceivedFromTable ThingsBoard中设备的遥测数据键。
method table 数据处理方法。支持的方法请参阅此处
oid 1.3.6.1.2.1.1 管理器对象标识符。

配置部分条目示例:

1
2
3
4
5
    {
      "key": "ReceivedFromTable",
      "method": "table",
      "oid": "1.3.6.1.2.1.1"
    }

属性更新请求部分

此部分的配置是可选的。
ThingsBoard允许提供设备属性并从设备应用程序中获取其中一些属性。 您可以将其视为设备的远程配置。您的设备可以从ThingsBoard请求共享属性。 详情请参阅用户指南

attributeUpdateRequests“配置允许配置相应属性请求和响应消息的格式。

参数 默认值 描述
attributeFilter dataToSet 共享属性名称。
method set 数据处理方法。支持的方法请参阅此处
oid 1.3.6.1.2.1.1 管理器对象标识符。

attributeUpdates部分如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
      "attributeUpdateRequests": [
        {
          "attributeFilter": "dataToSet",
          "method": "set",
          "oid": "1.3.6.1.2.1.1.1.0"
        },
        {
          "attributeFilter": "dataToMultiSet",
          "method": "multiset",
          "mappings": {
            "1.2.3": "10",
            "2.3.4": "${attribute}"
          }
        }
      ]

注意:在此部分中,value参数中的”${attribute}”将被替换为共享属性值。

服务端RPC部分

ThingsBoard允许直接或通过网关向连接至ThingsBoard的设备发送RPC命令

此部分提供的配置用于通过网关从ThingsBoard向设备发送RPC请求。

文档信息图标

RPC调用有两种类型:
1.有回复:发送请求后,网关将等待响应并将其发送至ThingsBoard。 2.无回复:发送请求后,网关不会等待响应。

以下提供了两种方法的示例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  "serverSideRpcRequests": [
        {
          "requestFilter": "setData",
          "method": "set",
          "oid": "1.3.6.1.2.1.1.1.0"
        },
        {
          "requestFilter": "multiSetData",
          "method": "multiset"
        },
        {
          "requestFilter": "getData",
          "method": "get",
          "oid": "1.3.6.1.2.1.1.1.0"
        },
        {
          "requestFilter": "runBulkWalk",
          "method": "bulkwalk",
          "oid": [
            "1.3.6.1.2.1.1.1.0",
            "1.3.6.1.2.1.1.2.0"
          ]
        }
      ]
    },
    {
      "deviceName": "SNMP router",
      "deviceType": "snmp",
      "ip": "127.0.0.1",
      "pollPeriod": 5000,
      "community": "public",
      "converter": "CustomSNMPConverter",
      "attributes": [
        {
          "key": "ReceivedFromGetWithCustomConverter",
          "method": "get",
          "oid": "1.3.6.1.2.1.1.1.0"
        }
      ],
      "telemetry": [
        {
          "key": "ReceivedFromTableWithCustomConverter",
          "method": "table",
          "oid": "1.3.6.1.2.1.1.1.0"
        }
      ]
    }
  ]
}

支持的方法及其配置

支持的方法如下:

  • get

    特定配置参数:

    oid -对象标识符数组。

    method -方法名称。

    timeout -请求超时时间(秒)。

    配置示例:

    1
    2
    3
    4
    5
    6
    
     {
       "key": "ReceivedFromGet",
       "method": "get",
       "oid": "1.3.6.1.2.1.1.1.0",
       "timeout": 6
     }
    
  • multiget

    特定配置参数:

    oid -对象标识符数组。

    timeout -请求超时时间(秒)。

    method -方法名称。

    配置示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     {
       "key": "ReceivedFromMultiGet",
       "method": "multiget",
       "oid": [
         "1.3.6.1.2.1.1.1.0",
         "1.3.6.1.2.1.1.2.0"
       ],
       "timeout": 6
     }
    
  • getnext

    特定配置参数:

    oid -对象标识符数组。

    timeout -请求超时时间(秒)。

    method -方法名称。

    配置示例:

    1
    2
    3
    4
    5
    6
    
     {
       "key": "ReceivedFromGetNext",
       "method": "getnext",
       "oid": "1.3.6.1.2.1.1.1.0",
       "timeout": 6
     }
    
  • multiwalk

    特定配置参数:

    oid -对象标识符数组。

    method -方法名称。

    配置示例:

    1
    2
    3
    4
    5
    6
    7
    8
    
     {
       "key": "ReceivedFromMultiWalk",
       "method": "multiwalk",
       "oid": [
         "1.3.6.1.2.1.1.1.0",
         "1.3.6.0.1.2.1"
       ]
     }
    
  • bulkwalk

    特定配置参数:

    oid -对象标识符数组。

    method -方法名称。

    配置示例:

    1
    2
    3
    4
    5
    6
    7
    8
    
     {
       "key": "ReceivedFromBulkWalk",
       "method": "bulkwalk",
       "oid": [
         "1.3.6.1.2.1.1.1.0",
         "1.3.6.1.2.1.1.2.0"
       ]
     }
    
  • bulkget

    特定配置参数:

    scalardOid -非重复对象标识符数组。

    repeatingOid -最大重复对象标识符数组。

    maxListSize -返回列表的最大大小。

    配置示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
     {
       "key": "ReceivedFromBulkGet",
       "method": "bulkget",
       "scalarOid": [
         "1.3.6.1.2.1.1.1.0",
         "1.3.6.1.2.1.1.2.0"
       ],
       "repeatingOid": [
         "1.3.6.1.2.1.1.1.0",
         "1.3.6.1.2.1.1.2.0"
       ],
       "maxListSize": 10
     }
    
  • walk

    特定配置参数:

    community -管理器对象社区类型。

    配置示例:

    1
    2
    3
    4
    5
    6
    
     {
       "key": "ReceivedFromWalk",
       "community": "private",
       "method": "walk",
       "oid": "1.3.6.1.2.1.1.1.0"
     }
    
  • table

    配置示例:

    1
    2
    3
    4
    5
    
     {
       "key": "ReceivedFromTable",
       "method": "table",
       "oid": "1.3.6.1.2.1.1"
     }
    
  • set 此方法用于通过对象标识符向单个对象写入数据。

    配置示例:

    1
    2
    3
    4
    5
    
     {
       "attributeFilter": "dataToSet",
       "method": "set",
       "oid": "1.3.6.1.2.1.1.1.0"
     }
    
  • multiset 此方法用于通过对象标识符向多个对象写入数据。

    特定配置参数:
    mapping -包含对象标识符的键值对。

    配置示例:

    1
    2
    3
    4
    5
    6
    7
    8
    
    {
      "attributeFilter": "dataToMultiSet",
      "method": "multiset",
      "mappings": {
        "1.2.3": "10",
        "2.3.4": "${attribute}"
      }
    }
    

下一步

浏览与ThingsBoard主要功能相关的指南: