telemetry-snmp 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rspec.yml +44 -0
  3. data/.github/workflows/rubocop.yml +28 -0
  4. data/.github/workflows/sourcehawk-scan.yml +20 -0
  5. data/.gitignore +14 -0
  6. data/.rspec +4 -0
  7. data/.rubocop.yml +26 -0
  8. data/CHANGELOG.md +4 -0
  9. data/CODE_OF_CONDUCT.md +75 -0
  10. data/CONTRIBUTING.md +54 -0
  11. data/Gemfile +10 -0
  12. data/INDIVIDUAL_CONTRIBUTOR_LICENSE.md +30 -0
  13. data/LICENSE +201 -0
  14. data/NOTICE.txt +9 -0
  15. data/README.md +54 -0
  16. data/attribution.txt +1 -0
  17. data/config.ru +15 -0
  18. data/exe/snmp_collector +55 -0
  19. data/lib/telemetry/snmp.rb +23 -0
  20. data/lib/telemetry/snmp/api.rb +55 -0
  21. data/lib/telemetry/snmp/auth.rb +54 -0
  22. data/lib/telemetry/snmp/auth/defaults.rb +41 -0
  23. data/lib/telemetry/snmp/client.rb +104 -0
  24. data/lib/telemetry/snmp/controllers/device_creds.rb +105 -0
  25. data/lib/telemetry/snmp/controllers/devices.rb +94 -0
  26. data/lib/telemetry/snmp/controllers/oid_groups.rb +71 -0
  27. data/lib/telemetry/snmp/controllers/oids.rb +80 -0
  28. data/lib/telemetry/snmp/controllers/users.rb +81 -0
  29. data/lib/telemetry/snmp/controllers/walks.rb +89 -0
  30. data/lib/telemetry/snmp/data.rb +69 -0
  31. data/lib/telemetry/snmp/data/default_opts.rb +73 -0
  32. data/lib/telemetry/snmp/data/migrations/001_device_creds.rb +19 -0
  33. data/lib/telemetry/snmp/data/migrations/002_create_devices_table.rb +31 -0
  34. data/lib/telemetry/snmp/data/migrations/003_create_oids_tables.rb +16 -0
  35. data/lib/telemetry/snmp/data/migrations/004_create_oid_groups.rb +15 -0
  36. data/lib/telemetry/snmp/data/migrations/005_create_oids_oid_groups.rb +17 -0
  37. data/lib/telemetry/snmp/data/migrations/006_device_to_oid_group.rb +15 -0
  38. data/lib/telemetry/snmp/data/migrations/007_create_users.rb +20 -0
  39. data/lib/telemetry/snmp/data/migrations/008_create_walks_table.rb +14 -0
  40. data/lib/telemetry/snmp/data/migrations/009_create_tag_name_column.rb +7 -0
  41. data/lib/telemetry/snmp/data/migrations/010_create_user_audit_table.rb +18 -0
  42. data/lib/telemetry/snmp/data/models/device.rb +11 -0
  43. data/lib/telemetry/snmp/data/models/device_cred.rb +11 -0
  44. data/lib/telemetry/snmp/data/models/oid.rb +10 -0
  45. data/lib/telemetry/snmp/data/models/oid_group.rb +10 -0
  46. data/lib/telemetry/snmp/data/models/oid_oid_groups.rb +10 -0
  47. data/lib/telemetry/snmp/data/models/oid_walk.rb +10 -0
  48. data/lib/telemetry/snmp/data/models/user.rb +10 -0
  49. data/lib/telemetry/snmp/data/models/user_audit_log.rb +19 -0
  50. data/lib/telemetry/snmp/mibs/AGENTX-MIB.txt +527 -0
  51. data/lib/telemetry/snmp/mibs/AIRPORT-BASESTATION-3-MIB.txt +461 -0
  52. data/lib/telemetry/snmp/mibs/BRIDGE-MIB.txt +1472 -0
  53. data/lib/telemetry/snmp/mibs/DISMAN-EVENT-MIB.txt +1882 -0
  54. data/lib/telemetry/snmp/mibs/DISMAN-SCHEDULE-MIB.txt +699 -0
  55. data/lib/telemetry/snmp/mibs/DISMAN-SCRIPT-MIB.txt +1764 -0
  56. data/lib/telemetry/snmp/mibs/EtherLike-MIB.txt +1862 -0
  57. data/lib/telemetry/snmp/mibs/HCNUM-TC.txt +118 -0
  58. data/lib/telemetry/snmp/mibs/HOST-RESOURCES-MIB.txt +1540 -0
  59. data/lib/telemetry/snmp/mibs/HOST-RESOURCES-TYPES.txt +389 -0
  60. data/lib/telemetry/snmp/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt +123 -0
  61. data/lib/telemetry/snmp/mibs/IANA-LANGUAGE-MIB.txt +123 -0
  62. data/lib/telemetry/snmp/mibs/IANA-RTPROTO-MIB.txt +91 -0
  63. data/lib/telemetry/snmp/mibs/IANAifType-MIB.txt +619 -0
  64. data/lib/telemetry/snmp/mibs/IF-INVERTED-STACK-MIB.txt +149 -0
  65. data/lib/telemetry/snmp/mibs/IF-MIB.txt +1814 -0
  66. data/lib/telemetry/snmp/mibs/INET-ADDRESS-MIB.txt +402 -0
  67. data/lib/telemetry/snmp/mibs/IP-FORWARD-MIB.txt +1277 -0
  68. data/lib/telemetry/snmp/mibs/IP-MIB.txt +4993 -0
  69. data/lib/telemetry/snmp/mibs/IPV6-FLOW-LABEL-MIB.txt +58 -0
  70. data/lib/telemetry/snmp/mibs/IPV6-ICMP-MIB.txt +529 -0
  71. data/lib/telemetry/snmp/mibs/IPV6-MIB.txt +1443 -0
  72. data/lib/telemetry/snmp/mibs/IPV6-TC.txt +67 -0
  73. data/lib/telemetry/snmp/mibs/IPV6-TCP-MIB.txt +211 -0
  74. data/lib/telemetry/snmp/mibs/IPV6-UDP-MIB.txt +141 -0
  75. data/lib/telemetry/snmp/mibs/NET-SNMP-AGENT-MIB.txt +554 -0
  76. data/lib/telemetry/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt +285 -0
  77. data/lib/telemetry/snmp/mibs/NET-SNMP-EXTEND-MIB.txt +325 -0
  78. data/lib/telemetry/snmp/mibs/NET-SNMP-MIB.txt +67 -0
  79. data/lib/telemetry/snmp/mibs/NET-SNMP-PASS-MIB.txt +124 -0
  80. data/lib/telemetry/snmp/mibs/NET-SNMP-TC.txt +128 -0
  81. data/lib/telemetry/snmp/mibs/NET-SNMP-VACM-MIB.txt +154 -0
  82. data/lib/telemetry/snmp/mibs/NOTIFICATION-LOG-MIB.txt +753 -0
  83. data/lib/telemetry/snmp/mibs/PAN-COMMON-MIB.md5 +1 -0
  84. data/lib/telemetry/snmp/mibs/PAN-COMMON-MIB.my +2293 -0
  85. data/lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.md5 +1 -0
  86. data/lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.my +293 -0
  87. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.md5 +1 -0
  88. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.my +84 -0
  89. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.md5 +1 -0
  90. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.my +68 -0
  91. data/lib/telemetry/snmp/mibs/PAN-LC-MIB.md5 +1 -0
  92. data/lib/telemetry/snmp/mibs/PAN-LC-MIB.my +204 -0
  93. data/lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.md5 +1 -0
  94. data/lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.my +305 -0
  95. data/lib/telemetry/snmp/mibs/PAN-TRAPS.md5 +1 -0
  96. data/lib/telemetry/snmp/mibs/PAN-TRAPS.my +7809 -0
  97. data/lib/telemetry/snmp/mibs/RFC-1215.txt +38 -0
  98. data/lib/telemetry/snmp/mibs/RFC1155-SMI.txt +119 -0
  99. data/lib/telemetry/snmp/mibs/RFC1213-MIB.txt +2613 -0
  100. data/lib/telemetry/snmp/mibs/RMON-MIB.txt +3980 -0
  101. data/lib/telemetry/snmp/mibs/SCTP-MIB.txt +1342 -0
  102. data/lib/telemetry/snmp/mibs/SMUX-MIB.txt +160 -0
  103. data/lib/telemetry/snmp/mibs/SNMP-COMMUNITY-MIB.txt +429 -0
  104. data/lib/telemetry/snmp/mibs/SNMP-FRAMEWORK-MIB.txt +526 -0
  105. data/lib/telemetry/snmp/mibs/SNMP-MPD-MIB.txt +145 -0
  106. data/lib/telemetry/snmp/mibs/SNMP-NOTIFICATION-MIB.txt +589 -0
  107. data/lib/telemetry/snmp/mibs/SNMP-PROXY-MIB.txt +294 -0
  108. data/lib/telemetry/snmp/mibs/SNMP-TARGET-MIB.txt +660 -0
  109. data/lib/telemetry/snmp/mibs/SNMP-USER-BASED-SM-MIB.txt +912 -0
  110. data/lib/telemetry/snmp/mibs/SNMP-USM-AES-MIB.txt +62 -0
  111. data/lib/telemetry/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.txt +532 -0
  112. data/lib/telemetry/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.txt +830 -0
  113. data/lib/telemetry/snmp/mibs/SNMPv2-CONF.txt +322 -0
  114. data/lib/telemetry/snmp/mibs/SNMPv2-MIB.txt +854 -0
  115. data/lib/telemetry/snmp/mibs/SNMPv2-SMI.txt +344 -0
  116. data/lib/telemetry/snmp/mibs/SNMPv2-TC.txt +772 -0
  117. data/lib/telemetry/snmp/mibs/SNMPv2-TM.txt +176 -0
  118. data/lib/telemetry/snmp/mibs/TCP-MIB.txt +785 -0
  119. data/lib/telemetry/snmp/mibs/TRANSPORT-ADDRESS-MIB.txt +421 -0
  120. data/lib/telemetry/snmp/mibs/TUNNEL-MIB.txt +738 -0
  121. data/lib/telemetry/snmp/mibs/UCD-DEMO-MIB.txt +74 -0
  122. data/lib/telemetry/snmp/mibs/UCD-DISKIO-MIB.txt +171 -0
  123. data/lib/telemetry/snmp/mibs/UCD-DLMOD-MIB.txt +124 -0
  124. data/lib/telemetry/snmp/mibs/UCD-IPFWACC-MIB.txt +327 -0
  125. data/lib/telemetry/snmp/mibs/UCD-SNMP-MIB.txt +1712 -0
  126. data/lib/telemetry/snmp/mibs/UDP-MIB.txt +549 -0
  127. data/lib/telemetry/snmp/publisher.rb +130 -0
  128. data/lib/telemetry/snmp/version.rb +7 -0
  129. data/sourcehawk.yml +4 -0
  130. data/telemetry-snmp.gemspec +48 -0
  131. metadata +456 -0
@@ -0,0 +1,753 @@
1
+ NOTIFICATION-LOG-MIB DEFINITIONS ::= BEGIN
2
+
3
+ IMPORTS
4
+ MODULE-IDENTITY, OBJECT-TYPE,
5
+ Integer32, Unsigned32,
6
+ TimeTicks, Counter32, Counter64,
7
+ IpAddress, Opaque, mib-2 FROM SNMPv2-SMI
8
+ TimeStamp, DateAndTime,
9
+ StorageType, RowStatus,
10
+ TAddress, TDomain FROM SNMPv2-TC
11
+ SnmpAdminString, SnmpEngineID FROM SNMP-FRAMEWORK-MIB
12
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF;
13
+
14
+ notificationLogMIB MODULE-IDENTITY
15
+ LAST-UPDATED "200011270000Z" -- 27 November 2000
16
+ ORGANIZATION "IETF Distributed Management Working Group"
17
+ CONTACT-INFO "Ramanathan Kavasseri
18
+ Cisco Systems, Inc.
19
+ 170 West Tasman Drive,
20
+ San Jose CA 95134-1706.
21
+ Phone: +1 408 527 2446
22
+ Email: ramk@cisco.com"
23
+ DESCRIPTION
24
+ "The MIB module for logging SNMP Notifications, that is, Traps
25
+
26
+ and Informs."
27
+ -- Revision History
28
+
29
+ REVISION "200011270000Z" -- 27 November 2000
30
+ DESCRIPTION "This is the initial version of this MIB.
31
+ Published as RFC 3014"
32
+ ::= { mib-2 92 }
33
+
34
+ notificationLogMIBObjects OBJECT IDENTIFIER ::= { notificationLogMIB 1 }
35
+
36
+ nlmConfig OBJECT IDENTIFIER ::= { notificationLogMIBObjects 1 }
37
+ nlmStats OBJECT IDENTIFIER ::= { notificationLogMIBObjects 2 }
38
+ nlmLog OBJECT IDENTIFIER ::= { notificationLogMIBObjects 3 }
39
+
40
+ --
41
+ -- Configuration Section
42
+ --
43
+
44
+ nlmConfigGlobalEntryLimit OBJECT-TYPE
45
+ SYNTAX Unsigned32
46
+ MAX-ACCESS read-write
47
+ STATUS current
48
+ DESCRIPTION
49
+ "The maximum number of notification entries that may be held
50
+ in nlmLogTable for all nlmLogNames added together. A particular
51
+ setting does not guarantee that much data can be held.
52
+
53
+ If an application changes the limit while there are
54
+ Notifications in the log, the oldest Notifications MUST be
55
+ discarded to bring the log down to the new limit - thus the
56
+ value of nlmConfigGlobalEntryLimit MUST take precedence over
57
+ the values of nlmConfigGlobalAgeOut and nlmConfigLogEntryLimit,
58
+ even if the Notification being discarded has been present for
59
+ fewer minutes than the value of nlmConfigGlobalAgeOut, or if
60
+ the named log has fewer entries than that specified in
61
+ nlmConfigLogEntryLimit.
62
+
63
+ A value of 0 means no limit.
64
+
65
+ Please be aware that contention between multiple managers
66
+ trying to set this object to different values MAY affect the
67
+ reliability and completeness of data seen by each manager."
68
+ DEFVAL { 0 }
69
+ ::= { nlmConfig 1 }
70
+
71
+ nlmConfigGlobalAgeOut OBJECT-TYPE
72
+ SYNTAX Unsigned32
73
+ UNITS "minutes"
74
+ MAX-ACCESS read-write
75
+ STATUS current
76
+ DESCRIPTION
77
+ "The number of minutes a Notification SHOULD be kept in a log
78
+ before it is automatically removed.
79
+
80
+ If an application changes the value of nlmConfigGlobalAgeOut,
81
+ Notifications older than the new time MAY be discarded to meet the
82
+ new time.
83
+
84
+ A value of 0 means no age out.
85
+
86
+ Please be aware that contention between multiple managers
87
+ trying to set this object to different values MAY affect the
88
+ reliability and completeness of data seen by each manager."
89
+ DEFVAL { 1440 } -- 24 hours
90
+ ::= { nlmConfig 2 }
91
+
92
+ --
93
+ -- Basic Log Configuration Table
94
+ --
95
+
96
+ nlmConfigLogTable OBJECT-TYPE
97
+ SYNTAX SEQUENCE OF NlmConfigLogEntry
98
+ MAX-ACCESS not-accessible
99
+ STATUS current
100
+ DESCRIPTION
101
+ "A table of logging control entries."
102
+ ::= { nlmConfig 3 }
103
+
104
+ nlmConfigLogEntry OBJECT-TYPE
105
+ SYNTAX NlmConfigLogEntry
106
+ MAX-ACCESS not-accessible
107
+ STATUS current
108
+ DESCRIPTION
109
+ "A logging control entry. Depending on the entry's storage type
110
+ entries may be supplied by the system or created and deleted by
111
+ applications using nlmConfigLogEntryStatus."
112
+ INDEX { nlmLogName }
113
+ ::= { nlmConfigLogTable 1 }
114
+
115
+ NlmConfigLogEntry ::= SEQUENCE {
116
+ nlmLogName SnmpAdminString,
117
+ nlmConfigLogFilterName SnmpAdminString,
118
+ nlmConfigLogEntryLimit Unsigned32,
119
+ nlmConfigLogAdminStatus INTEGER,
120
+ nlmConfigLogOperStatus INTEGER,
121
+ nlmConfigLogStorageType StorageType,
122
+ nlmConfigLogEntryStatus RowStatus
123
+ }
124
+
125
+ nlmLogName OBJECT-TYPE
126
+ SYNTAX SnmpAdminString (SIZE(0..32))
127
+ MAX-ACCESS not-accessible
128
+ STATUS current
129
+ DESCRIPTION
130
+ "The name of the log.
131
+
132
+ An implementation may allow multiple named logs, up to some
133
+ implementation-specific limit (which may be none). A
134
+ zero-length log name is reserved for creation and deletion by
135
+ the managed system, and MUST be used as the default log name by
136
+ systems that do not support named logs."
137
+ ::= { nlmConfigLogEntry 1 }
138
+
139
+ nlmConfigLogFilterName OBJECT-TYPE
140
+ SYNTAX SnmpAdminString (SIZE(0..32))
141
+ MAX-ACCESS read-create
142
+ STATUS current
143
+ DESCRIPTION
144
+ "A value of snmpNotifyFilterProfileName as used as an index
145
+ into the snmpNotifyFilterTable in the SNMP Notification MIB,
146
+ specifying the locally or remotely originated Notifications
147
+ to be filtered out and not logged in this log.
148
+
149
+ A zero-length value or a name that does not identify an
150
+ existing entry in snmpNotifyFilterTable indicate no
151
+ Notifications are to be logged in this log."
152
+ DEFVAL { ''H }
153
+ ::= { nlmConfigLogEntry 2 }
154
+
155
+ nlmConfigLogEntryLimit OBJECT-TYPE
156
+ SYNTAX Unsigned32
157
+ MAX-ACCESS read-create
158
+ STATUS current
159
+ DESCRIPTION
160
+ "The maximum number of notification entries that can be held in
161
+ nlmLogTable for this named log. A particular setting does not
162
+ guarantee that that much data can be held.
163
+
164
+ If an application changes the limit while there are
165
+ Notifications in the log, the oldest Notifications are discarded
166
+ to bring the log down to the new limit.
167
+
168
+ A value of 0 indicates no limit.
169
+
170
+ Please be aware that contention between multiple managers
171
+ trying to set this object to different values MAY affect the
172
+ reliability and completeness of data seen by each manager."
173
+ DEFVAL { 0 }
174
+ ::= { nlmConfigLogEntry 3 }
175
+
176
+ nlmConfigLogAdminStatus OBJECT-TYPE
177
+ SYNTAX INTEGER { enabled(1), disabled(2) }
178
+ MAX-ACCESS read-create
179
+ STATUS current
180
+ DESCRIPTION
181
+ "Control to enable or disable the log without otherwise
182
+ disturbing the log's entry.
183
+
184
+ Please be aware that contention between multiple managers
185
+ trying to set this object to different values MAY affect the
186
+ reliability and completeness of data seen by each manager."
187
+ DEFVAL { enabled }
188
+ ::= { nlmConfigLogEntry 4 }
189
+
190
+ nlmConfigLogOperStatus OBJECT-TYPE
191
+ SYNTAX INTEGER { disabled(1), operational(2), noFilter(3) }
192
+ MAX-ACCESS read-only
193
+ STATUS current
194
+ DESCRIPTION
195
+ "The operational status of this log:
196
+
197
+ disabled administratively disabled
198
+
199
+ operational administratively enabled and working
200
+
201
+ noFilter administratively enabled but either
202
+ nlmConfigLogFilterName is zero length
203
+ or does not name an existing entry in
204
+ snmpNotifyFilterTable"
205
+ ::= { nlmConfigLogEntry 5 }
206
+
207
+ nlmConfigLogStorageType OBJECT-TYPE
208
+ SYNTAX StorageType
209
+ MAX-ACCESS read-create
210
+ STATUS current
211
+ DESCRIPTION
212
+ "The storage type of this conceptual row."
213
+ ::= { nlmConfigLogEntry 6 }
214
+
215
+ nlmConfigLogEntryStatus OBJECT-TYPE
216
+ SYNTAX RowStatus
217
+ MAX-ACCESS read-create
218
+ STATUS current
219
+ DESCRIPTION
220
+ "Control for creating and deleting entries. Entries may be
221
+ modified while active.
222
+
223
+ For non-null-named logs, the managed system records the security
224
+ credentials from the request that sets nlmConfigLogStatus
225
+ to 'active' and uses that identity to apply access control to
226
+ the objects in the Notification to decide if that Notification
227
+ may be logged."
228
+ ::= { nlmConfigLogEntry 7 }
229
+
230
+ --
231
+ -- Statistics Section
232
+ --
233
+
234
+ nlmStatsGlobalNotificationsLogged OBJECT-TYPE
235
+ SYNTAX Counter32
236
+ UNITS "notifications"
237
+ MAX-ACCESS read-only
238
+ STATUS current
239
+ DESCRIPTION
240
+ "The number of Notifications put into the nlmLogTable. This
241
+ counts a Notification once for each log entry, so a Notification
242
+ put into multiple logs is counted multiple times."
243
+ ::= { nlmStats 1 }
244
+
245
+ nlmStatsGlobalNotificationsBumped OBJECT-TYPE
246
+ SYNTAX Counter32
247
+ UNITS "notifications"
248
+ MAX-ACCESS read-only
249
+ STATUS current
250
+ DESCRIPTION
251
+ "The number of log entries discarded to make room for a new entry
252
+ due to lack of resources or the value of nlmConfigGlobalEntryLimit
253
+ or nlmConfigLogEntryLimit. This does not include entries discarded
254
+ due to the value of nlmConfigGlobalAgeOut."
255
+ ::= { nlmStats 2 }
256
+
257
+ --
258
+ -- Log Statistics Table
259
+ --
260
+
261
+ nlmStatsLogTable OBJECT-TYPE
262
+ SYNTAX SEQUENCE OF NlmStatsLogEntry
263
+ MAX-ACCESS not-accessible
264
+ STATUS current
265
+ DESCRIPTION
266
+ "A table of Notification log statistics entries."
267
+ ::= { nlmStats 3 }
268
+
269
+ nlmStatsLogEntry OBJECT-TYPE
270
+ SYNTAX NlmStatsLogEntry
271
+ MAX-ACCESS not-accessible
272
+ STATUS current
273
+ DESCRIPTION
274
+ "A Notification log statistics entry."
275
+ AUGMENTS { nlmConfigLogEntry }
276
+ ::= { nlmStatsLogTable 1 }
277
+
278
+ NlmStatsLogEntry ::= SEQUENCE {
279
+ nlmStatsLogNotificationsLogged Counter32,
280
+ nlmStatsLogNotificationsBumped Counter32
281
+ }
282
+
283
+ nlmStatsLogNotificationsLogged OBJECT-TYPE
284
+ SYNTAX Counter32
285
+ UNITS "notifications"
286
+ MAX-ACCESS read-only
287
+ STATUS current
288
+ DESCRIPTION
289
+ "The number of Notifications put in this named log."
290
+ ::= { nlmStatsLogEntry 1 }
291
+
292
+ nlmStatsLogNotificationsBumped OBJECT-TYPE
293
+ SYNTAX Counter32
294
+ UNITS "notifications"
295
+ MAX-ACCESS read-only
296
+ STATUS current
297
+ DESCRIPTION
298
+ "The number of log entries discarded from this named log to make
299
+ room for a new entry due to lack of resources or the value of
300
+ nlmConfigGlobalEntryLimit or nlmConfigLogEntryLimit. This does not
301
+ include entries discarded due to the value of
302
+ nlmConfigGlobalAgeOut."
303
+ ::= { nlmStatsLogEntry 2 }
304
+
305
+ --
306
+ -- Log Section
307
+ --
308
+
309
+ --
310
+ -- Log Table
311
+
312
+ --
313
+
314
+ nlmLogTable OBJECT-TYPE
315
+ SYNTAX SEQUENCE OF NlmLogEntry
316
+ MAX-ACCESS not-accessible
317
+ STATUS current
318
+ DESCRIPTION
319
+ "A table of Notification log entries.
320
+
321
+ It is an implementation-specific matter whether entries in this
322
+ table are preserved across initializations of the management
323
+ system. In general one would expect that they are not.
324
+
325
+ Note that keeping entries across initializations of the
326
+ management system leads to some confusion with counters and
327
+ TimeStamps, since both of those are based on sysUpTime, which
328
+ resets on management initialization. In this situation,
329
+ counters apply only after the reset and nlmLogTime for entries
330
+ made before the reset MUST be set to 0."
331
+ ::= { nlmLog 1 }
332
+
333
+ nlmLogEntry OBJECT-TYPE
334
+ SYNTAX NlmLogEntry
335
+ MAX-ACCESS not-accessible
336
+ STATUS current
337
+ DESCRIPTION
338
+ "A Notification log entry.
339
+
340
+ Entries appear in this table when Notifications occur and pass
341
+ filtering by nlmConfigLogFilterName and access control. They are
342
+ removed to make way for new entries due to lack of resources or
343
+ the values of nlmConfigGlobalEntryLimit, nlmConfigGlobalAgeOut, or
344
+ nlmConfigLogEntryLimit.
345
+
346
+ If adding an entry would exceed nlmConfigGlobalEntryLimit or system
347
+ resources in general, the oldest entry in any log SHOULD be removed
348
+ to make room for the new one.
349
+
350
+ If adding an entry would exceed nlmConfigLogEntryLimit the oldest
351
+ entry in that log SHOULD be removed to make room for the new one.
352
+
353
+ Before the managed system puts a locally-generated Notification
354
+ into a non-null-named log it assures that the creator of the log
355
+ has access to the information in the Notification. If not it
356
+ does not log that Notification in that log."
357
+ INDEX { nlmLogName, nlmLogIndex }
358
+ ::= { nlmLogTable 1 }
359
+
360
+ NlmLogEntry ::= SEQUENCE {
361
+ nlmLogIndex Unsigned32,
362
+ nlmLogTime TimeStamp,
363
+ nlmLogDateAndTime DateAndTime,
364
+ nlmLogEngineID SnmpEngineID,
365
+ nlmLogEngineTAddress TAddress,
366
+ nlmLogEngineTDomain TDomain,
367
+ nlmLogContextEngineID SnmpEngineID,
368
+ nlmLogContextName SnmpAdminString,
369
+ nlmLogNotificationID OBJECT IDENTIFIER
370
+ }
371
+
372
+ nlmLogIndex OBJECT-TYPE
373
+ SYNTAX Unsigned32 (1..4294967295)
374
+ MAX-ACCESS not-accessible
375
+ STATUS current
376
+ DESCRIPTION
377
+ "A monotonically increasing integer for the sole purpose of
378
+ indexing entries within the named log. When it reaches the
379
+ maximum value, an extremely unlikely event, the agent wraps the
380
+ value back to 1."
381
+ ::= { nlmLogEntry 1 }
382
+
383
+ nlmLogTime OBJECT-TYPE
384
+ SYNTAX TimeStamp
385
+ MAX-ACCESS read-only
386
+ STATUS current
387
+ DESCRIPTION
388
+ "The value of sysUpTime when the entry was placed in the log. If
389
+ the entry occurred before the most recent management system
390
+ initialization this object value MUST be set to zero."
391
+ ::= { nlmLogEntry 2 }
392
+
393
+ nlmLogDateAndTime OBJECT-TYPE
394
+ SYNTAX DateAndTime
395
+ MAX-ACCESS read-only
396
+ STATUS current
397
+ DESCRIPTION
398
+ "The local date and time when the entry was logged, instantiated
399
+ only by systems that have date and time capability."
400
+ ::= { nlmLogEntry 3 }
401
+
402
+ nlmLogEngineID OBJECT-TYPE
403
+ SYNTAX SnmpEngineID
404
+ MAX-ACCESS read-only
405
+ STATUS current
406
+ DESCRIPTION
407
+ "The identification of the SNMP engine at which the Notification
408
+
409
+ originated.
410
+
411
+ If the log can contain Notifications from only one engine
412
+ or the Trap is in SNMPv1 format, this object is a zero-length
413
+ string."
414
+ ::= { nlmLogEntry 4 }
415
+
416
+ nlmLogEngineTAddress OBJECT-TYPE
417
+ SYNTAX TAddress
418
+ MAX-ACCESS read-only
419
+ STATUS current
420
+ DESCRIPTION
421
+ "The transport service address of the SNMP engine from which the
422
+ Notification was received, formatted according to the corresponding
423
+ value of nlmLogEngineTDomain. This is used to identify the source
424
+ of an SNMPv1 trap, since an nlmLogEngineId cannot be extracted
425
+ from the SNMPv1 trap pdu.
426
+
427
+ This object MUST always be instantiated, even if the log
428
+ can contain Notifications from only one engine.
429
+
430
+ Please be aware that the nlmLogEngineTAddress may not uniquely
431
+ identify the SNMP engine from which the Notification was received.
432
+ For example, if an SNMP engine uses DHCP or NAT to obtain
433
+ ip addresses, the address it uses may be shared with other
434
+ network devices, and hence will not uniquely identify the
435
+ SNMP engine."
436
+ ::= { nlmLogEntry 5 }
437
+
438
+ nlmLogEngineTDomain OBJECT-TYPE
439
+ SYNTAX TDomain
440
+ MAX-ACCESS read-only
441
+ STATUS current
442
+ DESCRIPTION
443
+ "Indicates the kind of transport service by which a Notification
444
+ was received from an SNMP engine. nlmLogEngineTAddress contains
445
+ the transport service address of the SNMP engine from which
446
+ this Notification was received.
447
+
448
+ Possible values for this object are presently found in the
449
+ Transport Mappings for SNMPv2 document (RFC 1906 [8])."
450
+ ::= { nlmLogEntry 6 }
451
+
452
+ nlmLogContextEngineID OBJECT-TYPE
453
+ SYNTAX SnmpEngineID
454
+ MAX-ACCESS read-only
455
+ STATUS current
456
+ DESCRIPTION
457
+ "If the Notification was received in a protocol which has a
458
+ contextEngineID element like SNMPv3, this object has that value.
459
+ Otherwise its value is a zero-length string."
460
+ ::= { nlmLogEntry 7 }
461
+
462
+ nlmLogContextName OBJECT-TYPE
463
+ SYNTAX SnmpAdminString
464
+ MAX-ACCESS read-only
465
+ STATUS current
466
+ DESCRIPTION
467
+ "The name of the SNMP MIB context from which the Notification came.
468
+ For SNMPv1 Traps this is the community string from the Trap."
469
+ ::= { nlmLogEntry 8 }
470
+
471
+ nlmLogNotificationID OBJECT-TYPE
472
+ SYNTAX OBJECT IDENTIFIER
473
+ MAX-ACCESS read-only
474
+ STATUS current
475
+ DESCRIPTION
476
+ "The NOTIFICATION-TYPE object identifier of the Notification that
477
+ occurred."
478
+ ::= { nlmLogEntry 9 }
479
+
480
+ --
481
+ -- Log Variable Table
482
+ --
483
+
484
+ nlmLogVariableTable OBJECT-TYPE
485
+ SYNTAX SEQUENCE OF NlmLogVariableEntry
486
+ MAX-ACCESS not-accessible
487
+ STATUS current
488
+ DESCRIPTION
489
+ "A table of variables to go with Notification log entries."
490
+ ::= { nlmLog 2 }
491
+
492
+ nlmLogVariableEntry OBJECT-TYPE
493
+ SYNTAX NlmLogVariableEntry
494
+ MAX-ACCESS not-accessible
495
+ STATUS current
496
+ DESCRIPTION
497
+ "A Notification log entry variable.
498
+
499
+ Entries appear in this table when there are variables in
500
+ the varbind list of a Notification in nlmLogTable."
501
+ INDEX { nlmLogName, nlmLogIndex, nlmLogVariableIndex }
502
+ ::= { nlmLogVariableTable 1 }
503
+
504
+ NlmLogVariableEntry ::= SEQUENCE {
505
+
506
+ nlmLogVariableIndex Unsigned32,
507
+ nlmLogVariableID OBJECT IDENTIFIER,
508
+ nlmLogVariableValueType INTEGER,
509
+ nlmLogVariableCounter32Val Counter32,
510
+ nlmLogVariableUnsigned32Val Unsigned32,
511
+ nlmLogVariableTimeTicksVal TimeTicks,
512
+ nlmLogVariableInteger32Val Integer32,
513
+ nlmLogVariableOctetStringVal OCTET STRING,
514
+ nlmLogVariableIpAddressVal IpAddress,
515
+ nlmLogVariableOidVal OBJECT IDENTIFIER,
516
+ nlmLogVariableCounter64Val Counter64,
517
+ nlmLogVariableOpaqueVal Opaque
518
+ }
519
+
520
+ nlmLogVariableIndex OBJECT-TYPE
521
+ SYNTAX Unsigned32 (1..4294967295)
522
+ MAX-ACCESS not-accessible
523
+ STATUS current
524
+ DESCRIPTION
525
+ "A monotonically increasing integer, starting at 1 for a given
526
+ nlmLogIndex, for indexing variables within the logged
527
+ Notification."
528
+ ::= { nlmLogVariableEntry 1 }
529
+
530
+ nlmLogVariableID OBJECT-TYPE
531
+ SYNTAX OBJECT IDENTIFIER
532
+ MAX-ACCESS read-only
533
+ STATUS current
534
+ DESCRIPTION
535
+ "The variable's object identifier."
536
+ ::= { nlmLogVariableEntry 2 }
537
+
538
+ nlmLogVariableValueType OBJECT-TYPE
539
+ SYNTAX INTEGER { counter32(1), unsigned32(2), timeTicks(3),
540
+ integer32(4), ipAddress(5), octetString(6),
541
+ objectId(7), counter64(8), opaque(9) }
542
+ MAX-ACCESS read-only
543
+ STATUS current
544
+ DESCRIPTION
545
+ "The type of the value. One and only one of the value
546
+ objects that follow must be instantiated, based on this type."
547
+ ::= { nlmLogVariableEntry 3 }
548
+
549
+ nlmLogVariableCounter32Val OBJECT-TYPE
550
+ SYNTAX Counter32
551
+ MAX-ACCESS read-only
552
+ STATUS current
553
+ DESCRIPTION
554
+ "The value when nlmLogVariableType is 'counter32'."
555
+ ::= { nlmLogVariableEntry 4 }
556
+
557
+ nlmLogVariableUnsigned32Val OBJECT-TYPE
558
+ SYNTAX Unsigned32
559
+ MAX-ACCESS read-only
560
+ STATUS current
561
+ DESCRIPTION
562
+ "The value when nlmLogVariableType is 'unsigned32'."
563
+ ::= { nlmLogVariableEntry 5 }
564
+
565
+ nlmLogVariableTimeTicksVal OBJECT-TYPE
566
+ SYNTAX TimeTicks
567
+ MAX-ACCESS read-only
568
+ STATUS current
569
+ DESCRIPTION
570
+ "The value when nlmLogVariableType is 'timeTicks'."
571
+ ::= { nlmLogVariableEntry 6 }
572
+
573
+ nlmLogVariableInteger32Val OBJECT-TYPE
574
+ SYNTAX Integer32
575
+ MAX-ACCESS read-only
576
+ STATUS current
577
+ DESCRIPTION
578
+ "The value when nlmLogVariableType is 'integer32'."
579
+ ::= { nlmLogVariableEntry 7 }
580
+
581
+ nlmLogVariableOctetStringVal OBJECT-TYPE
582
+ SYNTAX OCTET STRING
583
+ MAX-ACCESS read-only
584
+ STATUS current
585
+ DESCRIPTION
586
+ "The value when nlmLogVariableType is 'octetString'."
587
+ ::= { nlmLogVariableEntry 8 }
588
+
589
+ nlmLogVariableIpAddressVal OBJECT-TYPE
590
+ SYNTAX IpAddress
591
+ MAX-ACCESS read-only
592
+ STATUS current
593
+ DESCRIPTION
594
+ "The value when nlmLogVariableType is 'ipAddress'.
595
+ Although this seems to be unfriendly for IPv6, we
596
+ have to recognize that there are a number of older
597
+ MIBs that do contain an IPv4 format address, known
598
+ as IpAddress.
599
+
600
+ IPv6 addresses are represented using TAddress or
601
+ InetAddress, and so the underlying datatype is
602
+
603
+ OCTET STRING, and their value would be stored in
604
+ the nlmLogVariableOctetStringVal column."
605
+ ::= { nlmLogVariableEntry 9 }
606
+
607
+ nlmLogVariableOidVal OBJECT-TYPE
608
+ SYNTAX OBJECT IDENTIFIER
609
+ MAX-ACCESS read-only
610
+ STATUS current
611
+ DESCRIPTION
612
+ "The value when nlmLogVariableType is 'objectId'."
613
+ ::= { nlmLogVariableEntry 10 }
614
+
615
+ nlmLogVariableCounter64Val OBJECT-TYPE
616
+ SYNTAX Counter64
617
+ MAX-ACCESS read-only
618
+ STATUS current
619
+ DESCRIPTION
620
+ "The value when nlmLogVariableType is 'counter64'."
621
+ ::= { nlmLogVariableEntry 11 }
622
+
623
+ nlmLogVariableOpaqueVal OBJECT-TYPE
624
+ SYNTAX Opaque
625
+ MAX-ACCESS read-only
626
+ STATUS current
627
+ DESCRIPTION
628
+ "The value when nlmLogVariableType is 'opaque'."
629
+ ::= { nlmLogVariableEntry 12 }
630
+
631
+ --
632
+ -- Conformance
633
+ --
634
+
635
+ notificationLogMIBConformance OBJECT IDENTIFIER ::=
636
+ { notificationLogMIB 3 }
637
+ notificationLogMIBCompliances OBJECT IDENTIFIER ::=
638
+ { notificationLogMIBConformance 1 }
639
+ notificationLogMIBGroups OBJECT IDENTIFIER ::=
640
+ { notificationLogMIBConformance 2 }
641
+
642
+ -- Compliance
643
+
644
+ notificationLogMIBCompliance MODULE-COMPLIANCE
645
+ STATUS current
646
+ DESCRIPTION
647
+ "The compliance statement for entities which implement
648
+ the Notification Log MIB."
649
+ MODULE -- this module
650
+
651
+ MANDATORY-GROUPS {
652
+ notificationLogConfigGroup,
653
+ notificationLogStatsGroup,
654
+ notificationLogLogGroup
655
+ }
656
+
657
+ OBJECT nlmConfigGlobalEntryLimit
658
+ SYNTAX Unsigned32 (0..4294967295)
659
+ MIN-ACCESS read-only
660
+ DESCRIPTION
661
+ "Implementations may choose a limit and not allow it to be
662
+ changed or may enforce an upper or lower bound on the
663
+ limit."
664
+
665
+ OBJECT nlmConfigLogEntryLimit
666
+ SYNTAX Unsigned32 (0..4294967295)
667
+ MIN-ACCESS read-only
668
+ DESCRIPTION
669
+ "Implementations may choose a limit and not allow it to be
670
+ changed or may enforce an upper or lower bound on the
671
+ limit."
672
+
673
+ OBJECT nlmConfigLogEntryStatus
674
+ MIN-ACCESS read-only
675
+ DESCRIPTION
676
+ "Implementations may disallow the creation of named logs."
677
+
678
+ GROUP notificationLogDateGroup
679
+ DESCRIPTION
680
+ "This group is mandatory on systems that keep wall clock
681
+ date and time and should not be implemented on systems that
682
+ do not have a wall clock date."
683
+ ::= { notificationLogMIBCompliances 1 }
684
+
685
+ -- Units of Conformance
686
+
687
+ notificationLogConfigGroup OBJECT-GROUP
688
+ OBJECTS {
689
+ nlmConfigGlobalEntryLimit,
690
+ nlmConfigGlobalAgeOut,
691
+ nlmConfigLogFilterName,
692
+ nlmConfigLogEntryLimit,
693
+ nlmConfigLogAdminStatus,
694
+ nlmConfigLogOperStatus,
695
+ nlmConfigLogStorageType,
696
+ nlmConfigLogEntryStatus
697
+ }
698
+ STATUS current
699
+ DESCRIPTION
700
+ "Notification log configuration management."
701
+ ::= { notificationLogMIBGroups 1 }
702
+
703
+ notificationLogStatsGroup OBJECT-GROUP
704
+ OBJECTS {
705
+ nlmStatsGlobalNotificationsLogged,
706
+ nlmStatsGlobalNotificationsBumped,
707
+ nlmStatsLogNotificationsLogged,
708
+ nlmStatsLogNotificationsBumped
709
+ }
710
+ STATUS current
711
+ DESCRIPTION
712
+ "Notification log statistics."
713
+ ::= { notificationLogMIBGroups 2 }
714
+
715
+ notificationLogLogGroup OBJECT-GROUP
716
+ OBJECTS {
717
+ nlmLogTime,
718
+ nlmLogEngineID,
719
+ nlmLogEngineTAddress,
720
+ nlmLogEngineTDomain,
721
+ nlmLogContextEngineID,
722
+ nlmLogContextName,
723
+ nlmLogNotificationID,
724
+ nlmLogVariableID,
725
+ nlmLogVariableValueType,
726
+ nlmLogVariableCounter32Val,
727
+ nlmLogVariableUnsigned32Val,
728
+ nlmLogVariableTimeTicksVal,
729
+ nlmLogVariableInteger32Val,
730
+ nlmLogVariableOctetStringVal,
731
+ nlmLogVariableIpAddressVal,
732
+ nlmLogVariableOidVal,
733
+ nlmLogVariableCounter64Val,
734
+ nlmLogVariableOpaqueVal
735
+ }
736
+ STATUS current
737
+ DESCRIPTION
738
+ "Notification log data."
739
+ ::= { notificationLogMIBGroups 3 }
740
+
741
+ notificationLogDateGroup OBJECT-GROUP
742
+ OBJECTS {
743
+ nlmLogDateAndTime
744
+ }
745
+ STATUS current
746
+ DESCRIPTION
747
+ "Conditionally mandatory notification log data.
748
+ This group is mandatory on systems that keep wall
749
+ clock date and time and should not be implemented
750
+ on systems that do not have a wall clock date."
751
+ ::= { notificationLogMIBGroups 4 }
752
+
753
+ END