1snmp(3) Erlang Module Definition snmp(3)
2
3
4
6 snmp - Interface functions to the SNMP toolkit
7
9 The module snmp contains interface functions to the SNMP toolkit.
10
12 The following data-types are used in the functions below:
13
14 * datetime() = {date(), time()}
15
16 See calendar for more info.
17
19 config() -> ok | {error, Reason}
20
21 A simple interactive configuration tool. Simple configuration
22 files can be generated, but more complex configurations still
23 have to be edited manually.
24
25 The tool is a textual based tool that asks some questions and
26 generates sys.config and *.conf files.
27
28 Note that if the application shall support version 3, then the
29 crypto app must be started before running this function (pass‐
30 word generation).
31
32 Note also that some of the configuration files for the agent and
33 manager share the same names. This means that they have to be
34 stored in different directories!
35
36 start() -> ok | {error, Reason}
37 start(Type) -> ok | {error, Reason}
38
39 Types:
40
41 Type = start_type()
42
43 Starts the SNMP application.
44
45 See application for more info.
46
47 start_agent() -> ok | {error, Reason}
48 start_agent(Type) -> ok | {error, Reason}
49
50 Types:
51
52 Type = start_type()
53
54 The SNMP application consists of several entities, of which the
55 agent is one. This function starts the agent entity of the ap‐
56 plication.
57
58 Note that the only way to actually start the agent in this way
59 is to add the agent related config after starting the applica‐
60 tion (e.g it cannot be part of the normal application config;
61 sys.config). This is done by calling: application:set_env(snmp,
62 agent, Conf).
63
64 The default value for Type is normal.
65
66 start_manager() -> ok | {error, Reason}
67 start_manager(Type) -> ok | {error, Reason}
68
69 Types:
70
71 Type = start_type()
72
73 The SNMP application consists of several entities, of which the
74 manager is one. This function starts the manager entity of the
75 application.
76
77 Note that the only way to actually start the manager in this way
78 is to add the manager related config after starting the applica‐
79 tion (e.g it cannot be part of the normal application config;
80 sys.config). This is done by calling: application:set_env(snmp,
81 manager, Conf).
82
83 The default value for Type is normal.
84
85 date_and_time() -> DateAndTime
86
87 Types:
88
89 DateAndTime = [int()]
90
91 Returns current date and time as the data type DateAndTime, as
92 specified in RFC1903. This is an OCTET STRING.
93
94 date_and_time_to_universal_time_dst(DateAndTime) -> [utc()]
95
96 Types:
97
98 DateAndTime = [int()]
99 utc() = {{Y,Mo,D},{H,M,S}}
100
101 Converts a DateAndTime list to a list of possible universal
102 time(s). The universal time value on the same format as defined
103 in calendar(3).
104
105 date_and_time_to_string(DateAndTime) -> string()
106 date_and_time_to_string(DateAndTime, Validate) -> string()
107
108 Types:
109
110 DateAndTime = [int()]
111 Validate = fun(Kind, Data) -> boolean()
112
113 Converts a DateAndTime list to a printable string, according to
114 the DISPLAY-HINT definition in RFC2579.
115
116 The validation fun, Validate, allows for a more "flexible" vali‐
117 dation of the DateAndTime argument. Whenever the data is found
118 to not follow RFC2579, the fun is called to allow a more "lax"
119 validation. See the validate_date_and_time/2 function for more
120 info on the Validate fun.
121
122 date_and_time_to_string2(DateAndTime) -> string()
123
124 Types:
125
126 DateAndTime = [int()]
127
128 Converts a DateAndTime list to a printable string, according to
129 the DISPLAY-HINT definition in RFC2579, with the extension that
130 it also allows the values "hours from UTC" = 14 together with
131 "minutes from UTC" = 0.
132
133 local_time_to_date_and_time_dst(Local) -> [DateAndTime]
134
135 Types:
136
137 Local = {{Y,Mo,D},{H,M,S}}
138 DateAndTime = [int()]
139
140 Converts a local time value to a list of possible DateAndTime
141 list(s). The local time value on the same format as defined in
142 calendar(3).
143
144 universal_time_to_date_and_time(UTC) -> DateAndTime
145
146 Types:
147
148 UTC = {{Y,Mo,D},{H,M,S}}
149 DateAndTime = [int()]
150
151 Converts a universal time value to a DateAndTime list. The uni‐
152 versal time value on the same format as defined in calendar(3).
153
154 validate_date_and_time(DateAndTime) -> bool()
155 validate_date_and_time(DateAndTime, Validate) -> bool()
156
157 Types:
158
159 DateAndTime = term()
160 Validate = fun(Kind, Data) -> boolean()
161
162 Checks if DateAndTime is a correct DateAndTime value, as speci‐
163 fied in RFC2579. This function can be used in instrumentation
164 functions to validate a DateAndTime value.
165
166 The validation fun, Validate, allows for a more "flexible" vali‐
167 dation of the DateAndTime argument. Whenever the data is found
168 to not follow RFC2579, the fun is called to allow a more "lax"
169 validation. The input to the validation fun looks like this:
170
171 Kind Data
172 -------------- ----------------------
173 year {Year1, Year2}
174 month Month
175 day Day
176 hour Hour
177 minute Minute
178 seconds Seconds
179 deci_seconds DeciSeconds
180 diff [Sign, Hour, Minute]
181 valid_date {Year, Month, Day}
182
183
184 passwd2localized_key(Alg, Passwd, EngineID) -> Key
185
186 Types:
187
188 Alg = algorithm()
189 algorithm() = md5 | sha
190 Passwd = string()
191 EngineID = string()
192 Key = list()
193
194 Generates a key that can be used as an authentication or privacy
195 key using MD5 och SHA. The key is localized for EngineID.
196
197 octet_string_to_bits(S) -> Val
198
199 Types:
200
201 Val = bits()
202
203 Utility function for converting a value of type OCTET-STRING to
204 BITS.
205
206 bits_to_octet_string(B) -> Val
207
208 Types:
209
210 Val = octet_string()
211
212 Utility function for converting a value of type BITS to OCTET-
213 STRING.
214
215 read_mib(FileName) -> {ok, mib()} | {error, Reason}
216
217 Types:
218
219 FileName = string()
220 mib() = #mib{}
221 Reason = term()
222
223 Read a compiled mib.
224
225 log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile) -> ok | {ok, Cnt} |
226 {error, Reason}
227 log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Block | Start) ->
228 ok | {ok, Cnt} | {error, Reason}
229 log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Start, Block |
230 Stop) -> ok | {ok, Cnt} | {error, Reason}
231 log_to_txt(LogDir, Mibs, OutFile, LogName, LogFile, Start, Stop, Block)
232 -> ok | {ok, Cnt} | {error, Reason}
233
234 Types:
235
236 LogDir = string()
237 Mibs = [MibName]
238 OutFile = string()
239 MibName = string()
240 LogName = string()
241 LogFile = string()
242 Start = Stop = null | datetime() | {local_time,datetime()} |
243 {universal_time,datetime()}
244 Block = boolean()
245 Cnt = {NumOK, NumERR}
246 NumOK = non_neg_integer()
247 NumERR = pos_integer()
248 Reason = term()
249
250 Converts an Audit Trail Log to a readable text file, where each
251 item has a trailing TAB character, and any TAB character in the
252 body of an item has been replaced by ESC TAB.
253
254 The function can be used on a running system, or by copying the
255 entire log directory and calling this function. SNMP must be
256 running in order to provide MIB information.
257
258 LogDir is the name of the directory where the audit trail log is
259 stored. Mibs is a list of Mibs to be used. The function uses the
260 information in the Mibs to convert for example object identi‐
261 fiers to their symbolic name. OutFile is the name of the gener‐
262 ated text-file. LogName is the name of the log, LogFile is the
263 name of the log file. Start is the start (first) date and time
264 from which log events will be converted and Stop is the stop
265 (last) date and time to which log events will be converted. The
266 Block argument indicates if the log should be blocked during
267 conversion. This could be usefull when converting large logs
268 (when otherwise the log could wrap during conversion). Defaults
269 to true.
270
271 The format of an audit trail log text item is as follows:
272
273 Tag Addr - Community [TimeStamp] Vsn
274 PDU
275
276 where Tag is request, response, report, trap or inform; Addr is
277 IP:Port (or comma space separated list of such); Community is
278 the community parameter (SNMP version v1 and v2), or Se‐
279 cLevel:"AuthEngineID":"UserName" (SNMP v3); TimeStamp is a date
280 and time stamp, and Vsn is the SNMP version. PDU is a textual
281 version of the protocol data unit. There is a new line between
282 Vsn and PDU.
283
284 If the entire log is successfully converted, the function will
285 return ok. If one of more entries fail to convert, the function
286 will instead return {ok, {NumOK, NumERR}}, where the counters
287 indicate how many valid and erroneous entries where found. If
288 instead {error, Reason} is returned, the conversion encountered
289 a fatal error and where either never done of aborted midway.
290
291 log_to_io(LogDir, Mibs, LogName, LogFile) -> ok | {ok, Cnt} | {error,
292 Reason}
293 log_to_io(LogDir, Mibs, LogName, LogFile, Block | Start) -> ok | {ok,
294 Cnt} | {error, Reason}
295 log_to_io(LogDir, Mibs, LogName, LogFile, Start, Block | Stop) -> ok |
296 {ok, Cnt} | {error, Reason}
297 log_to_io(LogDir, Mibs, LogName, LogFile, Start, Stop, Block) -> ok |
298 {ok, Cnt} | {error, Reason}
299
300 Types:
301
302 LogDir = string()
303 Mibs = [MibName]
304 MibName = string()
305 LogName = string()
306 LogFile = string()
307 Start = Stop = null | datetime() | {local_time,datetime()} |
308 {universal_time,datetime()}
309 Cnt = {NumOK, NumERR}
310 NumOK = non_neg_integer()
311 NumERR = pos_integer()
312 Reason = term()
313
314 Converts an Audit Trail Log to a readable format and prints it
315 on stdio. See log_to_txt above for more info.
316
317 change_log_size(LogName, NewSize) -> ok | {error, Reason}
318
319 Types:
320
321 LogName = string()
322 NewSize = {MaxBytes, MaxFiles}
323 MaxBytes = integer()
324 MaxFiles = integer()
325 Reason = term()
326
327 Changes the log size of the Audit Trail Log. The application
328 must be configured to use the audit trail log function. Please
329 refer to disk_log(3) in Kernel Reference Manual for a descrip‐
330 tion of how to change the log size.
331
332 The change is permanent, as long as the log is not deleted. That
333 means, the log size is remembered across reboots.
334
335 print_version_info() -> void()
336 print_version_info(Prefix) -> void()
337
338 Types:
339
340 Prefix = string() | integer()
341
342 Utility function(s) to produce a formatted printout of the ver‐
343 sions info generated by the versions1 function
344
345 This is the same as doing, e.g.:
346
347 {ok, V} = snmp:versions1(),
348 snmp:print_versions(V).
349
350
351 versions1() -> {ok, Info} | {error, Reason}
352 versions2() -> {ok, Info} | {error, Reason}
353
354 Types:
355
356 Info = [info()]
357 info() = term()
358 Reason = term()
359
360 Utility functions used to retrieve some system and application
361 info.
362
363 The difference between the two functions is in how they get the
364 modules to check. versions1 uses the app-file and versions2 uses
365 the function application:get_key.
366
367 print_versions(VersionInfo) -> void()
368 print_versions(Prefix, VersionInfo) -> void()
369
370 Types:
371
372 VersionInfo = [version_info()]
373 version_info() = term()
374 Prefix = string() | integer()
375
376 Utility function to produce a formatted printout of the versions
377 info generated by the versions1 and versions2 functions
378
379 Example:
380
381 {ok, V} = snmp:versions1(),
382 snmp:print_versions(V).
383
384
385 enable_trace() -> void()
386
387 Starts a dbg tracer that prints trace events to stdout (using
388 plain io:format after a minor formatting).
389
390 disable_trace() -> void()
391
392 Stop the tracer.
393
394 set_trace(Targets) -> void()
395
396 Types:
397
398 Targets = target() | targets()
399 target() = module()
400 module() = atom()
401 targets() = [target() | {target(), target_options()}]
402 target_options() = [target_option()]
403 target_option() = {return_trace, boolean()} | {scope,
404 scope()}
405 scope() = all_functions | exported_functions | func‐
406 tion_name() | {function_name(), function_arity()}
407 function_name() = atom()
408 function_arity() = integer() >= 0
409
410 This function is used to set up default trace on function(s) for
411 the given module or modules. The scope of the trace will be all
412 exported functions (both the call info and the return value).
413 Timestamp info will also be included.
414
415 reset_trace(Targets) -> void()
416
417 Types:
418
419 Targets = module() | modules()
420 modules() = [module()]
421 module() = atom()
422
423 This function is used to reset (disable) trace for the given
424 module(s).
425
426 set_trace(Targets, Opts) -> void()
427
428 Types:
429
430 Targets = target() | targets()
431 target() = module()
432 module() = atom()
433 targets() = [target() | {target(), target_options()}]
434 target_options() = [target_option()]
435 target_option() = {return_trace, boolean()} | {scope,
436 scope()}
437 scope() = all_functions | exported_functions | func‐
438 tion_name() | {function_name(), function_arity()}
439 function_name() = atom()
440 function_arity() = integer() >= 0
441 Opts = disable | trace_options()
442 trace_options() = [trace_option()]
443 trace_option() = {timestamp, boolean()} | target_option()
444
445 This function is used to set up trace on function(s) for the
446 given module or modules.
447
448 The example below sets up trace on the exported functions (de‐
449 fault) of module snmp_generic and all functions of module
450 snmp_generic_mnesia. With return values (which is default) and
451 timestamps in both cases (which is also default):
452
453 snmp:enable_trace(),
454 snmp:set_trace([snmp_generic,
455 {snmp_generic_mnesia, [{scope, all_functions}]}]),
456 .
457 .
458 .
459 snmp:set_trace(snmp_generic, disable),
460 .
461 .
462 .
463 snmp:disable_trace(),
464
465
467 calendar(3)
468
469
470
471Ericsson AB snmp 5.8.0.1 snmp(3)