telemetry-snmp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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