splunk / splunk-connect-for-snmp

Splunk connect for SNMP
https://splunk.github.io/splunk-connect-for-snmp/
Apache License 2.0
34 stars 15 forks source link

Parsing error when doing a SNMP-walk to a fortinet device #1110

Open thel1988 opened 2 hours ago

thel1988 commented 2 hours ago

We are having issues parsing snmp-walks from fortinet-devices, using the correct MIBS downloaded from the devices, and imported as a local MIB, any idea on what this error is about?

[2024-10-22 08:13:14,408: ERROR/ForkPoolWorker-3] Task splunk_connect_for_snmp.snmp.tasks.walk[adcb7602-6941-4336-9590-1d91d34fa432] raised unexpected: UnpickleableExceptionWrapper('pysnmp.error', 'PySnmpError', ('poll error: Traceback (most recent call last):\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/asyncore/dispatch.py", line 45, in runDispatcher\n loop(timeout or self.getTimerResolution(),\n; File "/usr/local/lib/python3.10/asyncore.py", line 214, in loop\n poll_fun(timeout, map)\n; File "/usr/local/lib/python3.10/asyncore.py", line 195, in poll2\n readwrite(obj, flags)\n; File "/usr/local/lib/python3.10/asyncore.py", line 130, in readwrite\n obj.handle_error()\n; File "/usr/local/lib/python3.10/asyncore.py", line 115, in readwrite\n obj.handle_read_event()\n; File "/usr/local/lib/python3.10/asyncore.py", line 427, in handle_read_event\n self.handle_read()\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/asyncore/dgram/base.py", line 170, in handle_read\n self._cbFun(self, transportAddress, incomingMessage)\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/base.py", line 80, in _cbFun\n self.__recvCallables[recvId](\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/entity/engine.py", line 151, in __receiveMessageCbFun\n self.msgAndPduDsp.receiveMessage(\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/proto/rfc3412.py", line 481, in receiveMessage\n processResponsePdu(snmpEngine, messageProcessingModel,\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/entity/rfc3413/cmdgen.py", line 152, in processResponsePdu\n cbFun(snmpEngine, origSendRequestHandle, None, PDU, cbCtx)\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/entity/rfc3413/cmdgen.py", line 385, in processResponseVarBinds\n if not cbFun(snmpEngine, sendRequestHandle, errorIndication,\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/asyncore/cmdgen.py", line 487, in __cbFun\n [vbProcessor.unmakeVarBinds(snmpEngine, varBindTableRow, lookupMib) for varBindTableRow in\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/asyncore/cmdgen.py", line 487, in <listcomp>\n [vbProcessor.unmakeVarBinds(snmpEngine, varBindTableRow, lookupMib) for varBindTableRow in\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/varbinds.py", line 46, in unmakeVarBinds\n varBinds = [ObjectType(ObjectIdentity(x[0]), x[1]).resolveWithMib(\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/varbinds.py", line 46, in <listcomp>\n varBinds = [ObjectType(ObjectIdentity(x[0]), x[1]).resolveWithMib(\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/smi/rfc1902.py", line 850, in resolveWithMib\n self.__args[0].resolveWithMib(mibViewController)\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/smi/rfc1902.py", line 450, in resolveWithMib\n self.__indices = rowNode.getIndicesFromInstId(suffix)\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/smi/mibs/SNMPv2-SMI.py", line 1256, in getIndicesFromInstId\n raise error.SmiError(\n;pysnmp.smi.error.SmiError: Excessive instance identifier sub-OIDs left at MibTableRow((1, 3, 6, 1, 2, 1, 4, 34, 1), None): 58\ncaused by <class \'pysnmp.smi.error.SmiError\'>: Excessive instance identifier sub-OIDs left at MibTableRow((1, 3, 6, 1, 2, 1, 4, 34, 1), None): 58',), 'PySnmpError(\'poll error: Traceback (most recent call last):\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/asyncore/dispatch.py", line 45, in runDispatcher\\n loop(timeout or self.getTimerResolution(),\\n; File "/usr/local/lib/python3.10/asyncore.py", line 214, in loop\\n poll_fun(timeout, map)\\n; File "/usr/local/lib/python3.10/asyncore.py", line 195, in poll2\\n readwrite(obj, flags)\\n; File "/usr/local/lib/python3.10/asyncore.py", line 130, in readwrite\\n obj.handle_error()\\n; File "/usr/local/lib/python3.10/asyncore.py", line 115, in readwrite\\n obj.handle_read_event()\\n; File "/usr/local/lib/python3.10/asyncore.py", line 427, in handle_read_event\\n self.handle_read()\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/asyncore/dgram/base.py", line 170, in handle_read\\n self._cbFun(self, transportAddress, incomingMessage)\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/base.py", line 80, in _cbFun\\n self.__recvCallables[recvId](\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/entity/engine.py", line 151, in __receiveMessageCbFun\\n self.msgAndPduDsp.receiveMessage(\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/proto/rfc3412.py", line 481, in receiveMessage\\n processResponsePdu(snmpEngine, messageProcessingModel,\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/entity/rfc3413/cmdgen.py", line 152, in processResponsePdu\\n cbFun(snmpEngine, origSendRequestHandle, None, PDU, cbCtx)\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/entity/rfc3413/cmdgen.py", line 385, in processResponseVarBinds\\n if not cbFun(snmpEngine, sendRequestHandle, errorIndication,\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/asyncore/cmdgen.py", line 487, in __cbFun\\n [vbProcessor.unmakeVarBinds(snmpEngine, varBindTableRow, lookupMib) for varBindTableRow in\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/asyncore/cmdgen.py", line 487, in <listcomp>\\n [vbProcessor.unmakeVarBinds(snmpEngine, varBindTableRow, lookupMib) for varBindTableRow in\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/varbinds.py", line 46, in unmakeVarBinds\\n varBinds = [ObjectType(ObjectIdentity(x[0]), x[1]).resolveWithMib(\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/varbinds.py", line 46, in <listcomp>\\n varBinds = [ObjectType(ObjectIdentity(x[0]), x[1]).resolveWithMib(\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/smi/rfc1902.py", line 850, in resolveWithMib\\n self.__args[0].resolveWithMib(mibViewController)\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/smi/rfc1902.py", line 450, in resolveWithMib\\n self.__indices = rowNode.getIndicesFromInstId(suffix)\\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/smi/mibs/SNMPv2-SMI.py", line 1256, in getIndicesFromInstId\\n raise error.SmiError(\\n;pysnmp.smi.error.SmiError: Excessive instance identifier sub-OIDs left at MibTableRow((1, 3, 6, 1, 2, 1, 4, 34, 1), None): 58\\ncaused by <class \\\'pysnmp.smi.error.SmiError\\\'>: Excessive instance identifier sub-OIDs left at MibTableRow((1, 3, 6, 1, 2, 1, 4, 34, 1), None): 58\')') Traceback (most recent call last): File "/app/.venv/lib/python3.10/site-packages/celery/app/trace.py", line 453, in trace_task R = retval = fun(*args, **kwargs) File "/app/.venv/lib/python3.10/site-packages/celery/app/trace.py", line 736, in __protected_call__ return self.run(*args, **kwargs) File "/app/.venv/lib/python3.10/site-packages/celery/app/autoretry.py", line 38, in run return task._orig_run(*args, **kwargs) File "/app/.venv/lib/python3.10/site-packages/splunk_connect_for_snmp/snmp/tasks.py", line 85, in walk retry, result = self.do_work(ir, walk=True, profiles=profile) File "/app/.venv/lib/python3.10/site-packages/splunk_connect_for_snmp/snmp/manager.py", line 346, in do_work self.run_bulk_request( File "/app/.venv/lib/python3.10/site-packages/splunk_connect_for_snmp/snmp/manager.py", line 423, in run_bulk_request for ( File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/asyncore/sync/cmdgen.py", line 559, in bulkCmd snmpEngine.transportDispatcher.runDispatcher() File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/asyncore/dispatch.py", line 50, in runDispatcher raise PySnmpError('poll error: %s' % ';'.join(format_exception(*exc_info()))) celery.utils.serialization.UnpickleableExceptionWrapper: PySnmpError('poll error: Traceback (most recent call last):\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/asyncore/dispatch.py", line 45, in runDispatcher\n loop(timeout or self.getTimerResolution(),\n; File "/usr/local/lib/python3.10/asyncore.py", line 214, in loop\n poll_fun(timeout, map)\n; File "/usr/local/lib/python3.10/asyncore.py", line 195, in poll2\n readwrite(obj, flags)\n; File "/usr/local/lib/python3.10/asyncore.py", line 130, in readwrite\n obj.handle_error()\n; File "/usr/local/lib/python3.10/asyncore.py", line 115, in readwrite\n obj.handle_read_event()\n; File "/usr/local/lib/python3.10/asyncore.py", line 427, in handle_read_event\n self.handle_read()\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/asyncore/dgram/base.py", line 170, in handle_read\n self._cbFun(self, transportAddress, incomingMessage)\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/carrier/base.py", line 80, in _cbFun\n self.__recvCallables[recvId](\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/entity/engine.py", line 151, in __receiveMessageCbFun\n self.msgAndPduDsp.receiveMessage(\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/proto/rfc3412.py", line 481, in receiveMessage\n processResponsePdu(snmpEngine, messageProcessingModel,\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/entity/rfc3413/cmdgen.py", line 152, in processResponsePdu\n cbFun(snmpEngine, origSendRequestHandle, None, PDU, cbCtx)\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/entity/rfc3413/cmdgen.py", line 385, in processResponseVarBinds\n if not cbFun(snmpEngine, sendRequestHandle, errorIndication,\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/asyncore/cmdgen.py", line 487, in __cbFun\n [vbProcessor.unmakeVarBinds(snmpEngine, varBindTableRow, lookupMib) for varBindTableRow in\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/asyncore/cmdgen.py", line 487, in <listcomp>\n [vbProcessor.unmakeVarBinds(snmpEngine, varBindTableRow, lookupMib) for varBindTableRow in\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/varbinds.py", line 46, in unmakeVarBinds\n varBinds = [ObjectType(ObjectIdentity(x[0]), x[1]).resolveWithMib(\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/hlapi/varbinds.py", line 46, in <listcomp>\n varBinds = [ObjectType(ObjectIdentity(x[0]), x[1]).resolveWithMib(\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/smi/rfc1902.py", line 850, in resolveWithMib\n self.__args[0].resolveWithMib(mibViewController)\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/smi/rfc1902.py", line 450, in resolveWithMib\n self.__indices = rowNode.getIndicesFromInstId(suffix)\n; File "/app/.venv/lib/python3.10/site-packages/pysnmp/smi/mibs/SNMPv2-SMI.py", line 1256, in getIndicesFromInstId\n raise error.SmiError(\n;pysnmp.smi.error.SmiError: Excessive instance identifier sub-OIDs left at MibTableRow((1, 3, 6, 1, 2, 1, 4, 34, 1), None): 58\ncaused by <class \'pysnmp.smi.error.SmiError\'>: Excessive instance identifier sub-OIDs left at MibTableRow((1, 3, 6, 1, 2, 1, 4, 34, 1), None): 58')

thel1988 commented 2 hours ago

It seems to be this value, causing the error? iso.3.6.1.2.1.4.34.1.3.1.4.10.0.0.0.58 = INTEGER: 58

ajasnosz commented 6 minutes ago

Hello, this error can be seen sometimes if there is a mismatch between agent and manager mib version. From what I see the value failing is ipAddressType from IP-MIB, did you also load the IP-MIB? As it is standard mib it is included in the mibserver by default, was it also misbehaving with it then?