prometheus / snmp_exporter

SNMP Exporter for Prometheus
Apache License 2.0
1.7k stars 628 forks source link

can't get data from device, but snmpwalk does. #850

Open jsfrerot opened 1 year ago

jsfrerot commented 1 year ago

Host operating system: output of uname -a

Linux yul-blackbox-001 5.4.0-137-generic #154-Ubuntu SMP Thu Jan 5 17:03:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

snmp_exporter version: output of snmp_exporter -version

snmp_exporter, version 0.21.0 (branch: HEAD, revision: 0d8c3527cac0c26f1d6005b84b74413d14264c37) build user: root@51dfd4b1f59b build date: 20221122-15:14:18 go version: go1.19.3 platform: linux/amd64

What device/snmpwalk OID are you using?

FMT04-CH1U, 1U Managed Chassis https://www.fs.com/products/39214.html?attribute=54780&id=870796 OID: 1.3.6.1.4.1.40989

If this is a new device, please link to the MIB(s).

https://bestmonitoringtools.com/mibdb/mibs/OAP-C1-OEO.mib There is C1 through C16, it's basically 1.3.6.1.4.1.40989.10.16.1 through 1.3.6.1.4.1.40989.10.16.16 on seperate files

What did you do that produced an error?

I used the generator with the following diff

[jsfrerot@jsfrerot-lnx(main) generator]$ git diff
diff --git a/generator/Makefile b/generator/Makefile
index 1ef93f6..55ac337 100644
--- a/generator/Makefile
+++ b/generator/Makefile
@@ -45,6 +45,7 @@ WIENER_URL        := https://file.wiener-d.com/software/net-snmp/WIENER-CRATE-MI
 RARITAN_URL       := https://cdn.raritan.com/download/PX/v1.5.20/PDU-MIB.txt
 INFRAPOWER_URL    := https://www.austin-hughes.com/wp-content/uploads/2021/05/IPD-03-S-MIB.zip
 LIEBERT_URL       := https://www.vertiv.com/globalassets/documents/software/monitoring/lgpmib-win_rev16_299461_0.zip
+FSCOMOAP_URL      := https://bestmonitoringtools.com/mibdb/mibs/OAP-C1-OEO.mib

 CYBERPOWER_VERSION := 2.10
 CYBERPOWER_URL     := https://dl4jz3rbrsfum.cloudfront.net/software/CyberPower_MIB_v$(CYBERPOWER_VERSION).MIB.zip
@@ -125,7 +126,8 @@ mibs: mib-dir \
   $(MIBDIR)/PDU-MIB.txt \
   $(MIBDIR)/Infrapower-MIB.mib \
   $(MIBDIR)/LIEBERT_GP_PDU.MIB \
-  $(MIBDIR)/CyberPower.MIB
+  $(MIBDIR)/CyberPower.MIB \
+  $(MIBDIR)/FSCOM.MIB

 mib-dir:
        @mkdir -p -v $(MIBDIR)
@@ -318,3 +320,7 @@ $(MIBDIR)/CyberPower.MIB:
        @unzip -j -d $(MIBDIR) $(TMP) CyberPower_MIB_v$(CYBERPOWER_VERSION).MIB
        @mv -v $(MIBDIR)/CyberPower_MIB_v$(CYBERPOWER_VERSION).MIB $@
        @rm -v $(TMP)
+
+$(MIBDIR)/FSCOM.MIB:
+       @echo ">> Downloading FSCOM.MIB"
+       @curl $(CURL_OPTS) -o $(MIBDIR)/OAP-C1-OEO.mib $(FSCOMOAP_URL)
diff --git a/generator/generator.yml b/generator/generator.yml
index 7ce742f..6f36a15 100644
--- a/generator/generator.yml
+++ b/generator/generator.yml
@@ -667,3 +667,11 @@ modules:
       - 1.3.6.1.4.1.3808.1.1.1 # ups
       - 1.3.6.1.4.1.3808.1.1.4 # environmentSensor
       - 1.3.6.1.4.1.3808.1.1.6 # ePDU2
+
+# FSCOM
+#
+# https://bestmonitoringtools.com/mibdb/mibs/OAP-C1-OEO.mib (From FS.COM FMT MonitorOnline Software on windows)
+  fmt:
+    version: 1
+    walk:
+      - 1.3.6.1.4.1.40989

Than ran "make clean", "make mibs" and "make generate" uploaded the snmp.yml to /etc/snmp-exporter.yaml on the snmp_exporter node and started it with the following params: /usr/local/bin/snmp_exporter --config.file=/etc/snmp-exporter.yaml

What did you expect to see?

a snmpwalk like this show the expected result:

[jsfrerot@jsfrerot-lnx MIBS]$ snmpwalk -Cc  -c public -v1 -On 10.2.20.11 1.3.6.1.4.1.40989
.1.3.6.1.2.1.1.1.0 = STRING: "GLCY SNMP"
.1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.2.1.1.2
.1.3.6.1.2.1.1.3.0 = Timeticks: (2552889500) 295 days, 11:21:35.00
.1.3.6.1.2.1.1.4.0 = ""
.1.3.6.1.2.1.1.5.0 = ""
.1.3.6.1.2.1.1.6.0 = ""
.1.3.6.1.4.1.40989.10.16.20.1.0 = STRING: "OAP-M1"
.1.3.6.1.4.1.40989.10.16.20.2.0 = STRING: "010.002.020.011"
.1.3.6.1.4.1.40989.10.16.20.3.0 = STRING: "255.255.255.000"
.1.3.6.1.4.1.40989.10.16.20.4.0 = STRING: "010.002.020.001"
.1.3.6.1.4.1.40989.10.16.20.5.0 = STRING: "64-9d-99-a0-0c-1c"
.1.3.6.1.4.1.40989.10.16.20.6.0 = INTEGER: 0
.1.3.6.1.4.1.40989.10.16.20.7.0 = INTEGER: 0
.1.3.6.1.4.1.40989.10.16.20.8.0 = INTEGER: 0
.1.3.6.1.4.1.40989.10.16.20.9.0 = INTEGER: 0
.1.3.6.1.4.1.40989.10.16.20.10.0 = INTEGER: 1
.1.3.6.1.4.1.40989.10.16.20.11.0 = INTEGER: 1
.1.3.6.1.4.1.40989.10.16.20.12.0 = INTEGER: 1
.1.3.6.1.4.1.40989.10.16.20.13.0 = STRING: "1.03.24"
.1.3.6.1.4.1.40989.10.16.20.14.0 = STRING: "1.08.09"
.1.3.6.1.4.1.40989.10.16.20.15.0 = STRING: "3021110012511131"
.1.3.6.1.4.1.40989.10.16.20.16.0 = STRING: "2021-11-24"
.1.3.6.1.4.1.40989.10.16.1.2.1.0 = INTEGER: on(1)
.1.3.6.1.4.1.40989.10.16.1.2.2.0 = STRING: "OEO"
.1.3.6.1.4.1.40989.10.16.1.2.3.0 = STRING: "OEO"
.1.3.6.1.4.1.40989.10.16.1.2.4.0 = STRING: "SV3.01.18"
.1.3.6.1.4.1.40989.10.16.1.2.5.0 = STRING: "HV1.01.01"
.1.3.6.1.4.1.40989.10.16.1.2.6.0 = STRING: "1121080004651117"
.1.3.6.1.4.1.40989.10.16.1.2.7.0 = STRING: "2021/09/10"
.1.3.6.1.4.1.40989.10.16.1.2.11.1.0 = INTEGER: on(1)
.1.3.6.1.4.1.40989.10.16.1.2.11.2.0 = INTEGER: normal(1)
.1.3.6.1.4.1.40989.10.16.1.2.11.3.0 = INTEGER: on(1)
.1.3.6.1.4.1.40989.10.16.1.2.11.4.0 = INTEGER: 126
.1.3.6.1.4.1.40989.10.16.1.2.11.5.0 = INTEGER: -824
.1.3.6.1.4.1.40989.10.16.1.2.11.6.0 = INTEGER: 131000
.1.3.6.1.4.1.40989.10.16.1.2.11.7.0 = INTEGER: 40000
.1.3.6.1.4.1.40989.10.16.1.2.11.8.0 = INTEGER: 10300
.1.3.6.1.4.1.40989.10.16.1.2.11.9.0 = INTEGER: 3768
.1.3.6.1.4.1.40989.10.16.1.2.11.10.0 = INTEGER: normal(1)
.1.3.6.1.4.1.40989.10.16.1.2.11.11.0 = INTEGER: normal(1)
.1.3.6.1.4.1.40989.10.16.1.2.11.12.0 = INTEGER: normal(1)
.1.3.6.1.4.1.40989.10.16.1.2.11.13.0 = INTEGER: -2000
.1.3.6.1.4.1.40989.10.16.1.2.12.1.0 = INTEGER: on(1)
.1.3.6.1.4.1.40989.10.16.1.2.12.2.0 = INTEGER: normal(1)
.1.3.6.1.4.1.40989.10.16.1.2.12.3.0 = INTEGER: on(1)
.1.3.6.1.4.1.40989.10.16.1.2.12.4.0 = INTEGER: -231
.1.3.6.1.4.1.40989.10.16.1.2.12.5.0 = INTEGER: -230
.1.3.6.1.4.1.40989.10.16.1.2.12.6.0 = INTEGER: 85000
.1.3.6.1.4.1.40989.10.16.1.2.12.7.0 = INTEGER: 300
.1.3.6.1.4.1.40989.10.16.1.2.12.8.0 = INTEGER: 10300
.1.3.6.1.4.1.40989.10.16.1.2.12.9.0 = INTEGER: 3593
.1.3.6.1.4.1.40989.10.16.1.2.12.10.0 = INTEGER: normal(1)
.1.3.6.1.4.1.40989.10.16.1.2.12.11.0 = INTEGER: normal(1)
.1.3.6.1.4.1.40989.10.16.1.2.12.12.0 = INTEGER: normal(1)
.1.3.6.1.4.1.40989.10.16.1.2.12.13.0 = INTEGER: -2000
.1.3.6.1.4.1.40989.10.16.1.2.13.1.0 = INTEGER: off(0)
.1.3.6.1.4.1.40989.10.16.1.2.14.1.0 = INTEGER: off(0)
.1.3.6.1.4.1.40989.10.16.1.2.15.1.0 = INTEGER: off(0)
.1.3.6.1.4.1.40989.10.16.1.2.16.1.0 = INTEGER: off(0)
.1.3.6.1.4.1.40989.10.16.1.2.17.1.0 = INTEGER: off(0)
.1.3.6.1.4.1.40989.10.16.1.2.18.1.0 = INTEGER: off(0)
.1.3.6.1.4.1.40989.10.16.2.0.1.0 = INTEGER: 0
.1.3.6.1.4.1.40989.10.16.3.0.1.0 = INTEGER: 0
.1.3.6.1.4.1.40989.10.16.4.0.1.0 = INTEGER: 0
End of MIB

and here is the tcpdump for troubleshooting

14:13:12.429700 IP (tos 0x0, ttl 64, id 7775, offset 0, flags [none], proto UDP (17), length 71)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(28) R=1484934299  .1.3.6.1.4.1.40989 } } 
14:13:12.437795 IP (tos 0x0, ttl 125, id 22799, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934299  .1.3.6.1.2.1.1.1.0="GLCY SNMP" } } 
14:13:12.438178 IP (tos 0x0, ttl 64, id 7776, offset 0, flags [none], proto UDP (17), length 71)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(28) R=1484934300  .1.3.6.1.2.1.1.1.0 } } 
14:13:12.459697 IP (tos 0x0, ttl 125, id 22801, offset 0, flags [DF], proto UDP (17), length 78)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(35) R=1484934300  .1.3.6.1.2.1.1.2.0=.1.3.6.1.2.1.1.2 } } 
14:13:12.459897 IP (tos 0x0, ttl 64, id 7781, offset 0, flags [none], proto UDP (17), length 71)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(28) R=1484934301  .1.3.6.1.2.1.1.2.0 } } 
14:13:12.481627 IP (tos 0x0, ttl 125, id 22802, offset 0, flags [DF], proto UDP (17), length 75)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(32) R=1484934301  .1.3.6.1.2.1.1.3.0=2552908200 } } 
14:13:12.481839 IP (tos 0x0, ttl 64, id 7783, offset 0, flags [none], proto UDP (17), length 71)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(28) R=1484934302  .1.3.6.1.2.1.1.3.0 } } 
14:13:12.503635 IP (tos 0x0, ttl 125, id 22803, offset 0, flags [DF], proto UDP (17), length 71)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(28) R=1484934302  .1.3.6.1.2.1.1.4.0="" } } 
14:13:12.503961 IP (tos 0x0, ttl 64, id 7784, offset 0, flags [none], proto UDP (17), length 71)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(28) R=1484934303  .1.3.6.1.2.1.1.4.0 } } 
14:13:12.525716 IP (tos 0x0, ttl 125, id 22804, offset 0, flags [DF], proto UDP (17), length 71)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(28) R=1484934303  .1.3.6.1.2.1.1.5.0="" } } 
14:13:12.526550 IP (tos 0x0, ttl 64, id 7789, offset 0, flags [none], proto UDP (17), length 71)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(28) R=1484934304  .1.3.6.1.2.1.1.5.0 } } 
14:13:12.547711 IP (tos 0x0, ttl 125, id 22805, offset 0, flags [DF], proto UDP (17), length 71)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(28) R=1484934304  .1.3.6.1.2.1.1.6.0="" } } 
14:13:12.548079 IP (tos 0x0, ttl 64, id 7790, offset 0, flags [none], proto UDP (17), length 71)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(28) R=1484934305  .1.3.6.1.2.1.1.6.0 } } 
14:13:12.569629 IP (tos 0x0, ttl 125, id 22807, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934305  .1.3.6.1.4.1.40989.10.16.20.1.0="OAP-M1" } } 
14:13:12.569952 IP (tos 0x0, ttl 64, id 7796, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934306  .1.3.6.1.4.1.40989.10.16.20.1.0 } } 
14:13:12.592082 IP (tos 0x0, ttl 125, id 22808, offset 0, flags [DF], proto UDP (17), length 91)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(48) R=1484934306  .1.3.6.1.4.1.40989.10.16.20.2.0="010.002.020.011" } } 
14:13:12.592466 IP (tos 0x0, ttl 64, id 7801, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934307  .1.3.6.1.4.1.40989.10.16.20.2.0 } } 
14:13:12.614080 IP (tos 0x0, ttl 125, id 22809, offset 0, flags [DF], proto UDP (17), length 91)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(48) R=1484934307  .1.3.6.1.4.1.40989.10.16.20.3.0="255.255.255.000" } } 
14:13:12.614262 IP (tos 0x0, ttl 64, id 7805, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934308  .1.3.6.1.4.1.40989.10.16.20.3.0 } } 
14:13:12.635915 IP (tos 0x0, ttl 125, id 22810, offset 0, flags [DF], proto UDP (17), length 91)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(48) R=1484934308  .1.3.6.1.4.1.40989.10.16.20.4.0="010.002.020.001" } } 
14:13:12.636155 IP (tos 0x0, ttl 64, id 7810, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934309  .1.3.6.1.4.1.40989.10.16.20.4.0 } } 
14:13:12.658133 IP (tos 0x0, ttl 125, id 22811, offset 0, flags [DF], proto UDP (17), length 93)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(50) R=1484934309  .1.3.6.1.4.1.40989.10.16.20.5.0="64-9d-99-a0-0c-1c" } } 
14:13:12.658329 IP (tos 0x0, ttl 64, id 7813, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934310  .1.3.6.1.4.1.40989.10.16.20.5.0 } } 
14:13:12.679602 IP (tos 0x0, ttl 125, id 22812, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934310  .1.3.6.1.4.1.40989.10.16.20.6.0=0 } } 
14:13:12.679864 IP (tos 0x0, ttl 64, id 7817, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934311  .1.3.6.1.4.1.40989.10.16.20.6.0 } } 
14:13:12.701606 IP (tos 0x0, ttl 125, id 22813, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934311  .1.3.6.1.4.1.40989.10.16.20.7.0=0 } } 
14:13:12.702197 IP (tos 0x0, ttl 64, id 7822, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934312  .1.3.6.1.4.1.40989.10.16.20.7.0 } } 
14:13:12.723592 IP (tos 0x0, ttl 125, id 22814, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934312  .1.3.6.1.4.1.40989.10.16.20.8.0=0 } } 
14:13:12.724034 IP (tos 0x0, ttl 64, id 7824, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934313  .1.3.6.1.4.1.40989.10.16.20.8.0 } } 
14:13:12.745604 IP (tos 0x0, ttl 125, id 22815, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934313  .1.3.6.1.4.1.40989.10.16.20.9.0=0 } } 
14:13:12.746151 IP (tos 0x0, ttl 64, id 7825, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934314  .1.3.6.1.4.1.40989.10.16.20.9.0 } } 
14:13:12.767619 IP (tos 0x0, ttl 125, id 22816, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934314  .1.3.6.1.4.1.40989.10.16.20.10.0=1 } } 
14:13:12.768752 IP (tos 0x0, ttl 64, id 7830, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934315  .1.3.6.1.4.1.40989.10.16.20.10.0 } } 
14:13:12.789686 IP (tos 0x0, ttl 125, id 22817, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934315  .1.3.6.1.4.1.40989.10.16.20.11.0=1 } } 
14:13:12.790733 IP (tos 0x0, ttl 64, id 7831, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934316  .1.3.6.1.4.1.40989.10.16.20.11.0 } } 
14:13:12.811661 IP (tos 0x0, ttl 125, id 22818, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934316  .1.3.6.1.4.1.40989.10.16.20.12.0=1 } } 
14:13:12.812380 IP (tos 0x0, ttl 64, id 7837, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934317  .1.3.6.1.4.1.40989.10.16.20.12.0 } } 
14:13:12.833822 IP (tos 0x0, ttl 125, id 22819, offset 0, flags [DF], proto UDP (17), length 83)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(40) R=1484934317  .1.3.6.1.4.1.40989.10.16.20.13.0="1.03.24" } } 
14:13:12.834178 IP (tos 0x0, ttl 64, id 7838, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934318  .1.3.6.1.4.1.40989.10.16.20.13.0 } } 
14:13:12.855802 IP (tos 0x0, ttl 125, id 22820, offset 0, flags [DF], proto UDP (17), length 83)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(40) R=1484934318  .1.3.6.1.4.1.40989.10.16.20.14.0="1.08.09" } } 
14:13:12.856474 IP (tos 0x0, ttl 64, id 7839, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934319  .1.3.6.1.4.1.40989.10.16.20.14.0 } } 
14:13:12.877778 IP (tos 0x0, ttl 125, id 22821, offset 0, flags [DF], proto UDP (17), length 92)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(49) R=1484934319  .1.3.6.1.4.1.40989.10.16.20.15.0="3021110012511131" } } 
14:13:12.878125 IP (tos 0x0, ttl 64, id 7841, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934320  .1.3.6.1.4.1.40989.10.16.20.15.0 } } 
14:13:12.899908 IP (tos 0x0, ttl 125, id 22822, offset 0, flags [DF], proto UDP (17), length 86)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(43) R=1484934320  .1.3.6.1.4.1.40989.10.16.20.16.0="2021-11-24" } } 
14:13:12.900265 IP (tos 0x0, ttl 64, id 7842, offset 0, flags [none], proto UDP (17), length 76)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(33) R=1484934321  .1.3.6.1.4.1.40989.10.16.20.16.0 } } 
14:13:12.921677 IP (tos 0x0, ttl 125, id 22823, offset 0, flags [DF], proto UDP (17), length 81)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(38) R=1484934321  .1.3.6.1.4.1.40989.10.16.1.2.1.0=1 } } 
14:13:12.922078 IP (tos 0x0, ttl 64, id 7846, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934322  .1.3.6.1.4.1.40989.10.16.1.2.1.0 } } 
14:13:12.943624 IP (tos 0x0, ttl 125, id 22824, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934322  .1.3.6.1.4.1.40989.10.16.1.2.2.0="OEO" } } 
14:13:12.943992 IP (tos 0x0, ttl 64, id 7848, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934323  .1.3.6.1.4.1.40989.10.16.1.2.2.0 } } 
14:13:12.965586 IP (tos 0x0, ttl 125, id 22825, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(37) R=1484934323  .1.3.6.1.4.1.40989.10.16.1.2.3.0="OEO" } } 
14:13:12.965858 IP (tos 0x0, ttl 64, id 7851, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934324  .1.3.6.1.4.1.40989.10.16.1.2.3.0 } } 
14:13:12.987818 IP (tos 0x0, ttl 125, id 22826, offset 0, flags [DF], proto UDP (17), length 86)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(43) R=1484934324  .1.3.6.1.4.1.40989.10.16.1.2.4.0="SV3.01.18" } } 
14:13:12.988005 IP (tos 0x0, ttl 64, id 7855, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934325  .1.3.6.1.4.1.40989.10.16.1.2.4.0 } } 
14:13:13.009800 IP (tos 0x0, ttl 125, id 22827, offset 0, flags [DF], proto UDP (17), length 86)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(43) R=1484934325  .1.3.6.1.4.1.40989.10.16.1.2.5.0="HV1.01.01" } } 
14:13:13.010001 IP (tos 0x0, ttl 64, id 7860, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934326  .1.3.6.1.4.1.40989.10.16.1.2.5.0 } } 
14:13:13.031685 IP (tos 0x0, ttl 125, id 22828, offset 0, flags [DF], proto UDP (17), length 93)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(50) R=1484934326  .1.3.6.1.4.1.40989.10.16.1.2.6.0="1121080004651117" } } 
14:13:13.031895 IP (tos 0x0, ttl 64, id 7864, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934327  .1.3.6.1.4.1.40989.10.16.1.2.6.0 } } 
14:13:13.053595 IP (tos 0x0, ttl 125, id 22829, offset 0, flags [DF], proto UDP (17), length 87)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(44) R=1484934327  .1.3.6.1.4.1.40989.10.16.1.2.7.0="2021/09/10" } } 
14:13:13.053939 IP (tos 0x0, ttl 64, id 7870, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934328  .1.3.6.1.4.1.40989.10.16.1.2.7.0 } } 
14:13:13.075684 IP (tos 0x0, ttl 125, id 22830, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934328  .1.3.6.1.4.1.40989.10.16.1.2.11.1.0=1 } } 
14:13:13.076234 IP (tos 0x0, ttl 64, id 7875, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934329  .1.3.6.1.4.1.40989.10.16.1.2.11.1.0 } } 
14:13:13.097742 IP (tos 0x0, ttl 125, id 22831, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934329  .1.3.6.1.4.1.40989.10.16.1.2.11.2.0=1 } } 
14:13:13.098346 IP (tos 0x0, ttl 64, id 7878, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934330  .1.3.6.1.4.1.40989.10.16.1.2.11.2.0 } } 
14:13:13.119615 IP (tos 0x0, ttl 125, id 22832, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934330  .1.3.6.1.4.1.40989.10.16.1.2.11.3.0=1 } } 
14:13:13.119942 IP (tos 0x0, ttl 64, id 7880, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934331  .1.3.6.1.4.1.40989.10.16.1.2.11.3.0 } } 
14:13:13.141596 IP (tos 0x0, ttl 125, id 22833, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934331  .1.3.6.1.4.1.40989.10.16.1.2.11.4.0=128 } } 
14:13:13.141904 IP (tos 0x0, ttl 64, id 7881, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934332  .1.3.6.1.4.1.40989.10.16.1.2.11.4.0 } } 
14:13:13.163625 IP (tos 0x0, ttl 125, id 22834, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934332  .1.3.6.1.4.1.40989.10.16.1.2.11.5.0=-821 } } 
14:13:13.163834 IP (tos 0x0, ttl 64, id 7885, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934333  .1.3.6.1.4.1.40989.10.16.1.2.11.5.0 } } 
14:13:13.199233 IP (tos 0x0, ttl 125, id 22835, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934333  .1.3.6.1.4.1.40989.10.16.1.2.11.6.0=131000 } } 
14:13:13.199619 IP (tos 0x0, ttl 64, id 7888, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934334  .1.3.6.1.4.1.40989.10.16.1.2.11.6.0 } } 
14:13:13.219682 IP (tos 0x0, ttl 125, id 22836, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934334  .1.3.6.1.4.1.40989.10.16.1.2.11.7.0=40000 } } 
14:13:13.219968 IP (tos 0x0, ttl 64, id 7893, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934335  .1.3.6.1.4.1.40989.10.16.1.2.11.7.0 } } 
14:13:13.241694 IP (tos 0x0, ttl 125, id 22837, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934335  .1.3.6.1.4.1.40989.10.16.1.2.11.8.0=10300 } } 
14:13:13.242301 IP (tos 0x0, ttl 64, id 7896, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934336  .1.3.6.1.4.1.40989.10.16.1.2.11.8.0 } } 
14:13:13.263844 IP (tos 0x0, ttl 125, id 22838, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934336  .1.3.6.1.4.1.40989.10.16.1.2.11.9.0=3781 } } 
14:13:13.264830 IP (tos 0x0, ttl 64, id 7900, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934337  .1.3.6.1.4.1.40989.10.16.1.2.11.9.0 } } 
14:13:13.285639 IP (tos 0x0, ttl 125, id 22839, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934337  .1.3.6.1.4.1.40989.10.16.1.2.11.10.0=1 } } 
14:13:13.286084 IP (tos 0x0, ttl 64, id 7903, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934338  .1.3.6.1.4.1.40989.10.16.1.2.11.10.0 } } 
14:13:13.307657 IP (tos 0x0, ttl 125, id 22840, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934338  .1.3.6.1.4.1.40989.10.16.1.2.11.11.0=1 } } 
14:13:13.308150 IP (tos 0x0, ttl 64, id 7904, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934339  .1.3.6.1.4.1.40989.10.16.1.2.11.11.0 } } 
14:13:13.329748 IP (tos 0x0, ttl 125, id 22841, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934339  .1.3.6.1.4.1.40989.10.16.1.2.11.12.0=1 } } 
14:13:13.330521 IP (tos 0x0, ttl 64, id 7907, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934340  .1.3.6.1.4.1.40989.10.16.1.2.11.12.0 } } 
14:13:13.351650 IP (tos 0x0, ttl 125, id 22842, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934340  .1.3.6.1.4.1.40989.10.16.1.2.11.13.0=-2000 } } 
14:13:13.352056 IP (tos 0x0, ttl 64, id 7912, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934341  .1.3.6.1.4.1.40989.10.16.1.2.11.13.0 } } 
14:13:13.373626 IP (tos 0x0, ttl 125, id 22843, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934341  .1.3.6.1.4.1.40989.10.16.1.2.12.1.0=1 } } 
14:13:13.374036 IP (tos 0x0, ttl 64, id 7916, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934342  .1.3.6.1.4.1.40989.10.16.1.2.12.1.0 } } 
14:13:13.395900 IP (tos 0x0, ttl 125, id 22844, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934342  .1.3.6.1.4.1.40989.10.16.1.2.12.2.0=1 } } 
14:13:13.396837 IP (tos 0x0, ttl 64, id 7918, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934343  .1.3.6.1.4.1.40989.10.16.1.2.12.2.0 } } 
14:13:13.417671 IP (tos 0x0, ttl 125, id 22845, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934343  .1.3.6.1.4.1.40989.10.16.1.2.12.3.0=1 } } 
14:13:13.418475 IP (tos 0x0, ttl 64, id 7922, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934344  .1.3.6.1.4.1.40989.10.16.1.2.12.3.0 } } 
14:13:13.439667 IP (tos 0x0, ttl 125, id 22846, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934344  .1.3.6.1.4.1.40989.10.16.1.2.12.4.0=-231 } } 
14:13:13.440080 IP (tos 0x0, ttl 64, id 7926, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934345  .1.3.6.1.4.1.40989.10.16.1.2.12.4.0 } } 
14:13:13.461678 IP (tos 0x0, ttl 125, id 22847, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934345  .1.3.6.1.4.1.40989.10.16.1.2.12.5.0=-230 } } 
14:13:13.462403 IP (tos 0x0, ttl 64, id 7930, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934346  .1.3.6.1.4.1.40989.10.16.1.2.12.5.0 } } 
14:13:13.483624 IP (tos 0x0, ttl 125, id 22848, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934346  .1.3.6.1.4.1.40989.10.16.1.2.12.6.0=85000 } } 
14:13:13.484004 IP (tos 0x0, ttl 64, id 7932, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934347  .1.3.6.1.4.1.40989.10.16.1.2.12.6.0 } } 
14:13:13.505621 IP (tos 0x0, ttl 125, id 22849, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934347  .1.3.6.1.4.1.40989.10.16.1.2.12.7.0=300 } } 
14:13:13.505865 IP (tos 0x0, ttl 64, id 7933, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934348  .1.3.6.1.4.1.40989.10.16.1.2.12.7.0 } } 
14:13:13.527662 IP (tos 0x0, ttl 125, id 22850, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934348  .1.3.6.1.4.1.40989.10.16.1.2.12.8.0=10300 } } 
14:13:13.528055 IP (tos 0x0, ttl 64, id 7937, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934349  .1.3.6.1.4.1.40989.10.16.1.2.12.8.0 } } 
14:13:13.549820 IP (tos 0x0, ttl 125, id 22851, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934349  .1.3.6.1.4.1.40989.10.16.1.2.12.9.0=3593 } } 
14:13:13.550671 IP (tos 0x0, ttl 64, id 7942, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934350  .1.3.6.1.4.1.40989.10.16.1.2.12.9.0 } } 
14:13:13.571710 IP (tos 0x0, ttl 125, id 22852, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934350  .1.3.6.1.4.1.40989.10.16.1.2.12.10.0=1 } } 
14:13:13.572515 IP (tos 0x0, ttl 64, id 7945, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934351  .1.3.6.1.4.1.40989.10.16.1.2.12.10.0 } } 
14:13:13.598885 IP (tos 0x0, ttl 125, id 22857, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934351  .1.3.6.1.4.1.40989.10.16.1.2.12.11.0=1 } } 
14:13:13.599653 IP (tos 0x0, ttl 64, id 7947, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934352  .1.3.6.1.4.1.40989.10.16.1.2.12.11.0 } } 
14:13:13.615708 IP (tos 0x0, ttl 125, id 22858, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934352  .1.3.6.1.4.1.40989.10.16.1.2.12.12.0=1 } } 
14:13:13.616040 IP (tos 0x0, ttl 64, id 7950, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934353  .1.3.6.1.4.1.40989.10.16.1.2.12.12.0 } } 
14:13:13.637727 IP (tos 0x0, ttl 125, id 22859, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934353  .1.3.6.1.4.1.40989.10.16.1.2.12.13.0=-2000 } } 
14:13:13.637973 IP (tos 0x0, ttl 64, id 7951, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934354  .1.3.6.1.4.1.40989.10.16.1.2.12.13.0 } } 
14:13:13.659856 IP (tos 0x0, ttl 125, id 22860, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934354  .1.3.6.1.4.1.40989.10.16.1.2.13.1.0=0 } } 
14:13:13.660269 IP (tos 0x0, ttl 64, id 7956, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934355  .1.3.6.1.4.1.40989.10.16.1.2.13.1.0 } } 
14:13:13.681719 IP (tos 0x0, ttl 125, id 22861, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934355  .1.3.6.1.4.1.40989.10.16.1.2.14.1.0=0 } } 
14:13:13.681862 IP (tos 0x0, ttl 64, id 7957, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934356  .1.3.6.1.4.1.40989.10.16.1.2.14.1.0 } } 
14:13:13.703800 IP (tos 0x0, ttl 125, id 22862, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934356  .1.3.6.1.4.1.40989.10.16.1.2.15.1.0=0 } } 
14:13:13.704384 IP (tos 0x0, ttl 64, id 7963, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934357  .1.3.6.1.4.1.40989.10.16.1.2.15.1.0 } } 
14:13:13.725763 IP (tos 0x0, ttl 125, id 22863, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934357  .1.3.6.1.4.1.40989.10.16.1.2.16.1.0=0 } } 
14:13:13.726267 IP (tos 0x0, ttl 64, id 7965, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934358  .1.3.6.1.4.1.40989.10.16.1.2.16.1.0 } } 
14:13:13.749858 IP (tos 0x0, ttl 125, id 22864, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934358  .1.3.6.1.4.1.40989.10.16.1.2.17.1.0=0 } } 
14:13:13.750283 IP (tos 0x0, ttl 64, id 7966, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934359  .1.3.6.1.4.1.40989.10.16.1.2.17.1.0 } } 
14:13:13.769831 IP (tos 0x0, ttl 125, id 22865, offset 0, flags [DF], proto UDP (17), length 82)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(39) R=1484934359  .1.3.6.1.4.1.40989.10.16.1.2.18.1.0=0 } } 
14:13:13.770118 IP (tos 0x0, ttl 64, id 7968, offset 0, flags [none], proto UDP (17), length 78)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(35) R=1484934360  .1.3.6.1.4.1.40989.10.16.1.2.18.1.0 } } 
14:13:13.791748 IP (tos 0x0, ttl 125, id 22866, offset 0, flags [DF], proto UDP (17), length 81)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(38) R=1484934360  .1.3.6.1.4.1.40989.10.16.2.0.1.0=0 } } 
14:13:13.792149 IP (tos 0x0, ttl 64, id 7970, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934361  .1.3.6.1.4.1.40989.10.16.2.0.1.0 } } 
14:13:13.813714 IP (tos 0x0, ttl 125, id 22867, offset 0, flags [DF], proto UDP (17), length 81)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(38) R=1484934361  .1.3.6.1.4.1.40989.10.16.3.0.1.0=0 } } 
14:13:13.813858 IP (tos 0x0, ttl 64, id 7976, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934362  .1.3.6.1.4.1.40989.10.16.3.0.1.0 } } 
14:13:13.836041 IP (tos 0x0, ttl 125, id 22868, offset 0, flags [DF], proto UDP (17), length 81)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(38) R=1484934362  .1.3.6.1.4.1.40989.10.16.4.0.1.0=0 } } 
14:13:13.836506 IP (tos 0x0, ttl 64, id 7982, offset 0, flags [none], proto UDP (17), length 77)
    10.3.0.67.54227 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(34) R=1484934363  .1.3.6.1.4.1.40989.10.16.4.0.1.0 } } 
14:13:13.857966 IP (tos 0x0, ttl 125, id 22869, offset 0, flags [DF], proto UDP (17), length 77)
    10.2.20.11.161 > 10.3.0.67.54227:  { SNMPv1 { GetResponse(34) R=1484934363  noSuchName@1 .1.3.6.1.4.1.40989.10.16.4.0.1.0= } } 

What did you see instead?

The snmp_exporter shows only this:

# HELP snmp_scrape_duration_seconds Total SNMP time scrape took (walk and processing).
# TYPE snmp_scrape_duration_seconds gauge
snmp_scrape_duration_seconds 0.029648914
# HELP snmp_scrape_packets_retried Packets retried for get, bulkget, and walk.
# TYPE snmp_scrape_packets_retried gauge
snmp_scrape_packets_retried 0
# HELP snmp_scrape_packets_sent Packets sent for get, bulkget, and walk; including retries.
# TYPE snmp_scrape_packets_sent gauge
snmp_scrape_packets_sent 2
# HELP snmp_scrape_pdus_returned PDUs returned from get, bulkget, and walk.
# TYPE snmp_scrape_pdus_returned gauge
snmp_scrape_pdus_returned 0
# HELP snmp_scrape_walk_duration_seconds Time SNMP walk/bulkwalk took.
# TYPE snmp_scrape_walk_duration_seconds gauge
snmp_scrape_walk_duration_seconds 0.028961007

here is the snmp tcpdump if it can help:

14:12:22.486787 IP (tos 0x0, ttl 64, id 1876, offset 0, flags [none], proto UDP (17), length 71)
    10.3.0.67.44280 > 10.2.20.11.161:  { SNMPv1 { GetNextRequest(28) R=778476338  .1.3.6.1.4.1.40989 } } 
14:12:22.493433 IP (tos 0x0, ttl 125, id 22493, offset 0, flags [DF], proto UDP (17), length 80)
    10.2.20.11.161 > 10.3.0.67.44280:  { SNMPv1 { GetResponse(37) R=778476338  .1.3.6.1.2.1.1.1.0="GLCY SNMP" } } 
14:12:22.493658 IP (tos 0x0, ttl 64, id 1877, offset 0, flags [none], proto UDP (17), length 71)
    10.3.0.67.44280 > 10.2.20.11.161:  { SNMPv1 { GetRequest(28) R=778476339  .1.3.6.1.4.1.40989 } } 
14:12:22.515534 IP (tos 0x0, ttl 125, id 22494, offset 0, flags [DF], proto UDP (17), length 71)
    10.2.20.11.161 > 10.3.0.67.44280:  { SNMPv1 { GetResponse(28) R=778476339  noSuchName@1 .1.3.6.1.4.1.40989= } } 
SuperQ commented 1 year ago

For questions/help/support please use our community channels. There are more people available to potentially respond to your request and the whole community can benefit from the answers provided.

jsfrerot commented 1 year ago

debug log from snmp_exporter

ts=2023-03-14T17:42:42.802Z caller=main.go:97 level=debug module=fmt target=10.2.20.11 msg="Starting scrape"
ts=2023-03-14T17:42:42.805Z caller=collector.go:218 level=debug module=fmt target=10.2.20.11 msg="Walking subtree" oid=1.3.6.1.4.1.40989
ts=2023-03-14T17:42:42.836Z caller=collector.go:231 level=debug module=fmt target=10.2.20.11 msg="Walk of subtree completed" oid=1.3.6.1.4.1.40989 duration_seconds=31.054007ms
ts=2023-03-14T17:42:42.839Z caller=main.go:108 level=debug module=fmt target=10.2.20.11 msg="Finished scrape" duration_seconds=0.035128211
jsfrerot commented 1 year ago

Here the "fmt" section of the snmp.yml

walk:
  - 1.3.6.1.4.1.40989
metrics:
  - name: vCardState
    oid: 1.3.6.1.4.1.40989.10.16.1.2.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.1
    enum_values:
      0: "off"
      1: "on"
  - name: vDeviceType
    oid: 1.3.6.1.4.1.40989.10.16.1.2.2
    type: OctetString
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.2
  - name: vDeviceDescription
    oid: 1.3.6.1.4.1.40989.10.16.1.2.3
    type: OctetString
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.3
  - name: vSoftwareVerion
    oid: 1.3.6.1.4.1.40989.10.16.1.2.4
    type: OctetString
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.4
  - name: vHardwareVerion
    oid: 1.3.6.1.4.1.40989.10.16.1.2.5
    type: OctetString
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.5
  - name: vSerialNumber
    oid: 1.3.6.1.4.1.40989.10.16.1.2.6
    type: OctetString
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.6
  - name: vFactoryDate
    oid: 1.3.6.1.4.1.40989.10.16.1.2.7
    type: OctetString
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.7
  - name: vSFPA1State
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.1
    enum_values:
      0: "off"
      1: "on"
  - name: vSFPA1WorkMode
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.2
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.2
    enum_values:
      1: normal
      3: loopback
  - name: vSFPA1TxPowerControl
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.3
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.3
    enum_values:
      0: "off"
      1: "on"
      2: auto
  - name: vSFPA1TxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.4
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.4
  - name: vSFPA1RxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.5
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.5
  - name: vSFPA1ModeWave
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.6
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.6
  - name: vSFPA1ModeTransmissionDistance
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.7
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.7
  - name: vSFPA1ModeTransmissionRate
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.8
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.8
  - name: vSFPA1ModeTemperature
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.9
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.9
  - name: vSFPA1TxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.10
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.10
    enum_values:
      0: alarm
      1: normal
  - name: vSFPA1RxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.11
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.11
    enum_values:
      0: alarm
      1: normal
  - name: vSFPA1ModeTemperatureAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.12
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.12
    enum_values:
      0: alarm
      1: normal
  - name: vSFPA1RxPowerThreshold
    oid: 1.3.6.1.4.1.40989.10.16.1.2.11.13
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.13
  - name: vSFPA2State
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.1
    enum_values:
      0: "off"
      1: "on"
  - name: vSFPA2WorkMode
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.2
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.2
    enum_values:
      1: normal
      3: loopback
  - name: vSFPA2TxPowerControl
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.3
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.3
    enum_values:
      0: "off"
      1: "on"
      2: auto
  - name: vSFPA2TxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.4
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.4
  - name: vSFPA2RxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.5
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.5
  - name: vSFPA2ModeWave
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.6
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.6
  - name: vSFPA2ModeTransmissionDistance
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.7
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.7
  - name: vSFPA2ModeTransmissionRate
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.8
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.8
  - name: vSFPA2ModeTemperature
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.9
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.9
  - name: vSFPA2TxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.10
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.10
    enum_values:
      0: alarm
      1: normal
  - name: vSFPA2RxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.11
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.11
    enum_values:
      0: alarm
      1: normal
  - name: vSFPA2ModeTemperatureAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.12
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.12
    enum_values:
      0: alarm
      1: normal
  - name: vSFPA2RxPowerThreshold
    oid: 1.3.6.1.4.1.40989.10.16.1.2.12.13
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.13
  - name: vSFPB1State
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.1
    enum_values:
      0: "off"
      1: "on"
  - name: vSFPB1WorkMode
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.2
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.2
    enum_values:
      1: normal
      3: loopback
  - name: vSFPB1TxPowerControl
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.3
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.3
    enum_values:
      0: "off"
      1: "on"
      2: auto
  - name: vSFPB1TxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.4
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.4
  - name: vSFPB1RxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.5
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.5
  - name: vSFPB1ModeWave
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.6
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.6
  - name: vSFPB1ModeTransmissionDistance
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.7
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.7
  - name: vSFPB1ModeTransmissionRate
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.8
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.8
  - name: vSFPB1ModeTemperature
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.9
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.9
  - name: vSFPB1TxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.10
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.10
    enum_values:
      0: alarm
      1: normal
  - name: vSFPB1RxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.11
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.11
    enum_values:
      0: alarm
      1: normal
  - name: vSFPB1ModeTemperatureAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.12
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.12
    enum_values:
      0: alarm
      1: normal
  - name: vSFPB1RxPowerThreshold
    oid: 1.3.6.1.4.1.40989.10.16.1.2.13.13
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.13
  - name: vSFPB2State
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.1
    enum_values:
      0: "off"
      1: "on"
  - name: vSFPB2WorkMode
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.2
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.2
    enum_values:
      1: normal
      3: loopback
  - name: vSFPB2TxPowerControl
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.3
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.3
    enum_values:
      0: "off"
      1: "on"
      2: auto
  - name: vSFPB2TxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.4
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.4
  - name: vSFPB2RxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.5
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.5
  - name: vSFPB2ModeWave
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.6
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.6
  - name: vSFPB2ModeTransmissionDistance
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.7
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.7
  - name: vSFPB2ModeTransmissionRate
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.8
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.8
  - name: vSFPB2ModeTemperature
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.9
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.9
  - name: vSFPB2TxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.10
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.10
    enum_values:
      0: alarm
      1: normal
  - name: vSFPB2RxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.11
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.11
    enum_values:
      0: alarm
      1: normal
  - name: vSFPB2ModeTemperatureAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.12
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.12
    enum_values:
      0: alarm
      1: normal
  - name: vSFPB2RxPowerThreshold
    oid: 1.3.6.1.4.1.40989.10.16.1.2.14.13
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.13
  - name: vSFPC1State
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.1
    enum_values:
      0: "off"
      1: "on"
  - name: vSFPC1WorkMode
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.2
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.2
    enum_values:
      1: normal
      3: loopback
  - name: vSFPC1TxPowerControl
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.3
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.3
    enum_values:
      0: "off"
      1: "on"
      2: auto
  - name: vSFPC1TxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.4
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.4
  - name: vSFPC1RxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.5
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.5
  - name: vSFPC1ModeWave
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.6
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.6
  - name: vSFPC1ModeTransmissionDistance
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.7
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.7
  - name: vSFPC1ModeTransmissionRate
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.8
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.8
  - name: vSFPC1ModeTemperature
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.9
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.9
  - name: vSFPC1TxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.10
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.10
    enum_values:
      0: alarm
      1: normal
  - name: vSFPC1RxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.11
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.11
    enum_values:
      0: alarm
      1: normal
  - name: vSFPC1ModeTemperatureAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.12
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.12
    enum_values:
      0: alarm
      1: normal
  - name: vSFPC1RxPowerThreshold
    oid: 1.3.6.1.4.1.40989.10.16.1.2.15.13
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.13
  - name: vSFPC2State
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.1
    enum_values:
      0: "off"
      1: "on"
  - name: vSFPC2WorkMode
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.2
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.2
    enum_values:
      1: normal
      3: loopback
  - name: vSFPC2TxPowerControl
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.3
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.3
    enum_values:
      0: "off"
      1: "on"
      2: auto
  - name: vSFPC2TxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.4
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.4
  - name: vSFPC2RxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.5
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.5
  - name: vSFPC2ModeWave
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.6
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.6
  - name: vSFPC2ModeTransmissionDistance
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.7
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.7
  - name: vSFPC2ModeTransmissionRate
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.8
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.8
  - name: vSFPC2ModeTemperature
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.9
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.9
  - name: vSFPC2TxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.10
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.10
    enum_values:
      0: alarm
      1: normal
  - name: vSFPC2RxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.11
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.11
    enum_values:
      0: alarm
      1: normal
  - name: vSFPC2ModeTemperatureAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.12
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.12
    enum_values:
      0: alarm
      1: normal
  - name: vSFPC2RxPowerThreshold
    oid: 1.3.6.1.4.1.40989.10.16.1.2.16.13
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.13
  - name: vSFPD1State
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.1
    enum_values:
      0: "off"
      1: "on"
  - name: vSFPD1WorkMode
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.2
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.2
    enum_values:
      1: normal
      3: loopback
  - name: vSFPD1TxPowerControl
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.3
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.3
    enum_values:
      0: "off"
      1: "on"
      2: auto
  - name: vSFPD1TxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.4
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.4
  - name: vSFPD1RxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.5
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.5
  - name: vSFPD1ModeWave
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.6
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.6
  - name: vSFPD1ModeTransmissionDistance
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.7
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.7
  - name: vSFPD1ModeTransmissionRate
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.8
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.8
  - name: vSFPD1ModeTemperature
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.9
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.9
  - name: vSFPD1TxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.10
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.10
    enum_values:
      0: alarm
      1: normal
  - name: vSFPD1RxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.11
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.11
    enum_values:
      0: alarm
      1: normal
  - name: vSFPD1ModeTemperatureAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.12
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.12
    enum_values:
      0: alarm
      1: normal
  - name: vSFPD1RxPowerThreshold
    oid: 1.3.6.1.4.1.40989.10.16.1.2.17.13
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.13
  - name: vSFPD2State
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.1
    enum_values:
      0: "off"
      1: "on"
  - name: vSFPD2WorkMode
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.2
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.2
    enum_values:
      1: normal
      3: loopback
  - name: vSFPD2TxPowerControl
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.3
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.3
    enum_values:
      0: "off"
      1: "on"
      2: auto
  - name: vSFPD2TxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.4
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.4
  - name: vSFPD2RxPower
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.5
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.5
  - name: vSFPD2ModeWave
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.6
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.6
  - name: vSFPD2ModeTransmissionDistance
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.7
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.7
  - name: vSFPD2ModeTransmissionRate
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.8
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.8
  - name: vSFPD2ModeTemperature
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.9
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.9
  - name: vSFPD2TxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.10
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.10
    enum_values:
      0: alarm
      1: normal
  - name: vSFPD2RxPowerAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.11
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.11
    enum_values:
      0: alarm
      1: normal
  - name: vSFPD2ModeTemperatureAlarm
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.12
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.12
    enum_values:
      0: alarm
      1: normal
  - name: vSFPD2RxPowerThreshold
    oid: 1.3.6.1.4.1.40989.10.16.1.2.18.13
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.13
version: 1
SuperQ commented 1 year ago

This does seem like there may be an actual walk issue with SNMPv1 here. But it does seem like this is a device bug we may need to workaround in the upstream gosnmp library.

dswarbrick commented 1 year ago

Have you tried reducing max_repetitions to a lower value? (default 25)

SuperQ commented 1 year ago

I wonder if we should change the exporter default to 10 to match net-snmp.

jsfrerot commented 1 year ago

Tried max_repetitions: 10 or 1 and didn't help.

dswarbrick commented 1 year ago

@jsfrerot Can you try replacing 1.3.6.1.4.1.40989 with 1.3.6.1.4.1.40989.10 in your generator.yml, re-generate your config, and try again?

jsfrerot commented 1 year ago

same result. tried with max_repetitions: 10 or 1 again.

dswarbrick commented 1 year ago

smilint spews out a ton of warnings for that MIB (or you can check it online at http://www.muonics.com/Tools/smicheck.php).

It's difficult to debug flaky snmp engines without access to the device, but you could also try experimenting a bit with appending a .0 or perhaps .1 suffix to the OID that you're asking snmp_exporter to walk.

(cf. http://www.net-snmp.org/wiki/index.php/FAQ:Applications_09)

RichiH commented 1 year ago

Could you tcpdump to get PCAP of both working & non-working?

NB: Be very careful in where and how you share the resulting files, and use a temporary community string, not your production one!

jsfrerot commented 1 year ago

I have included both tcpdumps in the original post and I think I understand you want it to be in a file. Is there any particular tcpdump flags you want to have ?

jsfrerot commented 1 year ago

@RichiH Here are the pcap files. snmpwalk.pcap.gz is the tcpdump from a working snmpwalk (snmpwalk -Cc -c public -v1 10.2.20.11 1.3.6.1.4.1.40989.10) snmp_exporter.pcap.gz is the tcpdump from the snmp_exporter using this url: http://yul-blackbox-001:9116/snmp?target=10.2.20.11&module=fmt with the following parameters: version: 1 max_repetitions: 10

Let me know if you need anything else. snmpwalk.pcap.gz snmp_exporter.pcap.gz

dswarbrick commented 1 year ago

The key difference in the snmp_exporter capture is that it is trying to do a GET on 1.3.6.1.4.1.40989.10, whereas snmpwalk is doing GETNEXT.

The GET fails because there is no instance at that exact OID. All of the objects in OAP-C1-OEO.mib are scalars (non-table), and to do a GET, the instance subidentifier (.0) must be included - as mentioned in the net-snmp FAQ entry that I previously posted.

As a last resort, list the objects that you want individually in your generator.yml, e.g.:

modules:
  fmt:
    version: 1
    walk:
    - vCardState
    - vDeviceType
    - ...

=> generate =>

# WARNING: This file was auto-generated using snmp_exporter generator, manual changes will be lost.
fmt:
  get:
  - 1.3.6.1.4.1.40989.10.16.1.2.1.0
  - 1.3.6.1.4.1.40989.10.16.1.2.2.0
  metrics:
  - name: vCardState
    oid: 1.3.6.1.4.1.40989.10.16.1.2.1
    type: gauge
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.1
    enum_values:
      0: "off"
      1: "on"
  - name: vDeviceType
    oid: 1.3.6.1.4.1.40989.10.16.1.2.2
    type: OctetString
    help: Description. - 1.3.6.1.4.1.40989.10.16.1.2.2
  version: 1

Note how it produces a list of OIDs to get, with .0 subidentifier suffixes, compared to the original walk

fmt:
  walk:
  - 1.3.6.1.4.1.40989.10
dswarbrick commented 1 year ago

@jsfrerot Out of curiosity, can you try an snmpwalk of 1.3.6.1.4.1.40989 without the -Cc option? I suspect it will fail.

jsfrerot commented 1 year ago

@dswarbrick you're right, snmpwalk doesn't work without the -Cc option:

[root@yul-blackbox-001 etc]# snmpwalk -c public -v1 10.2.20.11 1.3.6.1.4.1.40989.10
iso.3.6.1.2.1.1.1.0 = STRING: "GLCY SNMP"
Error: OID not increasing: iso.3.6.1.4.1.40989.10
 >= iso.3.6.1.2.1.1.1.0
dswarbrick commented 1 year ago

It's nearly 10 years since I wrote my last MIB, but I noticed that the first subidentifier after the "MG-SOFT Corporation" private enterprise number is 1.3.6.1.4.1.40989.10. I'm a bit out of practice, but I'm pretty sure that is what is preventing the walk from 1.3.6.1.4.1.40989 succeeding. You need to start walking further down the tree where there are contiguous OIDs.

From what I can tell, the product is not actually made by MG-SOFT, which appears to just be a software house that specialises in SNMP MIB creation / browsing tools. The actual hardware is made by FS.COM, and they simply haven't filled in their company information or private enterprise number (assuming they have one).

Reading the SNMP section in their FMT quickstart guide really makes me wonder if they know what they are doing. They have different MIBs depending on which slot a module is plugged into. This really seems like they don't understand SNMP indexes. They even have spelling mistakes in the object names in the OAP-C1-OEO MIB, e.g. vSoftwareVerion, vHardwareVerion

@jsfrerot Can you try snmpwalk -c public -v1 -On 10.2.20.11 1.3.6.1.4.1.40989.10.16.1.2 and see if you get the full list of objects as you do when using the -Cc option? If so, you should be able to use that object ("oeo") as the starting point for a walk in your generator.yml. You might even be able to start a little higher up the tree, at 1.3.6.1.4.1.40989.10.16 ("oap").

Failing that, you'll need a more verbose generator.yml which will walk the walk-able parts of the MIB, and get the remaining scalar objects.

modules:
  fmt:
    version: 1
    walk:
    - vCardState
    - vDeviceType
    - vDeviceDescription
    - vSoftwareVerion
    - vHardwareVerion
    - vSerialNumber
    - vFactoryDate
    - vSFPA1
    - vSFPA2
    - vSFPB1
    - vSFPB2
    - vSFPC1
    - vSFPC2
    - vSFPD1
    - vSFPD2

You might also want to implement some metric relabelling config in Prometheus to fix the misspelled metric names.

PS: This might make it a little clearer to see the MIB represented hierarchically.

jsfrerot commented 1 year ago

@RichiH here is the output as requested

[jsfrerot@jsfrerot-lnx ~]$ snmpwalk -c public -v1 -On 10.2.20.11 1.3.6.1.4.1.40989.10.16.1.2
.1.3.6.1.2.1.1.1.0 = STRING: "GLCY SNMP"
Error: OID not increasing: .1.3.6.1.4.1.40989.10.16.1.2
 >= .1.3.6.1.2.1.1.1.0

so it doesn't work. I've been able to get data by using the following in the generator.yml

  fmt:
    version: 1
    max_repetitions: 10
    walk:
      - vCardState 
      - vDeviceType 
      - vDeviceDescription 
      - vSoftwareVerion 
      - vHardwareVerion 
      - vSerialNumber 
      - vFactoryDate 
      - vSFPA1State 
      - vSFPA1WorkMode 
      - vSFPA1TxPowerControl 
      - vSFPA1TxPower 
      - vSFPA1RxPower 
      - vSFPA1ModeWave 
      - vSFPA1ModeTransmissionDistance 
      - vSFPA1ModeTransmissionRate 
      - vSFPA1ModeTemperature 
      - vSFPA1TxPowerAlarm 
      - vSFPA1RxPowerAlarm 
      - vSFPA1ModeTemperatureAlarm 
      - vSFPA2State 
      - vSFPA2WorkMode 
      - vSFPA2TxPowerControl 
      - vSFPA2TxPower 
      - vSFPA2RxPower 
      - vSFPA2ModeWave 
      - vSFPA2ModeTransmissionDistance 
      - vSFPA2ModeTransmissionRate 
      - vSFPA2ModeTemperature 
      - vSFPA2TxPowerAlarm 
      - vSFPA2RxPowerAlarm 
      - vSFPA2ModeTemperatureAlarm 
      - vSFPB1State 
      - vSFPB1WorkMode 
      - vSFPB1TxPowerControl 
      - vSFPB1TxPower 
      - vSFPB1RxPower 
      - vSFPB1ModeWave 
      - vSFPB1ModeTransmissionDistance 
      - vSFPB1ModeTransmissionRate 
      - vSFPB1ModeTemperature 
      - vSFPB1TxPowerAlarm 
      - vSFPB1RxPowerAlarm 
      - vSFPB1ModeTemperatureAlarm 
      - vSFPB2State 
      - vSFPB2WorkMode 
      - vSFPB2TxPowerControl 
      - vSFPB2TxPower 
      - vSFPB2RxPower 
      - vSFPB2ModeWave 
      - vSFPB2ModeTransmissionDistance 
      - vSFPB2ModeTransmissionRate 
      - vSFPB2ModeTemperature 
      - vSFPB2TxPowerAlarm 
      - vSFPB2RxPowerAlarm 
      - vSFPB2ModeTemperatureAlarm 
      - vSFPC1State 
      - vSFPC1WorkMode 
      - vSFPC1TxPowerControl 
      - vSFPC1TxPower 
      - vSFPC1RxPower 
      - vSFPC1ModeWave 
      - vSFPC1ModeTransmissionDistance 
      - vSFPC1ModeTransmissionRate 
      - vSFPC1ModeTemperature 
      - vSFPC1TxPowerAlarm 
      - vSFPC1RxPowerAlarm 
      - vSFPC1ModeTemperatureAlarm 
      - vSFPC2State 
      - vSFPC2WorkMode 
      - vSFPC2TxPowerControl 
      - vSFPC2TxPower 
      - vSFPC2RxPower 
      - vSFPC2ModeWave 
      - vSFPC2ModeTransmissionDistance 
      - vSFPC2ModeTransmissionRate 
      - vSFPC2ModeTemperature 
      - vSFPC2TxPowerAlarm 
      - vSFPC2RxPowerAlarm 
      - vSFPC2ModeTemperatureAlarm 
      - vSFPD1State 
      - vSFPD1WorkMode 
      - vSFPD1TxPowerControl 
      - vSFPD1TxPower 
      - vSFPD1RxPower 
      - vSFPD1ModeWave 
      - vSFPD1ModeTransmissionDistance 
      - vSFPD1ModeTransmissionRate 
      - vSFPD1ModeTemperature 
      - vSFPD1TxPowerAlarm 
      - vSFPD1RxPowerAlarm 
      - vSFPD1ModeTemperatureAlarm 
      - vSFPD2State 
      - vSFPD2WorkMode 
      - vSFPD2TxPowerControl 
      - vSFPD2TxPower 
      - vSFPD2RxPower 
      - vSFPD2ModeWave 
      - vSFPD2ModeTransmissionDistance 
      - vSFPD2ModeTransmissionRate 
      - vSFPD2ModeTemperature 
      - vSFPD2TxPowerAlarm 
      - vSFPD2RxPowerAlarm 
      - vSFPD2ModeTemperatureAlarm 

and here is what I get:

# HELP snmp_scrape_duration_seconds Total SNMP time scrape took (walk and processing).
# TYPE snmp_scrape_duration_seconds gauge
snmp_scrape_duration_seconds 4.396628261
# HELP snmp_scrape_packets_retried Packets retried for get, bulkget, and walk.
# TYPE snmp_scrape_packets_retried gauge
snmp_scrape_packets_retried 0
# HELP snmp_scrape_packets_sent Packets sent for get, bulkget, and walk; including retries.
# TYPE snmp_scrape_packets_sent gauge
snmp_scrape_packets_sent 103
# HELP snmp_scrape_pdus_returned PDUs returned from get, bulkget, and walk.
# TYPE snmp_scrape_pdus_returned gauge
snmp_scrape_pdus_returned 37
# HELP snmp_scrape_walk_duration_seconds Time SNMP walk/bulkwalk took.
# TYPE snmp_scrape_walk_duration_seconds gauge
snmp_scrape_walk_duration_seconds 4.394715743
# HELP vCardState Description. - 1.3.6.1.4.1.40989.10.16.1.2.1
# TYPE vCardState gauge
vCardState 1
# HELP vDeviceDescription Description. - 1.3.6.1.4.1.40989.10.16.1.2.3
# TYPE vDeviceDescription gauge
vDeviceDescription{vDeviceDescription="0x4F454F"} 1
# HELP vDeviceType Description. - 1.3.6.1.4.1.40989.10.16.1.2.2
# TYPE vDeviceType gauge
vDeviceType{vDeviceType="0x4F454F"} 1
# HELP vFactoryDate Description. - 1.3.6.1.4.1.40989.10.16.1.2.7
# TYPE vFactoryDate gauge
vFactoryDate{vFactoryDate="0x323032312F30392F3130"} 1
# HELP vHardwareVerion Description. - 1.3.6.1.4.1.40989.10.16.1.2.5
# TYPE vHardwareVerion gauge
vHardwareVerion{vHardwareVerion="0x4856312E30312E3031"} 1
# HELP vSFPA1ModeTemperature Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.9
# TYPE vSFPA1ModeTemperature gauge
vSFPA1ModeTemperature 3820
# HELP vSFPA1ModeTemperatureAlarm Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.12
# TYPE vSFPA1ModeTemperatureAlarm gauge
vSFPA1ModeTemperatureAlarm 1
# HELP vSFPA1ModeTransmissionDistance Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.7
# TYPE vSFPA1ModeTransmissionDistance gauge
vSFPA1ModeTransmissionDistance 40000
# HELP vSFPA1ModeTransmissionRate Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.8
# TYPE vSFPA1ModeTransmissionRate gauge
vSFPA1ModeTransmissionRate 10300
# HELP vSFPA1ModeWave Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.6
# TYPE vSFPA1ModeWave gauge
vSFPA1ModeWave 131000
# HELP vSFPA1RxPower Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.5
# TYPE vSFPA1RxPower gauge
vSFPA1RxPower -814
# HELP vSFPA1RxPowerAlarm Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.11
# TYPE vSFPA1RxPowerAlarm gauge
vSFPA1RxPowerAlarm 1
# HELP vSFPA1State Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.1
# TYPE vSFPA1State gauge
vSFPA1State 1
# HELP vSFPA1TxPower Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.4
# TYPE vSFPA1TxPower gauge
vSFPA1TxPower 126
# HELP vSFPA1TxPowerAlarm Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.10
# TYPE vSFPA1TxPowerAlarm gauge
vSFPA1TxPowerAlarm 1
# HELP vSFPA1TxPowerControl Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.3
# TYPE vSFPA1TxPowerControl gauge
vSFPA1TxPowerControl 1
# HELP vSFPA1WorkMode Description. - 1.3.6.1.4.1.40989.10.16.1.2.11.2
# TYPE vSFPA1WorkMode gauge
vSFPA1WorkMode 1
# HELP vSFPA2ModeTemperature Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.9
# TYPE vSFPA2ModeTemperature gauge
vSFPA2ModeTemperature 3636
# HELP vSFPA2ModeTemperatureAlarm Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.12
# TYPE vSFPA2ModeTemperatureAlarm gauge
vSFPA2ModeTemperatureAlarm 1
# HELP vSFPA2ModeTransmissionDistance Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.7
# TYPE vSFPA2ModeTransmissionDistance gauge
vSFPA2ModeTransmissionDistance 300
# HELP vSFPA2ModeTransmissionRate Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.8
# TYPE vSFPA2ModeTransmissionRate gauge
vSFPA2ModeTransmissionRate 10300
# HELP vSFPA2ModeWave Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.6
# TYPE vSFPA2ModeWave gauge
vSFPA2ModeWave 85000
# HELP vSFPA2RxPower Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.5
# TYPE vSFPA2RxPower gauge
vSFPA2RxPower -235
# HELP vSFPA2RxPowerAlarm Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.11
# TYPE vSFPA2RxPowerAlarm gauge
vSFPA2RxPowerAlarm 1
# HELP vSFPA2State Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.1
# TYPE vSFPA2State gauge
vSFPA2State 1
# HELP vSFPA2TxPower Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.4
# TYPE vSFPA2TxPower gauge
vSFPA2TxPower -231
# HELP vSFPA2TxPowerAlarm Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.10
# TYPE vSFPA2TxPowerAlarm gauge
vSFPA2TxPowerAlarm 1
# HELP vSFPA2TxPowerControl Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.3
# TYPE vSFPA2TxPowerControl gauge
vSFPA2TxPowerControl 1
# HELP vSFPA2WorkMode Description. - 1.3.6.1.4.1.40989.10.16.1.2.12.2
# TYPE vSFPA2WorkMode gauge
vSFPA2WorkMode 1
# HELP vSFPB1State Description. - 1.3.6.1.4.1.40989.10.16.1.2.13.1
# TYPE vSFPB1State gauge
vSFPB1State 0
# HELP vSFPB2State Description. - 1.3.6.1.4.1.40989.10.16.1.2.14.1
# TYPE vSFPB2State gauge
vSFPB2State 0
# HELP vSFPC1State Description. - 1.3.6.1.4.1.40989.10.16.1.2.15.1
# TYPE vSFPC1State gauge
vSFPC1State 0
# HELP vSFPC2State Description. - 1.3.6.1.4.1.40989.10.16.1.2.16.1
# TYPE vSFPC2State gauge
vSFPC2State 0
# HELP vSFPD1State Description. - 1.3.6.1.4.1.40989.10.16.1.2.17.1
# TYPE vSFPD1State gauge
vSFPD1State 0
# HELP vSFPD2State Description. - 1.3.6.1.4.1.40989.10.16.1.2.18.1
# TYPE vSFPD2State gauge
vSFPD2State 0
# HELP vSerialNumber Description. - 1.3.6.1.4.1.40989.10.16.1.2.6
# TYPE vSerialNumber gauge
vSerialNumber{vSerialNumber="0x31313231303830303034363531313137"} 1
# HELP vSoftwareVerion Description. - 1.3.6.1.4.1.40989.10.16.1.2.4
# TYPE vSoftwareVerion gauge
vSoftwareVerion{vSoftwareVerion="0x5356332E30312E3138"} 1

I've tried to use what you proposed:

  fmt:
    version: 1
    walk:
    - vCardState
    - vDeviceType
    - vDeviceDescription
    - vSoftwareVerion
    - vHardwareVerion
    - vSerialNumber
    - vFactoryDate
    - vSFPA1
    - vSFPA2
    - vSFPB1
    - vSFPB2
    - vSFPC1
    - vSFPC2
    - vSFPD1
    - vSFPD2

but the result is more limited:

# HELP snmp_scrape_duration_seconds Total SNMP time scrape took (walk and processing).
# TYPE snmp_scrape_duration_seconds gauge
snmp_scrape_duration_seconds 0.4953063
# HELP snmp_scrape_packets_retried Packets retried for get, bulkget, and walk.
# TYPE snmp_scrape_packets_retried gauge
snmp_scrape_packets_retried 0
# HELP snmp_scrape_packets_sent Packets sent for get, bulkget, and walk; including retries.
# TYPE snmp_scrape_packets_sent gauge
snmp_scrape_packets_sent 23
# HELP snmp_scrape_pdus_returned PDUs returned from get, bulkget, and walk.
# TYPE snmp_scrape_pdus_returned gauge
snmp_scrape_pdus_returned 7
# HELP snmp_scrape_walk_duration_seconds Time SNMP walk/bulkwalk took.
# TYPE snmp_scrape_walk_duration_seconds gauge
snmp_scrape_walk_duration_seconds 0.494859778
# HELP vCardState Description. - 1.3.6.1.4.1.40989.10.16.1.2.1
# TYPE vCardState gauge
vCardState 1
# HELP vDeviceDescription Description. - 1.3.6.1.4.1.40989.10.16.1.2.3
# TYPE vDeviceDescription gauge
vDeviceDescription{vDeviceDescription="0x4F454F"} 1
# HELP vDeviceType Description. - 1.3.6.1.4.1.40989.10.16.1.2.2
# TYPE vDeviceType gauge
vDeviceType{vDeviceType="0x4F454F"} 1
# HELP vFactoryDate Description. - 1.3.6.1.4.1.40989.10.16.1.2.7
# TYPE vFactoryDate gauge
vFactoryDate{vFactoryDate="0x323032312F30392F3130"} 1
# HELP vHardwareVerion Description. - 1.3.6.1.4.1.40989.10.16.1.2.5
# TYPE vHardwareVerion gauge
vHardwareVerion{vHardwareVerion="0x4856312E30312E3031"} 1
# HELP vSerialNumber Description. - 1.3.6.1.4.1.40989.10.16.1.2.6
# TYPE vSerialNumber gauge
vSerialNumber{vSerialNumber="0x31313231303830303034363531313137"} 1
# HELP vSoftwareVerion Description. - 1.3.6.1.4.1.40989.10.16.1.2.4
# TYPE vSoftwareVerion gauge
vSoftwareVerion{vSoftwareVerion="0x5356332E30312E3138"} 1
dswarbrick commented 1 year ago

I've tried to use what you proposed:

  fmt:
    version: 1
    walk:
    - vCardState
    - vDeviceType
    - vDeviceDescription
    - vSoftwareVerion
    - vHardwareVerion
    - vSerialNumber
    - vFactoryDate
    - vSFPA1
    - vSFPA2
    - vSFPB1
    - vSFPB2
    - vSFPC1
    - vSFPC2
    - vSFPD1
    - vSFPD2

but the result is more limited:

Ooof. That is disappointing. I was pretty sure that it would successfully walk the vSFPxx branches since their leaf OIDs are contiguous. The SNMP agent in that hardware must be really brain dead if you have to explicitly GET each object. Be thankful that the MIB is not that large.

dswarbrick commented 1 year ago

It looks like you're going to have to override the types for several of the metrics:

vDeviceDescription{vDeviceDescription="0x4F454F"} 1
vDeviceType{vDeviceType="0x4F454F"} 1
vFactoryDate{vFactoryDate="0x323032312F30392F3130"} 1
vHardwareVerion{vHardwareVerion="0x4856312E30312E3031"} 1
vSerialNumber{vSerialNumber="0x31313231303830303034363531313137"} 1
vSoftwareVerion{vSoftwareVerion="0x5356332E30312E3138"} 1

This is yet another sign of a poorly-written MIB, that isn't specifying the correct encoding type.

It looks like the label values are being handled as OctetString, e.g. the vFactoryDate when hex-decoded is 2021/09/10, vDeviceDescription is OEO, vSoftwareVerion is SV3.01.18 etc. You'll probably want to override the type to DisplayString.

jsfrerot commented 1 year ago

@dswarbrick very helpful insights. For the overrides, I added this in the generator.yml and works as intended.

 fmt:
    version: 1
    max_repetitions: 10
    walk:
      - vCardState
...
    overrides:
      vDeviceDescription:
        type: DisplayString
      vDeviceType:
        type: DisplayString
      vFactoryDate:
        type: DisplayString
      vHardwareVerion:
        type: DisplayString
      vSerialNumber:
        type: DisplayString
      vSoftwareVerion:
        type: DisplayString

I was going to propose a PR to support this device. Not sure if it's a good idea anymore, but still I would like to be able to get the data from them. What do you think?

dswarbrick commented 1 year ago

@jsfrerot My personal opinion is that snmp_exporter actually shouldn't ship with any vendor-specific config, since the amount of SNMP-capable hardware out there is virtually limitless, and as you've found out first hand, some of it can be pretty dubious.

I recognise that for a lot of people, SNMP MIBs are akin to black magic, and they're often hard to source, especially for EOL hardware. The MIBs themselves often fall under some copyright or incompatible license, which is why they are not packaged by Debian for example, as they would violate Debian's packaging policies. Indeed, the Debian prometheus-snmp-exporter package (which I co-maintain) strips out the bundled snmp.yml.

From my own experience operating snmp_exporter in a large service provider environment, with Juniper, Mellanox, Dell, and Supermicro hardware, there rarely is a case of "one size fits all", and we used a completely from-scratch config that only walked the OIDs that we were specifically interested in. The out-of-the-box config may have worked, but would have resulted in huge amounts of unwanted metrics on some of the large Juniper switch virtual chassis (as well as having a negative and quite noticeable impact on the CPUs of some network hardware).

SuperQ commented 1 year ago

@dswarbrick I setup https://github.com/prometheus-community/snmp as a place to start a project to create a whole bunch of snmp_exporter generator.yml examples for various devices. But I never got around to deciding exactly how to layout such a project. For example, policies like "should we inline vendor MIBs with dubious copyright issues".