Thread: [snmpsim-users] SNMP Simulator does not let snmpwalk know about new snmprec files: can you suggest
Brought to you by:
elie
From: <snm...@9o...> - 2013-06-09 10:43:44
|
Hi, In the "quest" to simulate SNMP agents with access to neither devices nor snmpwalk output, I'm checking snmpsim (SNMP Simulator: https://sourceforge.net/p/snmpsim). I encounter this issue - After running the following: # /opt/zenoss/bin/smidump -f python /opt/zenoss/share/mibs/site/ZENOSS-MIB.txt | /usr/bin/libsmi2pysnmp > ~/.snmpsim/data/libsmi2pysnmp/ZENOSS-MIB.py I get a ZENOSS-MIB.py which seems okay (see at bottom). Now, I run: # snmpsimd.py --v2c-arch --agent-udpv4-endpoint=127.0.0.4:1161 and in another shell terminal: # mib2dev.py --pysnmp-mib-dir=/root/.snmpsim/data/libsmi2pysnmp/ --mib-module=ZENOSS-MIB --output-file=/root/.snmpsim/data/ZENOSS.snmprec and: # grep 1.3.6.1.4.1.14296.1.100.23.0 /root/.snmpsim/data/ZENOSS.snmprec 1.3.6.1.4.1.14296.1.100.23.0|4|Portez So, 1.3.6.1.4.1.14296.1.100.23.0 is a valid (knowd) OID. However, when I try to inspect this OID, I get the following error: # snmpwalk 127.0.0.4:1161 1.3.6.1.4.1.14296 RFC1155-SMI::enterprises.14296 = No Such Instance currently exists at this OID # It seems that SNMP Simulator does not let snmpwalk know about ZENOSS.snmprec . Can you suggest what am I doing wrong? Thanks, Ron. [root@ron-zenoss-4_1_1-minimal-dev ~]# cat ~/.snmpsim/data/libsmi2pysnmp/ZENOSS-MIB.py # PySNMP SMI module. Autogenerated from smidump -f python ZENOSS-MIB # by libsmi2pysnmp-0.1.3 at Sun Jun 9 09:04:22 2013, # Python version (2, 6, 6, 'final', 0) # Imports ( Integer, ObjectIdentifier, OctetString, ) = mibBuilder.importSymbols("ASN1", "Integer", "ObjectIdentifier", "OctetString") ( NamedValues, ) = mibBuilder.importSymbols("ASN1-ENUMERATION", "NamedValues") ( ConstraintsIntersection, ConstraintsUnion, SingleValueConstraint, ValueRangeConstraint, ValueSizeConstraint, ) = mibBuilder.importSymbols("ASN1-REFINEMENT", "ConstraintsIntersection", "ConstraintsUnion", "SingleValueConstraint", "ValueRangeConstraint", "ValueSizeConstraint") ( ModuleCompliance, NotificationGroup, ObjectGroup, ) = mibBuilder.importSymbols("SNMPv2-CONF", "ModuleCompliance", "NotificationGroup", "ObjectGroup") ( Bits, Integer32, ModuleIdentity, MibIdentifier, NotificationType, MibScalar, MibTable, MibTableRow, MibTableColumn, TimeTicks, Unsigned32, enterprises, ) = mibBuilder.importSymbols("SNMPv2-SMI", "Bits", "Integer32", "ModuleIdentity", "MibIdentifier", "NotificationType", "MibScalar", "MibTable", "MibTableRow", "MibTableColumn", "TimeTicks", "Unsigned32", "enterprises") # Objects zen = MibIdentifier((1, 3, 6, 1, 4, 1, 14296)) zenMIB = ModuleIdentity((1, 3, 6, 1, 4, 1, 14296, 1)).setRevisions(("2011-08-31 00:00",)) if mibBuilder.loadTexts: zenMIB.setOrganization("Zenoss, Inc.") if mibBuilder.loadTexts: zenMIB.setContactInfo("su...@ze...") if mibBuilder.loadTexts: zenMIB.setDescription("Defines structure of traps sent by Zenoss.") zenMIBConformance = MibIdentifier((1, 3, 6, 1, 4, 1, 14296, 1, 2)) zenMIBCompliances = MibIdentifier((1, 3, 6, 1, 4, 1, 14296, 1, 2, 1)) zenMIBGroups = MibIdentifier((1, 3, 6, 1, 4, 1, 14296, 1, 2, 2)) zenTrapDef = MibIdentifier((1, 3, 6, 1, 4, 1, 14296, 1, 100)) zenNotifications = MibIdentifier((1, 3, 6, 1, 4, 1, 14296, 1, 100, 0)) zenTraps = MibIdentifier((1, 3, 6, 1, 4, 1, 14296, 1, 100, 0, 0)) evtId = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 1), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtId.setDescription("Unique identifier ID of the event.") evtDedupid = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 2), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtDedupid.setDescription("De-duplication ID of the event.") evtDevice = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 3), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtDevice.setDescription("Device associated with event.") evtComponent = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 4), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtComponent.setDescription("Device component associated with event.") evtClass = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 5), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtClass.setDescription("Event classification.") evtKey = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 6), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtKey.setDescription("Event key used for refining event granularity beyond device and\ncomponent. Used in de-duplication, auto-clearing.") evtSummary = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 7), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtSummary.setDescription("Event message truncated to 128 characters.") evtSeverity = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 9), Unsigned32()).setMaxAccess("readonly") if mibBuilder.loadTexts: evtSeverity.setDescription("Event severity number: 0=clear(normal), 1=debug, 2=info, 3=warning,\n4=error, 5=critical") evtState = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 10), Unsigned32()).setMaxAccess("readonly") if mibBuilder.loadTexts: evtState.setDescription("Event state number: 0=new, 1=acknowledged, 2=suppressed") evtClassKey = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 11), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtClassKey.setDescription("Event class key for rule processing often matches component.") evtGroup = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 12), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtGroup.setDescription("Logical grouping of event sources.") evtStateChange = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 13), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtStateChange.setDescription("Last time event changed through administrative activity.") evtFirstTime = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 14), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtFirstTime.setDescription("First time an event was received.") evtLastTime = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 15), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtLastTime.setDescription("Last time an event was received.") evtCount = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 16), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtCount.setDescription("Number of times this event has been seen.") evtProdState = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 17), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtProdState.setDescription("Production state of the device or component associated with this\nevent.") evtAgent = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 20), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtAgent.setDescription("Collector process that received or created this event.") evtDeviceClass = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 21), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtDeviceClass.setDescription("Class of device that this event is associated with.") evtLocation = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 22), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtLocation.setDescription("Location of device that this event is associated with.") evtSystems = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 23), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtSystems.setDescription("Systems containing the device that this event is associated with.") evtDeviceGroups = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 24), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtDeviceGroups.setDescription("Groups containing the device that this event is associated with.") evtIpAddress = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 25), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtIpAddress.setDescription("IP address that this event was generated or sent from.") evtFacility = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 26), Unsigned32()).setMaxAccess("readonly") if mibBuilder.loadTexts: evtFacility.setDescription("Syslog facility if the event was initially sent as a syslog.") evtPriority = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 27), Unsigned32()).setMaxAccess("readonly") if mibBuilder.loadTexts: evtPriority.setDescription("Syslog priority if the event was initially sent as a syslog.") evtNtEvId = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 28), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtNtEvId.setDescription("Windows NT_EVENT_ID if the event was initially received from Windows\nevent log.") evtOwnerId = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 29), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtOwnerId.setDescription("User that acknowledged this event.") evtClearId = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 31), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtClearId.setDescription("evtId that cleared this event.") evtDevicePriority = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 32), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtDevicePriority.setDescription("Priority of the device that this event is associated with.") evtClassMapping = MibScalar((1, 3, 6, 1, 4, 1, 14296, 1, 100, 33), OctetString().subtype(subtypeSpec=ValueSizeConstraint(0, 255))).setMaxAccess("readonly") if mibBuilder.loadTexts: evtClassMapping.setDescription("Name of the event class mapping that matched this event.") # Augmentions # Notifications zenGenTrap = NotificationType((1, 3, 6, 1, 4, 1, 14296, 1, 100, 0, 0, 1)).setObjects(*(("ZENOSS-MIB", "evtClassKey"), ("ZENOSS-MIB", "evtState"), ("ZENOSS-MIB", "evtSummary"), ("ZENOSS-MIB", "evtSeverity"), ("ZENOSS-MIB", "evtFirstTime"), ("ZENOSS-MIB", "evtDevice"), ("ZENOSS-MIB", "evtComponent"), ("ZENOSS-MIB", "evtDedupid"), ("ZENOSS-MIB", "evtKey"), ("ZENOSS-MIB", "evtStateChange"), ("ZENOSS-MIB", "evtLastTime"), ("ZENOSS-MIB", "evtGroup"), ("ZENOSS-MIB", "evtClass"), ("ZENOSS-MIB", "evtId"), ) ) if mibBuilder.loadTexts: zenGenTrap.setDescription("The trap notifying of when an event is received by the Zen server.") # Groups zenMIBObjectGroup = ObjectGroup((1, 3, 6, 1, 4, 1, 14296, 1, 2, 2, 1)).setObjects(*(("ZENOSS-MIB", "evtClassKey"), ("ZENOSS-MIB", "evtState"), ("ZENOSS-MIB", "evtSummary"), ("ZENOSS-MIB", "evtSeverity"), ("ZENOSS-MIB", "evtFirstTime"), ("ZENOSS-MIB", "evtDevice"), ("ZENOSS-MIB", "evtComponent"), ("ZENOSS-MIB", "evtDedupid"), ("ZENOSS-MIB", "evtKey"), ("ZENOSS-MIB", "evtStateChange"), ("ZENOSS-MIB", "evtLastTime"), ("ZENOSS-MIB", "evtGroup"), ("ZENOSS-MIB", "evtClass"), ("ZENOSS-MIB", "evtId"), ) ) if mibBuilder.loadTexts: zenMIBObjectGroup.setDescription("The group of objects providing trap contents.") zenMIBTrapGroup = ObjectGroup((1, 3, 6, 1, 4, 1, 14296, 1, 2, 2, 2)).setObjects(*(("ZENOSS-MIB", "zenGenTrap"), ) ) if mibBuilder.loadTexts: zenMIBTrapGroup.setDescription("The group of objects providing traps.") # Compliances zenMIBCompliance = ModuleCompliance((1, 3, 6, 1, 4, 1, 14296, 1, 2, 1, 1)).setObjects(*(("ZENOSS-MIB", "zenMIBObjectGroup"), ("ZENOSS-MIB", "zenMIBTrapGroup"), ) ) if mibBuilder.loadTexts: zenMIBCompliance.setDescription("The compliance statement for SNMPv2 entities which\nimplement UDP over IPv6.") # Exports # Module identity mibBuilder.exportSymbols("ZENOSS-MIB", PYSNMP_MODULE_ID=zenMIB) # Objects mibBuilder.exportSymbols("ZENOSS-MIB", zen=zen, zenMIB=zenMIB, zenMIBConformance=zenMIBConformance, zenMIBCompliances=zenMIBCompliances, zenMIBGroups=zenMIBGroups, zenTrapDef=zenTrapDef, zenNotifications=zenNotifications, zenTraps=zenTraps, evtId=evtId, evtDedupid=evtDedupid, evtDevice=evtDevice, evtComponent=evtComponent, evtClass=evtClass, evtKey=evtKey, evtSummary=evtSummary, evtSeverity=evtSeverity, evtState=evtState, evtClassKey=evtClassKey, evtGroup=evtGroup, evtStateChange=evtStateChange, evtFirstTime=evtFirstTime, evtLastTime=evtLastTime, evtCount=evtCount, evtProdState=evtProdState, evtAgent=evtAgent, evtDeviceClass=evtDeviceClass, evtLocation=evtLocation, evtSystems=evtSystems, evtDeviceGroups=evtDeviceGroups, evtIpAddress=evtIpAddress, evtFacility=evtFacility, evtPriority=evtPriority, evtNtEvId=evtNtEvId, evtOwnerId=evtOwnerId, evtClearId=evtClearId, evtDevicePriority=evtDevicePriority, evtClassMapping=evtClassMapping) # Notifications mibBuilder.exportSymbols("ZENOSS-MIB", zenGenTrap=zenGenTrap) # Groups mibBuilder.exportSymbols("ZENOSS-MIB", zenMIBObjectGroup=zenMIBObjectGroup, zenMIBTrapGroup=zenMIBTrapGroup) # Compliances mibBuilder.exportSymbols("ZENOSS-MIB", zenMIBCompliance=zenMIBCompliance) [root@ron-zenoss-4_1_1-minimal-dev ~]# [root@ron-zenoss-4_1_1-minimal-dev ~]# cat /root/.snmpsim/data/ZENOSS.snmprec 1.3.6.1.4.1.14296.1.100.1.0|4|Portez ce vieux 1.3.6.1.4.1.14296.1.100.2.0|4| 1.3.6.1.4.1.14296.1.100.3.0|4| 1.3.6.1.4.1.14296.1.100.4.0|4|blond qui 1.3.6.1.4.1.14296.1.100.5.0|4|Portez ce vieux 1.3.6.1.4.1.14296.1.100.6.0|4| 1.3.6.1.4.1.14296.1.100.7.0|4| 1.3.6.1.4.1.14296.1.100.9.0|66|1026891173 1.3.6.1.4.1.14296.1.100.10.0|66|478309665 1.3.6.1.4.1.14296.1.100.11.0|4| 1.3.6.1.4.1.14296.1.100.12.0|4| 1.3.6.1.4.1.14296.1.100.13.0|4|Portez ce vieux whisky au 1.3.6.1.4.1.14296.1.100.14.0|4| 1.3.6.1.4.1.14296.1.100.15.0|4| 1.3.6.1.4.1.14296.1.100.16.0|4| 1.3.6.1.4.1.14296.1.100.17.0|4| 1.3.6.1.4.1.14296.1.100.20.0|4| 1.3.6.1.4.1.14296.1.100.21.0|4|Portez ce vieux whisky au juge blond 1.3.6.1.4.1.14296.1.100.22.0|4|juge 1.3.6.1.4.1.14296.1.100.23.0|4|Portez 1.3.6.1.4.1.14296.1.100.24.0|4|ce vieux whisky au juge blond qui 1.3.6.1.4.1.14296.1.100.25.0|4| 1.3.6.1.4.1.14296.1.100.26.0|66|3451707120 1.3.6.1.4.1.14296.1.100.27.0|66|269589190 1.3.6.1.4.1.14296.1.100.28.0|4| 1.3.6.1.4.1.14296.1.100.29.0|4|juge blond 1.3.6.1.4.1.14296.1.100.31.0|4| 1.3.6.1.4.1.14296.1.100.32.0|4| 1.3.6.1.4.1.14296.1.100.33.0|4| [root@ron-zenoss-4_1_1-minimal-dev ~]# |
From: Ilya E. <il...@gl...> - 2013-06-09 10:53:07
|
Hi Ron, You seem to be missing community name: snmpwalk -v2c -c ZENOSS 127.0.0.4:1161 1.3.6.1.4.1.14296 which is used for addressing specific simulated SNMP agent (e.g. .snmprec file). Also, snmpsimd reports .snmprec file it is using for answering request on its stdout. As a side note, I'd suggest you using the latest snmpsim which, besides other fixes, has mib2dev.py tool significantly improved since 0.2.2: http://snmpsim.cvs.sourceforge.net/viewvc/snmpsim/snmpsim/?view=tar -ilya On Jun 9, 2013, at 2:43 PM, snm...@9o... wrote: > Hi, > > In the "quest" to simulate SNMP agents with access to neither devices nor snmpwalk output, I'm checking snmpsim (SNMP Simulator: https://sourceforge.net/p/snmpsim). > > I encounter this issue - > > > After running the following: > > # /opt/zenoss/bin/smidump -f python /opt/zenoss/share/mibs/site/ZENOSS-MIB.txt | /usr/bin/libsmi2pysnmp > ~/.snmpsim/data/libsmi2pysnmp/ZENOSS-MIB.py > > I get a ZENOSS-MIB.py which seems okay (see at bottom). > > > Now, I run: > > # snmpsimd.py --v2c-arch --agent-udpv4-endpoint=127.0.0.4:1161 > > and in another shell terminal: > > # mib2dev.py --pysnmp-mib-dir=/root/.snmpsim/data/libsmi2pysnmp/ --mib-module=ZENOSS-MIB --output-file=/root/.snmpsim/data/ZENOSS.snmprec > > > and: > > # grep 1.3.6.1.4.1.14296.1.100.23.0 /root/.snmpsim/data/ZENOSS.snmprec > 1.3.6.1.4.1.14296.1.100.23.0|4|Portez > > > So, 1.3.6.1.4.1.14296.1.100.23.0 is a valid (knowd) OID. > > However, when I try to inspect this OID, I get the following error: > > # snmpwalk 127.0.0.4:1161 1.3.6.1.4.1.14296 > RFC1155-SMI::enterprises.14296 = No Such Instance currently exists at this OID > # > > > > It seems that SNMP Simulator does not let snmpwalk know about ZENOSS.snmprec. > > Can you suggest what am I doing wrong? > > Thanks, > Ron. > > |