master
json 383 lines 11.2 KB
Raw
1 {
2 "jsonSchema": {
3 "$schema": "http://json-schema.org/draft-07/schema#",
4 "type": "object",
5 "properties": {
6 "update_every": {
7 "title": "Update every",
8 "description": "Data collection interval, measured in seconds.",
9 "type": "integer",
10 "minimum": 1,
11 "default": 10
12 },
13 "hostname": {
14 "title": "Hostname",
15 "description": "The hostname or IP address of the SNMP-enabled device.",
16 "type": "string"
17 },
18 "community": {
19 "title": "SNMPv1/2 community",
20 "description": "The SNMP community string for SNMPv1/v2c authentication.",
21 "type": "string",
22 "default": "public"
23 },
24 "create_vnode": {
25 "title": "Create",
26 "description": "If set, the collector will create a [Virtual Node](https://learn.netdata.cloud/docs/netdata-agent/configuration/organize-systems-metrics-and-alerts#virtual-nodes) for this SNMP device, which will appear as a separate Node in Netdata.",
27 "type": "boolean",
28 "default": true
29 },
30 "vnode_device_down_threshold": {
31 "title": "Device Down Threshold",
32 "description": "Number of consecutive failed data collections before marking the device as down.",
33 "type": "integer",
34 "minimum": 1,
35 "default": 3
36 },
37 "vnode": {
38 "title": "Configuration",
39 "description": "",
40 "type": [
41 "object",
42 "null"
43 ],
44 "properties": {
45 "guid": {
46 "title": "GUID",
47 "description": "A unique identifier for the Virtual Node. If not set, a GUID will be automatically generated from the device's IP address.",
48 "type": "string"
49 },
50 "hostname": {
51 "title": "Hostname",
52 "description": "The hostname that will be used for the Virtual Node. If not set, the device's hostname will be used.",
53 "type": "string"
54 },
55 "labels": {
56 "title": "Labels",
57 "description": "Additional key-value pairs to associate with the Virtual Node.",
58 "type": [
59 "object",
60 "null"
61 ],
62 "additionalProperties": {
63 "type": "string"
64 }
65 }
66 }
67 },
68 "options": {
69 "title": "Options",
70 "description": "Configuration options for SNMP monitoring.",
71 "type": [
72 "object",
73 "null"
74 ],
75 "properties": {
76 "version": {
77 "title": "SNMP version",
78 "type": "string",
79 "enum": [
80 "1",
81 "2",
82 "2c",
83 "3"
84 ],
85 "default": "2c"
86 },
87 "port": {
88 "title": "Port",
89 "description": "The port number on which the SNMP service is running.",
90 "type": "integer",
91 "exclusiveMinimum": 0,
92 "default": 161
93 },
94 "timeout": {
95 "title": "Timeout",
96 "description": "The timeout duration in seconds for SNMP requests.",
97 "type": "integer",
98 "minimum": 1,
99 "default": 5
100 },
101 "retries": {
102 "title": "Retries",
103 "description": "The number of retries to attempt for SNMP requests.",
104 "type": "integer",
105 "minimum": 0,
106 "default": 1
107 },
108 "max_repetitions": {
109 "title": "Max repetitions",
110 "description": "Controls how many SNMP variables to retrieve in a single GETBULK request.",
111 "type": "integer",
112 "minimum": 1,
113 "default": 25
114 },
115 "max_request_size": {
116 "title": "Max OIDs",
117 "description": "The maximum number of OIDs allowed in a single GET request.",
118 "type": "integer",
119 "minimum": 1,
120 "default": 20
121 }
122 },
123 "required": [
124 "version",
125 "port",
126 "retries",
127 "timeout",
128 "max_request_size"
129 ]
130 },
131 "user": {
132 "title": "SNMPv3 configuration",
133 "description": "Configuration options for SNMPv3 authentication and encryption.",
134 "type": [
135 "object",
136 "null"
137 ],
138 "properties": {
139 "name": {
140 "title": "Username",
141 "description": "The username for SNMPv3 authentication.",
142 "type": "string"
143 },
144 "level": {
145 "title": "Security level",
146 "description": "Controls the security aspects of SNMPv3 communication, including authentication and encryption.",
147 "type": "string",
148 "enum": [
149 "none",
150 "authNoPriv",
151 "authPriv"
152 ],
153 "default": "authPriv"
154 },
155 "auth_proto": {
156 "title": "Authentication protocol",
157 "type": "string",
158 "enum": [
159 "none",
160 "md5",
161 "sha",
162 "sha224",
163 "sha256",
164 "sha384",
165 "sha512"
166 ],
167 "default": "sha512"
168 },
169 "auth_key": {
170 "title": "Authentication passphrase",
171 "type": "string"
172 },
173 "priv_proto": {
174 "title": "Privacy protocol",
175 "type": "string",
176 "enum": [
177 "none",
178 "des",
179 "aes",
180 "aes192",
181 "aes256",
182 "aes192c"
183 ],
184 "default": "aes192c"
185 },
186 "priv_key": {
187 "title": "Privacy passphrase",
188 "type": "string"
189 },
190 "context_name": {
191 "title": "Context name",
192 "description": "SNMPv3 context name used to address a specific MIB view on multi-context agents (e.g. virtual routers, logical partitions, snmpsim-simulated devices). Leave empty to use the default context.",
193 "type": "string",
194 "default": ""
195 }
196 }
197 },
198 "manual_profiles": {
199 "title": "Manual SNMP Profiles",
200 "description": "Profiles to apply if automatic detection cannot be used. In most cases, **leave this empty**.",
201 "type": [
202 "array",
203 "null"
204 ],
205 "items": {
206 "title": "Profile",
207 "type": "string"
208 },
209 "uniqueItems": true
210 },
211 "ping_only": {
212 "title": "Ping only",
213 "description": "Collect only ICMP round-trip time and skip SNMP profile metrics. Implies ping is enabled regardless of the ping.enabled setting.",
214 "type": "boolean",
215 "default": false
216 },
217 "ping": {
218 "title": "Ping",
219 "type": [
220 "object",
221 "null"
222 ],
223 "properties": {
224 "enabled": {
225 "title": "Enable ping",
226 "type": "boolean",
227 "default": true,
228 "description": "Collect ICMP round-trip time using pro-bing alongside SNMP."
229 },
230 "network": {
231 "title": "Network",
232 "description": "The protocol version used for resolving the specified hosts IP addresses.",
233 "type": "string",
234 "default": "ip",
235 "enum": [
236 "ip",
237 "ip4",
238 "ip6"
239 ]
240 },
241 "privileged": {
242 "title": "Privileged mode",
243 "description": "If set, sends raw ICMP ping packets; otherwise, sends unprivileged UDP ping packets (require [additional configuration](https://github.com/netdata/netdata/tree/master/src/go/plugin/go.d/collector/ping#overview)).",
244 "type": "boolean",
245 "default": true
246 },
247 "interface": {
248 "title": "Interface",
249 "description": "The network device name (e.g., `eth0`, `wlan0`) used as the source for ICMP echo requests.",
250 "type": "string",
251 "default": ""
252 },
253 "packets": {
254 "title": "Packets",
255 "description": "Number of echo requests sent each collection cycle.",
256 "type": "integer",
257 "minimum": 1,
258 "default": 3
259 },
260 "interval": {
261 "title": "Interval",
262 "description": "Timeout between sending ping packets, in seconds.",
263 "type": "number",
264 "minimum": 0.1,
265 "default": 0.1
266 }
267 }
268 }
269 },
270 "required": [
271 "hostname",
272 "community",
273 "options"
274 ]
275 },
276 "uiSchema": {
277 "uiOptions": {
278 "fullPage": true
279 },
280 "manual_profiles": {
281 "ui:listFlavour": "list",
282 "ui:help": "**Profiles are always applied automatically** based on the device sysObjectID. **If no sysObjectID is provided** (rare case, e.g. some printers), the profiles listed here will be applied instead. In most cases, **leave this empty**."
283 },
284 "community": {
285 "ui:widget": "password"
286 },
287 "options": {
288 "version": {
289 "ui:widget": "radio",
290 "ui:options": {
291 "inline": true
292 }
293 },
294 "max_repetitions": {
295 "ui:help": "A higher value retrieves more data in fewer round trips, potentially improving efficiency. This reduces network overhead compared to sending multiple individual requests. **Important**: Setting a value too high might cause the target device to return no data."
296 }
297 },
298 "user": {
299 "name": {
300 "ui:widget": "password"
301 },
302 "level": {
303 "ui:widget": "radio",
304 "ui:options": {
305 "inline": true
306 }
307 },
308 "auth_proto": {
309 "ui:widget": "radio",
310 "ui:options": {
311 "inline": true
312 }
313 },
314 "auth_key": {
315 "ui:widget": "password"
316 },
317 "priv_proto": {
318 "ui:widget": "radio",
319 "ui:options": {
320 "inline": true
321 }
322 },
323 "priv_key": {
324 "ui:widget": "password"
325 },
326 "context_name": {
327 "ui:help": "Advanced. Usually left empty. Required when targeting a specific context on multi-context agents or when driving snmpsim virtual devices."
328 }
329 },
330 "ping_only": {
331 "ui:help": "A minimal SNMP sysInfo query still runs at startup for device identification, profile matching, and metadata."
332 },
333 "ping": {
334 "interface": {
335 "ui:widget": "hidden"
336 },
337 "network": {
338 "ui:widget": "hidden"
339 }
340 },
341 "ui:flavour": "tabs",
342 "ui:options": {
343 "tabs": [
344 {
345 "title": "Base",
346 "fields": [
347 "update_every",
348 "hostname",
349 "community",
350 "manual_profiles"
351 ]
352 },
353 {
354 "title": "Ping",
355 "fields": [
356 "ping_only",
357 "ping"
358 ]
359 },
360 {
361 "title": "Vnode",
362 "fields": [
363 "create_vnode",
364 "vnode_device_down_threshold",
365 "vnode"
366 ]
367 },
368 {
369 "title": "Options",
370 "fields": [
371 "options"
372 ]
373 },
374 {
375 "title": "SNMPv3",
376 "fields": [
377 "user"
378 ]
379 }
380 ]
381 }
382 }
383 }