This guide will help you to get familiar with SNMP Connector configuration for NDU Gateway.
Use general configuration guide to enable this Connector.
The purpose of this Connector is to get data from SNMP managers objects and write some data there.
This connector is useful when you have SNMP manager in your network and you would like to push this data to the NDU.
We will describe connector configuration file below.
Connector configuration is a JSON file that contains information about SNMP managers and how to process the data.
Let’s review the format of the configuration file using example below.
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"
}
]
}
]
}
The general section of the configuration contains “devices” list. Every item will be processed as a separate device. Main configuration for the device item should contain the following parameters:
Parameter | Default value | Description |
---|---|---|
deviceName | SNMP router | Device name in NDU. |
deviceType | snmp | Device type in NDU. |
ip | snmp.live.gambitcommunications.com | Ip or hostname of SNMP manager. |
port | 161 | SNMP port. |
pollPeriod | 5000 | Period for data checking. |
community | public | Type of community public or private. |
This configuration section contains array of objects with configuration for data processing, objects configured there will be processed as device attributes.
By default, the gateway uses uplink converter which sends received data from SNMP manager to the NDU, but it is possible to provide custom converter.
Note: Some configuration parameters in configuration objects depend on used method. You can read more about specific configuration parameters for methods here
General configuration parameters are:
| Parameter | Default value | Description | |:-|:-|-
| key | ReceivedFromGet | Attribute key in device on NDU. | | method | get | Method for data processing. Supported methods are here. | | oid | 1.3.6.1.2.1.1.1.0 | Manager object identifier. | |—
Configuration section item example:
1
2
3
4
5
{
"key": "ReceivedFromGet",
"method": "get",
"oid": "1.3.6.1.2.1.1.1.0"
}
This configuration section contains array of objects with configuration for data processing, objects configured there will be processed as device telemetry.
By default, the gateway uses uplink converter which sends received data from SNMP manager to the NDU, but it is possible to provide custom converter.
Note: Some configuration parameters in configuration objects depend on used method. You can read more about specific configuration parameters for methods here
General configuration parameters are:
| Parameter | Default value | Description | |:-|:-|-
| key | ReceivedFromTable | Telemetry key in device on NDU. | | method | table | Method for data processing. Supported methods are here. | | oid | 1.3.6.1.2.1.1 | Manager object identifier. | |—
Configuration section item example:
1
2
3
4
5
{
"key": "ReceivedFromTable",
"method": "table",
"oid": "1.3.6.1.2.1.1"
}
Configuration in this section are optional.
NDU allows to provision device attributes and fetch some of them from the device application.
You can treat this as a remote configuration for devices. Your devices are able to request shared attributes from NDU.
See user guide for more details.
The “attributeUpdateRequests” configuration allows configuring the format of the corresponding attribute request and response messages.
Parameter | Default value | Description |
---|---|---|
attributeFilter | dataToSet | Shared attribute name. |
method | set | Method for data processing. Supported methods are here. |
oid | 1.3.6.1.2.1.1 | Manager object identifier. |
The attributeUpdates section will look like:
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}"
}
}
]
Note: In this section ”${attribute}” in value parameter will be replaced by shared attribute value.
NDU allows sending RPC commands to the device that is connected to NDU directly or via Gateway.
Configuration, provided in this section uses for sending RPC requests from NDU to device through the gateway.
Parameter | Default value | Description |
---|---|---|
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
"serverSideRpc": [
{
"deviceNameFilter": ".*",
"methodFilter": "echo",
"requestUrlExpression": "http://127.0.0.1:5001/${deviceName}",
"responseTimeout": 1,
"HTTPMethod": "GET",
"valueExpression": "${params}",
"timeout": 0.5,
"tries": 3,
"httpHeaders": {
"Content-Type": "application/json"
},
"security": {
"type": "anonymous"
}
},
{
"deviceNameFilter": ".*",
"methodFilter": "no-reply",
"requestUrlExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
"HTTPMethod": "POST",
"valueExpression": "${params}",
"httpHeaders": {
"Content-Type": "application/json"
}
}
]
Supported methods are:
get
Specific configuration parameters:
timeout - Request timeout in seconds.
Configuration example:
1
2
3
4
5
6
{
"key": "ReceivedFromGet",
"method": "get",
"oid": "1.3.6.1.2.1.1.1.0",
"timeout": 6
}
multiget
Specific configuration parameters:
oid - Array of object identifiers.
timeout - Request timeout in seconds.
Configuration example:
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
Specific configuration parameters:
timeout - Request timeout in seconds.
Configuration example:
1
2
3
4
5
6
{
"key": "ReceivedFromGetNext",
"method": "getnext",
"oid": "1.3.6.1.2.1.1.1.0",
"timeout": 6
}
multiwalk
Specific configuration parameters:
oid - Array of object identifiers
Configuration example:
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
Specific configuration parameters:
oid - Array of object identifiers
Configuration example:
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
Specific configuration parameters:
scalardOid - Array of non-repeaters object identifiers.
repeatingOid - Array of max-repetitions object identifiers.
maxListSize - Maximum size of the returning list.
Configuration example:
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
Specific configuration parameters:
community - Manager object community type.
Configuration example:
1
2
3
4
5
6
{
"key": "ReceivedFromWalk",
"community": "private",
"method": "walk",
"oid": "1.3.6.1.2.1.1.1.0"
}
table
Configuration example:
1
2
3
4
5
{
"key": "ReceivedFromTable",
"method": "table",
"oid": "1.3.6.1.2.1.1"
}
set This method is used to write data into single object by it’s identifier.
Configuration example:
1
2
3
4
5
{
"attributeFilter": "dataToSet",
"method": "set",
"oid": "1.3.6.1.2.1.1.1.0"
}
multiset This method is used to write data into multiply object by their’s identifiers.
Specific configuration parameters:
mapping - Contains pair of object identifier and value.
Configuration example:
1
2
3
4
5
6
7
8
{
"attributeFilter": "dataToMultiSet",
"method": "multiset",
"mappings": {
"1.2.3": "10",
"2.3.4": "${attribute}"
}
}
Explore guides related to main NDU features: