prometheus / snmp_exporter

SNMP Exporter for Prometheus
Apache License 2.0
1.71k stars 631 forks source link

Incorrect mappings for new MIB #338

Closed sc250024 closed 5 years ago

sc250024 commented 6 years ago

Greetings

I'm trying to add Teltonika MIBs to this repository for future use. First I am using the generator, and testing it out within our infrastructure. I'm receiving some weird errors when I try to manually check using the snmp_exporter interface:

Output of http://localhost:9116/snmp?target=10.161.XX.YY&module=teltonika

``` An error has occurred during metrics gathering: 48 error(s) occurred: * collected metric hotSpotUsersIp label: gauge: has help "RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.1.11" but should have "RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.4.11" * collected metric hotSpotUsersPass label: gauge: has help "RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.1.8" but should have "RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.3.8" * collected metric hotSpotUsersPass label: gauge: has help "RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.2.8" but should have "RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.3.8" * collected metric hotSpotUploadBandWidth label: gauge: has help "RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.1.6" but should have "RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.4.6" * collected metric hotSpotEndTime label: gauge: has help "RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.1.16" but should have "RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.4.16" * collected metric hotSpotSsid label: gauge: has help "Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.4.2" but should have "Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.2.2" * collected metric hotSpotUsersStartTime label: gauge: has help "RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.4.12" but should have "RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.2.12" * collected metric hotSpotEndTime label: gauge: has help "RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.2.16" but should have "RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.4.16" * collected metric hotSpotId label: gauge: has help "Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.1.1" but should have "Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.3.1" * collected metric hotSpotUploadBandWidth label: gauge: has help "RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.2.6" but should have "RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.4.6" * collected metric hotSpotDownloadBandWidth label: gauge: has help "RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.2.5" but should have "RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.4.5" * collected metric hotSpotUsersActive label: gauge: has help "RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.2.9" but should have "RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.3.9" * collected metric hotSpotUsersUseTime label: gauge: has help "RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.4.13" but should have "RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.1.13" * collected metric hotSpotId label: gauge: has help "Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.2.1" but should have "Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.3.1" * collected metric hotSpotSsid label: gauge: has help "Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.3.2" but should have "Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.2.2" * collected metric hotSpotEnableState label: gauge: has help "RUT2xx hot spot enable state - 1.3.6.1.4.1.48690.3.3.3" but should have "RUT2xx hot spot enable state - 1.3.6.1.4.1.48690.3.4.3" * collected metric hotSpotEnableState label: gauge: has help "RUT2xx hot spot enable state - 1.3.6.1.4.1.48690.3.2.3" but should have "RUT2xx hot spot enable state - 1.3.6.1.4.1.48690.3.4.3" * collected metric hotSpotUsersMac label: gauge: has help "RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.3.10" but should have "RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.2.10" * collected metric hotSpotUsersStartTime label: gauge: has help "RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.3.12" but should have "RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.2.12" * collected metric hotSpotSsid label: gauge: has help "Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.1.2" but should have "Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.2.2" * collected metric hotSpotEnableState label: gauge: has help "RUT2xx hot spot enable status - 1.3.6.1.4.1.48690.3.1.3" but should have "RUT2xx hot spot enable state - 1.3.6.1.4.1.48690.3.4.3" * collected metric hotSpotUsers label: gauge: has help "RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.3.7" but should have "RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.4.7" * collected metric hotSpotUsersIp label: gauge: has help "RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.3.11" but should have "RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.4.11" * collected metric hotSpotUploadBandWidth label: gauge: has help "RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.3.6" but should have "RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.4.6" * collected metric hotSpotEndTime label: gauge: has help "RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.3.16" but should have "RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.4.16" * collected metric hotSpotUsersActive label: gauge: has help "RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.1.9" but should have "RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.3.9" * collected metric hotSpotUsersUseTime label: gauge: has help "RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.2.13" but should have "RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.1.13" * collected metric hotSpotUsersUpload label: gauge: has help "RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.2.15" but should have "RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.3.15" * collected metric hotSpotUsersStartTime label: gauge: has help "RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.1.12" but should have "RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.2.12" * collected metric hotSpotUsersUpload label: gauge: has help "RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.4.15" but should have "RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.3.15" * collected metric hotSpotUsers label: gauge: has help "RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.2.7" but should have "RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.4.7" * collected metric hotSpotIP label: gauge: has help "RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.2.4" but should have "RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.3.4" * collected metric hotSpotUsersDownload label: gauge: has help "RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.4.14" but should have "RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.1.14" * collected metric hotSpotUsersMac label: gauge: has help "RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.4.10" but should have "RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.2.10" * collected metric hotSpotUsers label: gauge: has help "RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.1.7" but should have "RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.4.7" * collected metric hotSpotUsersUpload label: gauge: has help "RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.1.15" but should have "RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.3.15" * collected metric hotSpotUsersDownload label: gauge: has help "RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.3.14" but should have "RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.1.14" * collected metric hotSpotUsersActive label: gauge: has help "RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.4.9" but should have "RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.3.9" * collected metric hotSpotUsersPass label: gauge: has help "RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.4.8" but should have "RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.3.8" * collected metric hotSpotDownloadBandWidth label: gauge: has help "RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.3.5" but should have "RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.4.5" * collected metric hotSpotUsersDownload label: gauge: has help "RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.2.14" but should have "RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.1.14" * collected metric hotSpotId label: gauge: has help "Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.4.1" but should have "Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.3.1" * collected metric hotSpotIP label: gauge: has help "RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.1.4" but should have "RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.3.4" * collected metric hotSpotIP label: gauge: has help "RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.4.4" but should have "RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.3.4" * collected metric hotSpotUsersIp label: gauge: has help "RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.2.11" but should have "RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.4.11" * collected metric hotSpotUsersMac label: gauge: has help "RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.1.10" but should have "RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.2.10" * collected metric hotSpotDownloadBandWidth label: gauge: has help "RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.1.5" but should have "RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.4.5" * collected metric hotSpotUsersUseTime label: gauge: has help "RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.3.13" but should have "RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.1.13" ```

It seems as if the OID mappings are off. Here's the MIB provided by the manufacturer, which has a table of OIDs: https://wiki.teltonika.lt/index.php?title=SNMP

And a link to the MIB itself: https://wiki.teltonika.lt/images/9/98/TLT-MIB_RUT2XX.txt

I'm a little confused as to the error message in general. What does that mean?

Host operating system: output of uname -a

Kubernetes, running Debian 9 nodes: Linux ip-10-62-220-179 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64 GNU/Linux

snmp_exporter version: output of snmp_exporter -version

snmp_exporter, version 0.13.0 (branch: HEAD, revision: 84cab6d72f4c70e6239e1efa4f7ea9cba2b7acc8)
  build user:       root@b26f44b735fe
  build date:       20180912-11:01:50
  go version:       go1.10.3

What device/snmpwalk OID are you using?

The base OID is 1.3.6.1.4.1.48690. The Teltonika wiki link above provides an exhaustive list of all the potential OIDs.

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

See above

What did you do that produced an error?

  1. Downloaded MIBs using make mibs in snmp_exporter/generator:

  2. Added the following to the generator.yml file in snmp_exporter/generator:

# Teltonika
#
# https://wiki.teltonika.lt/images/9/98/TLT-MIB_RUT2XX.txt
#
  teltonika:
    walk:
      - sysUpTime
      - interfaces
      - ifXTable
      - 1.3.6.1.4.1.48690 # Teltonika
  1. Took the resulting snmp.yaml files, and baked it into a custom Docker image. Here's the teltonika part of the snmp.yaml file:
snmp-teltonika.yaml

```yaml teltonika: walk: - 1.3.6.1.2.1.2 - 1.3.6.1.2.1.31.1.1 - 1.3.6.1.4.1.48690 get: - 1.3.6.1.2.1.1.3.0 metrics: - name: sysUpTime oid: 1.3.6.1.2.1.1.3 type: gauge help: The time (in hundredths of a second) since the network management portion of the system was last re-initialized. - 1.3.6.1.2.1.1.3 - name: ifNumber oid: 1.3.6.1.2.1.2.1 type: gauge help: The number of network interfaces (regardless of their current state) present on this system. - 1.3.6.1.2.1.2.1 - name: ifIndex oid: 1.3.6.1.2.1.2.2.1.1 type: gauge help: A unique value for each interface - 1.3.6.1.2.1.2.2.1.1 indexes: - labelname: ifIndex type: gauge - name: ifDescr oid: 1.3.6.1.2.1.2.2.1.2 type: DisplayString help: A textual string containing information about the interface - 1.3.6.1.2.1.2.2.1.2 indexes: - labelname: ifIndex type: gauge - name: ifType oid: 1.3.6.1.2.1.2.2.1.3 type: gauge help: The type of interface, distinguished according to the physical/link protocol(s) immediately `below' the network layer in the protocol stack. - 1.3.6.1.2.1.2.2.1.3 indexes: - labelname: ifIndex type: gauge - name: ifMtu oid: 1.3.6.1.2.1.2.2.1.4 type: gauge help: The size of the largest datagram which can be sent/received on the interface, specified in octets - 1.3.6.1.2.1.2.2.1.4 indexes: - labelname: ifIndex type: gauge - name: ifSpeed oid: 1.3.6.1.2.1.2.2.1.5 type: gauge help: An estimate of the interface's current bandwidth in bits per second - 1.3.6.1.2.1.2.2.1.5 indexes: - labelname: ifIndex type: gauge - name: ifPhysAddress oid: 1.3.6.1.2.1.2.2.1.6 type: PhysAddress48 help: The interface's address at the protocol layer immediately `below' the network layer in the protocol stack - 1.3.6.1.2.1.2.2.1.6 indexes: - labelname: ifIndex type: gauge - name: ifAdminStatus oid: 1.3.6.1.2.1.2.2.1.7 type: gauge help: The desired state of the interface - 1.3.6.1.2.1.2.2.1.7 indexes: - labelname: ifIndex type: gauge - name: ifOperStatus oid: 1.3.6.1.2.1.2.2.1.8 type: gauge help: The current operational state of the interface - 1.3.6.1.2.1.2.2.1.8 indexes: - labelname: ifIndex type: gauge - name: ifLastChange oid: 1.3.6.1.2.1.2.2.1.9 type: gauge help: The value of sysUpTime at the time the interface entered its current operational state - 1.3.6.1.2.1.2.2.1.9 indexes: - labelname: ifIndex type: gauge - name: ifInOctets oid: 1.3.6.1.2.1.2.2.1.10 type: counter help: The total number of octets received on the interface, including framing characters. - 1.3.6.1.2.1.2.2.1.10 indexes: - labelname: ifIndex type: gauge - name: ifInUcastPkts oid: 1.3.6.1.2.1.2.2.1.11 type: counter help: The number of subnetwork-unicast packets delivered to a higher-layer protocol. - 1.3.6.1.2.1.2.2.1.11 indexes: - labelname: ifIndex type: gauge - name: ifInNUcastPkts oid: 1.3.6.1.2.1.2.2.1.12 type: counter help: The number of non-unicast (i.e., subnetwork- broadcast or subnetwork-multicast) packets delivered to a higher-layer protocol. - 1.3.6.1.2.1.2.2.1.12 indexes: - labelname: ifIndex type: gauge - name: ifInDiscards oid: 1.3.6.1.2.1.2.2.1.13 type: counter help: The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol - 1.3.6.1.2.1.2.2.1.13 indexes: - labelname: ifIndex type: gauge - name: ifInErrors oid: 1.3.6.1.2.1.2.2.1.14 type: counter help: The number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. - 1.3.6.1.2.1.2.2.1.14 indexes: - labelname: ifIndex type: gauge - name: ifInUnknownProtos oid: 1.3.6.1.2.1.2.2.1.15 type: counter help: The number of packets received via the interface which were discarded because of an unknown or unsupported protocol. - 1.3.6.1.2.1.2.2.1.15 indexes: - labelname: ifIndex type: gauge - name: ifOutOctets oid: 1.3.6.1.2.1.2.2.1.16 type: counter help: The total number of octets transmitted out of the interface, including framing characters. - 1.3.6.1.2.1.2.2.1.16 indexes: - labelname: ifIndex type: gauge - name: ifOutUcastPkts oid: 1.3.6.1.2.1.2.2.1.17 type: counter help: The total number of packets that higher-level protocols requested be transmitted to a subnetwork-unicast address, including those that were discarded or not sent. - 1.3.6.1.2.1.2.2.1.17 indexes: - labelname: ifIndex type: gauge - name: ifOutNUcastPkts oid: 1.3.6.1.2.1.2.2.1.18 type: counter help: The total number of packets that higher-level protocols requested be transmitted to a non- unicast (i.e., a subnetwork-broadcast or subnetwork-multicast) address, including those that were discarded or not sent. - 1.3.6.1.2.1.2.2.1.18 indexes: - labelname: ifIndex type: gauge - name: ifOutDiscards oid: 1.3.6.1.2.1.2.2.1.19 type: counter help: The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being transmitted - 1.3.6.1.2.1.2.2.1.19 indexes: - labelname: ifIndex type: gauge - name: ifOutErrors oid: 1.3.6.1.2.1.2.2.1.20 type: counter help: The number of outbound packets that could not be transmitted because of errors. - 1.3.6.1.2.1.2.2.1.20 indexes: - labelname: ifIndex type: gauge - name: ifOutQLen oid: 1.3.6.1.2.1.2.2.1.21 type: gauge help: The length of the output packet queue (in packets). - 1.3.6.1.2.1.2.2.1.21 indexes: - labelname: ifIndex type: gauge - name: ifName oid: 1.3.6.1.2.1.31.1.1.1.1 type: DisplayString help: The textual name of the interface - 1.3.6.1.2.1.31.1.1.1.1 indexes: - labelname: ifIndex type: gauge - name: ifInMulticastPkts oid: 1.3.6.1.2.1.31.1.1.1.2 type: counter help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, which were addressed to a multicast address at this sub-layer - 1.3.6.1.2.1.31.1.1.1.2 indexes: - labelname: ifIndex type: gauge - name: ifInBroadcastPkts oid: 1.3.6.1.2.1.31.1.1.1.3 type: counter help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, which were addressed to a broadcast address at this sub-layer - 1.3.6.1.2.1.31.1.1.1.3 indexes: - labelname: ifIndex type: gauge - name: ifOutMulticastPkts oid: 1.3.6.1.2.1.31.1.1.1.4 type: counter help: The total number of packets that higher-level protocols requested be transmitted, and which were addressed to a multicast address at this sub-layer, including those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.4 indexes: - labelname: ifIndex type: gauge - name: ifOutBroadcastPkts oid: 1.3.6.1.2.1.31.1.1.1.5 type: counter help: The total number of packets that higher-level protocols requested be transmitted, and which were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.5 indexes: - labelname: ifIndex type: gauge - name: ifHCInOctets oid: 1.3.6.1.2.1.31.1.1.1.6 type: counter help: The total number of octets received on the interface, including framing characters - 1.3.6.1.2.1.31.1.1.1.6 indexes: - labelname: ifIndex type: gauge - name: ifHCInUcastPkts oid: 1.3.6.1.2.1.31.1.1.1.7 type: counter help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, which were not addressed to a multicast or broadcast address at this sub-layer - 1.3.6.1.2.1.31.1.1.1.7 indexes: - labelname: ifIndex type: gauge - name: ifHCInMulticastPkts oid: 1.3.6.1.2.1.31.1.1.1.8 type: counter help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, which were addressed to a multicast address at this sub-layer - 1.3.6.1.2.1.31.1.1.1.8 indexes: - labelname: ifIndex type: gauge - name: ifHCInBroadcastPkts oid: 1.3.6.1.2.1.31.1.1.1.9 type: counter help: The number of packets, delivered by this sub-layer to a higher (sub-)layer, which were addressed to a broadcast address at this sub-layer - 1.3.6.1.2.1.31.1.1.1.9 indexes: - labelname: ifIndex type: gauge - name: ifHCOutOctets oid: 1.3.6.1.2.1.31.1.1.1.10 type: counter help: The total number of octets transmitted out of the interface, including framing characters - 1.3.6.1.2.1.31.1.1.1.10 indexes: - labelname: ifIndex type: gauge - name: ifHCOutUcastPkts oid: 1.3.6.1.2.1.31.1.1.1.11 type: counter help: The total number of packets that higher-level protocols requested be transmitted, and which were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.11 indexes: - labelname: ifIndex type: gauge - name: ifHCOutMulticastPkts oid: 1.3.6.1.2.1.31.1.1.1.12 type: counter help: The total number of packets that higher-level protocols requested be transmitted, and which were addressed to a multicast address at this sub-layer, including those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.12 indexes: - labelname: ifIndex type: gauge - name: ifHCOutBroadcastPkts oid: 1.3.6.1.2.1.31.1.1.1.13 type: counter help: The total number of packets that higher-level protocols requested be transmitted, and which were addressed to a broadcast address at this sub-layer, including those that were discarded or not sent - 1.3.6.1.2.1.31.1.1.1.13 indexes: - labelname: ifIndex type: gauge - name: ifLinkUpDownTrapEnable oid: 1.3.6.1.2.1.31.1.1.1.14 type: gauge help: Indicates whether linkUp/linkDown traps should be generated for this interface - 1.3.6.1.2.1.31.1.1.1.14 indexes: - labelname: ifIndex type: gauge - name: ifHighSpeed oid: 1.3.6.1.2.1.31.1.1.1.15 type: gauge help: An estimate of the interface's current bandwidth in units of 1,000,000 bits per second - 1.3.6.1.2.1.31.1.1.1.15 indexes: - labelname: ifIndex type: gauge - name: ifPromiscuousMode oid: 1.3.6.1.2.1.31.1.1.1.16 type: gauge help: This object has a value of false(2) if this interface only accepts packets/frames that are addressed to this station - 1.3.6.1.2.1.31.1.1.1.16 indexes: - labelname: ifIndex type: gauge - name: ifConnectorPresent oid: 1.3.6.1.2.1.31.1.1.1.17 type: gauge help: This object has the value 'true(1)' if the interface sublayer has a physical connector and the value 'false(2)' otherwise. - 1.3.6.1.2.1.31.1.1.1.17 indexes: - labelname: ifIndex type: gauge - name: ifAlias oid: 1.3.6.1.2.1.31.1.1.1.18 type: DisplayString help: This object is an 'alias' name for the interface as specified by a network manager, and provides a non-volatile 'handle' for the interface - 1.3.6.1.2.1.31.1.1.1.18 indexes: - labelname: ifIndex type: gauge - name: ifCounterDiscontinuityTime oid: 1.3.6.1.2.1.31.1.1.1.19 type: gauge help: The value of sysUpTime on the most recent occasion at which any one or more of this interface's counters suffered a discontinuity - 1.3.6.1.2.1.31.1.1.1.19 indexes: - labelname: ifIndex type: gauge - name: ModemImei oid: 1.3.6.1.4.1.48690.1.1 type: DisplayString help: RUT2xx modem IMEI - 1.3.6.1.4.1.48690.1.1 - name: ModemModel oid: 1.3.6.1.4.1.48690.1.2 type: DisplayString help: RUT2xx modem model - 1.3.6.1.4.1.48690.1.2 - name: ModemManufacturer oid: 1.3.6.1.4.1.48690.1.3 type: DisplayString help: RUT2xx modem manufacturer - 1.3.6.1.4.1.48690.1.3 - name: ModemRevision oid: 1.3.6.1.4.1.48690.1.4 type: DisplayString help: RUT2xx modem revision - 1.3.6.1.4.1.48690.1.4 - name: ModemSerial oid: 1.3.6.1.4.1.48690.1.5 type: DisplayString help: RUT2xx modem serial number - 1.3.6.1.4.1.48690.1.5 - name: Imsi oid: 1.3.6.1.4.1.48690.1.6 type: DisplayString help: RUT2xx IMSI - 1.3.6.1.4.1.48690.1.6 - name: RouterName oid: 1.3.6.1.4.1.48690.1.7 type: DisplayString help: RUT2xx router name - 1.3.6.1.4.1.48690.1.7 - name: ProductCode oid: 1.3.6.1.4.1.48690.1.8 type: DisplayString help: RUT2xx router product code - 1.3.6.1.4.1.48690.1.8 - name: BatchNumber oid: 1.3.6.1.4.1.48690.1.9 type: DisplayString help: RUT2xx router batch number - 1.3.6.1.4.1.48690.1.9 - name: HardwareRevision oid: 1.3.6.1.4.1.48690.1.10 type: DisplayString help: RUT2xx router hardware revision - 1.3.6.1.4.1.48690.1.10 - name: SimState oid: 1.3.6.1.4.1.48690.2.1 type: DisplayString help: RUT2xx SIM status - 1.3.6.1.4.1.48690.2.1 - name: PinState oid: 1.3.6.1.4.1.48690.2.2 type: DisplayString help: RUT2xx PIN status - 1.3.6.1.4.1.48690.2.2 - name: NetState oid: 1.3.6.1.4.1.48690.2.3 type: DisplayString help: RUT2xx mobile network registration status - 1.3.6.1.4.1.48690.2.3 - name: Signal oid: 1.3.6.1.4.1.48690.2.4 type: DisplayString help: RUT2xx signal level - 1.3.6.1.4.1.48690.2.4 - name: Operator oid: 1.3.6.1.4.1.48690.2.5 type: DisplayString help: RUT2xx operator currently in use - 1.3.6.1.4.1.48690.2.5 - name: OperatorNumber oid: 1.3.6.1.4.1.48690.2.6 type: DisplayString help: RUT2xx operator number (MCC+MNC) - 1.3.6.1.4.1.48690.2.6 - name: ConnectionState oid: 1.3.6.1.4.1.48690.2.7 type: DisplayString help: RUT2xx data session connection state - 1.3.6.1.4.1.48690.2.7 - name: ConnectionType oid: 1.3.6.1.4.1.48690.2.8 type: DisplayString help: RUT2xx data session connection type - 1.3.6.1.4.1.48690.2.8 - name: Temperature oid: 1.3.6.1.4.1.48690.2.9 type: DisplayString help: RUT2xx module temperature - 1.3.6.1.4.1.48690.2.9 - name: ReceivedToday oid: 1.3.6.1.4.1.48690.2.10 type: DisplayString help: RUT2xx 3G connection received bytes today - 1.3.6.1.4.1.48690.2.10 - name: SentToday oid: 1.3.6.1.4.1.48690.2.11 type: DisplayString help: RUT2xx 3G connection sent bytes today - 1.3.6.1.4.1.48690.2.11 - name: ReceivedYesterday oid: 1.3.6.1.4.1.48690.2.12 type: DisplayString help: RUT2xx 3G connection received bytes yesterday - 1.3.6.1.4.1.48690.2.12 - name: SentYesterday oid: 1.3.6.1.4.1.48690.2.13 type: DisplayString help: RUT2xx 3G connection sent bytes yesterday - 1.3.6.1.4.1.48690.2.13 - name: FirmwareVersion oid: 1.3.6.1.4.1.48690.2.14 type: DisplayString help: RUT2xx firmware version - 1.3.6.1.4.1.48690.2.14 - name: SimSlot oid: 1.3.6.1.4.1.48690.2.15 type: DisplayString help: RUT2xx sim slot in use - 1.3.6.1.4.1.48690.2.15 - name: RouterUptime oid: 1.3.6.1.4.1.48690.2.16 type: DisplayString help: RUT2xx router uptime - 1.3.6.1.4.1.48690.2.16 - name: ConnectionUptime oid: 1.3.6.1.4.1.48690.2.17 type: DisplayString help: RUT2xx mobile connection uptime - 1.3.6.1.4.1.48690.2.17 - name: MobileIP oid: 1.3.6.1.4.1.48690.2.18 type: DisplayString help: RUT2xx mobile connection IP - 1.3.6.1.4.1.48690.2.18 - name: Sent oid: 1.3.6.1.4.1.48690.2.19 type: DisplayString help: RUT2xx bytes sent - 1.3.6.1.4.1.48690.2.19 - name: Received oid: 1.3.6.1.4.1.48690.2.20 type: DisplayString help: RUT2xx bytes received - 1.3.6.1.4.1.48690.2.20 - name: CellID oid: 1.3.6.1.4.1.48690.2.21 type: DisplayString help: RUT2xx cellid parameter - 1.3.6.1.4.1.48690.2.21 - name: SINR oid: 1.3.6.1.4.1.48690.2.22 type: DisplayString help: RUT2xx LTE sinr level - 1.3.6.1.4.1.48690.2.22 - name: RSRP oid: 1.3.6.1.4.1.48690.2.23 type: DisplayString help: RUT2xx LTE rsrp level - 1.3.6.1.4.1.48690.2.23 - name: RSRQ oid: 1.3.6.1.4.1.48690.2.24 type: DisplayString help: RUT2xx LTE rsrq level - 1.3.6.1.4.1.48690.2.24 - name: DigitalInput oid: 1.3.6.1.4.1.48690.5.1 type: DisplayString help: RUT2xx digital input - 1.3.6.1.4.1.48690.5.1 - name: hotSpotId oid: 1.3.6.1.4.1.48690.3.1.1 type: DisplayString help: Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.1.1 - name: hotSpotSsid oid: 1.3.6.1.4.1.48690.3.1.2 type: DisplayString help: Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.1.2 - name: hotSpotEnableState oid: 1.3.6.1.4.1.48690.3.1.3 type: DisplayString help: RUT2xx hot spot enable status - 1.3.6.1.4.1.48690.3.1.3 - name: hotSpotIP oid: 1.3.6.1.4.1.48690.3.1.4 type: DisplayString help: RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.1.4 - name: hotSpotDownloadBandWidth oid: 1.3.6.1.4.1.48690.3.1.5 type: DisplayString help: RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.1.5 - name: hotSpotUploadBandWidth oid: 1.3.6.1.4.1.48690.3.1.6 type: DisplayString help: RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.1.6 - name: hotSpotUsers oid: 1.3.6.1.4.1.48690.3.1.7 type: DisplayString help: RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.1.7 - name: hotSpotUsersPass oid: 1.3.6.1.4.1.48690.3.1.8 type: DisplayString help: RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.1.8 - name: hotSpotUsersActive oid: 1.3.6.1.4.1.48690.3.1.9 type: DisplayString help: RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.1.9 - name: hotSpotUsersMac oid: 1.3.6.1.4.1.48690.3.1.10 type: DisplayString help: RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.1.10 - name: hotSpotUsersIp oid: 1.3.6.1.4.1.48690.3.1.11 type: DisplayString help: RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.1.11 - name: hotSpotUsersStartTime oid: 1.3.6.1.4.1.48690.3.1.12 type: DisplayString help: RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.1.12 - name: hotSpotUsersUseTime oid: 1.3.6.1.4.1.48690.3.1.13 type: DisplayString help: RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.1.13 - name: hotSpotUsersDownload oid: 1.3.6.1.4.1.48690.3.1.14 type: DisplayString help: RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.1.14 - name: hotSpotUsersUpload oid: 1.3.6.1.4.1.48690.3.1.15 type: DisplayString help: RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.1.15 - name: hotSpotEndTime oid: 1.3.6.1.4.1.48690.3.1.16 type: DisplayString help: RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.1.16 - name: hotSpotId oid: 1.3.6.1.4.1.48690.3.2.1 type: DisplayString help: Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.2.1 - name: hotSpotSsid oid: 1.3.6.1.4.1.48690.3.2.2 type: DisplayString help: Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.2.2 - name: hotSpotEnableState oid: 1.3.6.1.4.1.48690.3.2.3 type: DisplayString help: RUT2xx hot spot enable state - 1.3.6.1.4.1.48690.3.2.3 - name: hotSpotIP oid: 1.3.6.1.4.1.48690.3.2.4 type: DisplayString help: RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.2.4 - name: hotSpotDownloadBandWidth oid: 1.3.6.1.4.1.48690.3.2.5 type: DisplayString help: RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.2.5 - name: hotSpotUploadBandWidth oid: 1.3.6.1.4.1.48690.3.2.6 type: DisplayString help: RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.2.6 - name: hotSpotUsers oid: 1.3.6.1.4.1.48690.3.2.7 type: DisplayString help: RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.2.7 - name: hotSpotUsersPass oid: 1.3.6.1.4.1.48690.3.2.8 type: DisplayString help: RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.2.8 - name: hotSpotUsersActive oid: 1.3.6.1.4.1.48690.3.2.9 type: DisplayString help: RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.2.9 - name: hotSpotUsersMac oid: 1.3.6.1.4.1.48690.3.2.10 type: DisplayString help: RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.2.10 - name: hotSpotUsersIp oid: 1.3.6.1.4.1.48690.3.2.11 type: DisplayString help: RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.2.11 - name: hotSpotUsersStartTime oid: 1.3.6.1.4.1.48690.3.2.12 type: DisplayString help: RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.2.12 - name: hotSpotUsersUseTime oid: 1.3.6.1.4.1.48690.3.2.13 type: DisplayString help: RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.2.13 - name: hotSpotUsersDownload oid: 1.3.6.1.4.1.48690.3.2.14 type: DisplayString help: RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.2.14 - name: hotSpotUsersUpload oid: 1.3.6.1.4.1.48690.3.2.15 type: DisplayString help: RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.2.15 - name: hotSpotEndTime oid: 1.3.6.1.4.1.48690.3.2.16 type: DisplayString help: RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.2.16 - name: hotSpotId oid: 1.3.6.1.4.1.48690.3.3.1 type: DisplayString help: Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.3.1 - name: hotSpotSsid oid: 1.3.6.1.4.1.48690.3.3.2 type: DisplayString help: Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.3.2 - name: hotSpotEnableState oid: 1.3.6.1.4.1.48690.3.3.3 type: DisplayString help: RUT2xx hot spot enable state - 1.3.6.1.4.1.48690.3.3.3 - name: hotSpotIP oid: 1.3.6.1.4.1.48690.3.3.4 type: DisplayString help: RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.3.4 - name: hotSpotDownloadBandWidth oid: 1.3.6.1.4.1.48690.3.3.5 type: DisplayString help: RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.3.5 - name: hotSpotUploadBandWidth oid: 1.3.6.1.4.1.48690.3.3.6 type: DisplayString help: RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.3.6 - name: hotSpotUsers oid: 1.3.6.1.4.1.48690.3.3.7 type: DisplayString help: RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.3.7 - name: hotSpotUsersPass oid: 1.3.6.1.4.1.48690.3.3.8 type: DisplayString help: RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.3.8 - name: hotSpotUsersActive oid: 1.3.6.1.4.1.48690.3.3.9 type: DisplayString help: RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.3.9 - name: hotSpotUsersMac oid: 1.3.6.1.4.1.48690.3.3.10 type: DisplayString help: RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.3.10 - name: hotSpotUsersIp oid: 1.3.6.1.4.1.48690.3.3.11 type: DisplayString help: RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.3.11 - name: hotSpotUsersStartTime oid: 1.3.6.1.4.1.48690.3.3.12 type: DisplayString help: RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.3.12 - name: hotSpotUsersUseTime oid: 1.3.6.1.4.1.48690.3.3.13 type: DisplayString help: RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.3.13 - name: hotSpotUsersDownload oid: 1.3.6.1.4.1.48690.3.3.14 type: DisplayString help: RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.3.14 - name: hotSpotUsersUpload oid: 1.3.6.1.4.1.48690.3.3.15 type: DisplayString help: RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.3.15 - name: hotSpotEndTime oid: 1.3.6.1.4.1.48690.3.3.16 type: DisplayString help: RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.3.16 - name: hotSpotId oid: 1.3.6.1.4.1.48690.3.4.1 type: DisplayString help: Rut2xx hot spot id - 1.3.6.1.4.1.48690.3.4.1 - name: hotSpotSsid oid: 1.3.6.1.4.1.48690.3.4.2 type: DisplayString help: Rut2xx hot spot ssid - 1.3.6.1.4.1.48690.3.4.2 - name: hotSpotEnableState oid: 1.3.6.1.4.1.48690.3.4.3 type: DisplayString help: RUT2xx hot spot enable state - 1.3.6.1.4.1.48690.3.4.3 - name: hotSpotIP oid: 1.3.6.1.4.1.48690.3.4.4 type: DisplayString help: RUT2xx hot spot ip address - 1.3.6.1.4.1.48690.3.4.4 - name: hotSpotDownloadBandWidth oid: 1.3.6.1.4.1.48690.3.4.5 type: DisplayString help: RUT2xx hot spot download band width - 1.3.6.1.4.1.48690.3.4.5 - name: hotSpotUploadBandWidth oid: 1.3.6.1.4.1.48690.3.4.6 type: DisplayString help: RUT2xx hot spot upload band width - 1.3.6.1.4.1.48690.3.4.6 - name: hotSpotUsers oid: 1.3.6.1.4.1.48690.3.4.7 type: DisplayString help: RUT2xx hot spot existing users - 1.3.6.1.4.1.48690.3.4.7 - name: hotSpotUsersPass oid: 1.3.6.1.4.1.48690.3.4.8 type: DisplayString help: RUT2xx hot spot users passwords - 1.3.6.1.4.1.48690.3.4.8 - name: hotSpotUsersActive oid: 1.3.6.1.4.1.48690.3.4.9 type: DisplayString help: RUT2xx hot spot active users - 1.3.6.1.4.1.48690.3.4.9 - name: hotSpotUsersMac oid: 1.3.6.1.4.1.48690.3.4.10 type: DisplayString help: RUT2xx hot spot user mac - 1.3.6.1.4.1.48690.3.4.10 - name: hotSpotUsersIp oid: 1.3.6.1.4.1.48690.3.4.11 type: DisplayString help: RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.4.11 - name: hotSpotUsersStartTime oid: 1.3.6.1.4.1.48690.3.4.12 type: DisplayString help: RUT2xx hot spot user connection to hotspot time - 1.3.6.1.4.1.48690.3.4.12 - name: hotSpotUsersUseTime oid: 1.3.6.1.4.1.48690.3.4.13 type: DisplayString help: RUT2xx hot spot user active time - 1.3.6.1.4.1.48690.3.4.13 - name: hotSpotUsersDownload oid: 1.3.6.1.4.1.48690.3.4.14 type: DisplayString help: RUT2xx hot spot user downloaded data - 1.3.6.1.4.1.48690.3.4.14 - name: hotSpotUsersUpload oid: 1.3.6.1.4.1.48690.3.4.15 type: DisplayString help: RUT2xx hot spot user uploaded data - 1.3.6.1.4.1.48690.3.4.15 - name: hotSpotEndTime oid: 1.3.6.1.4.1.48690.3.4.16 type: DisplayString help: RUT2xx hot spot user last connection time - 1.3.6.1.4.1.48690.3.4.16 ```

  1. Deployed the snmp-exporter, and called the URL http://localhost:9116/snmp?target=10.161.XX.YY&module=teltonika with port forwarding to Kubernetes enabled.

What did you expect to see?

Prometheus formatted metrics in plain text

What did you see instead?

The error messages above.

brian-brazil commented 6 years ago

The issue here is the MIB, this should really be using a table rather than repeating the same thing 4 times. I'd suggest adjusting the MIB accordingly, with a dummy integer object for the index.

SuperQ commented 6 years ago

It looks like the teltonika MIB is a bit invalid, as it assigns the same metric name to multiple OIDs.

$ grep -A3  hotSpotUsersIp snmp.yml 
  - name: hotSpotUsersIp
    oid: 1.3.6.1.4.1.48690.3.1.11
    type: DisplayString
    help: RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.1.11
--
  - name: hotSpotUsersIp
    oid: 1.3.6.1.4.1.48690.3.2.11
    type: DisplayString
    help: RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.2.11
--
  - name: hotSpotUsersIp
    oid: 1.3.6.1.4.1.48690.3.3.11
    type: DisplayString
    help: RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.3.11
--
  - name: hotSpotUsersIp
    oid: 1.3.6.1.4.1.48690.3.4.11
    type: DisplayString
    help: RUT2xx hot spot user ip address - 1.3.6.1.4.1.48690.3.4.11
sc250024 commented 6 years ago

Thanks guys for the reply! I've emailed their support about it, will keep this updated. Once it's ready, I'll merge it in.

SuperQ commented 6 years ago

@sc250024 Maybe you can get them to support Prometheus/OpenMetrics directly. :grinning:

It's going to be a bit difficult to fix, since the devices are exposing the OIDs incorrectly for a normal table/entry walk to work (like it does with ifXTable and similar).

sc250024 commented 6 years ago

@SuperQ I ended up taking out the hotspot* values, and now I can successfully scrape the routers. However, I end up with another weirdness: the actual value of the metric is in the wrong place, and Prometheus reports only a 1 or 0 for the value.

Here's an example:

# HELP Signal Teltonika signal level - 1.3.6.1.4.1.48690.2.4.0
# TYPE Signal gauge
Signal{Signal="-51"} 1
# HELP SimSlot Teltonika sim slot in use - 1.3.6.1.4.1.48690.2.15.0
# TYPE SimSlot gauge
SimSlot{SimSlot="1"} 1
# HELP SimState Teltonika SIM status - 1.3.6.1.4.1.48690.2.1.0
# TYPE SimState gauge
SimState{SimState="inserted"} 1
# HELP Temperature Teltonika module temperature - 1.3.6.1.4.1.48690.2.9.0
# TYPE Temperature gauge
Temperature{Temperature="400"} 1

In the case of Signal{Signal="-51"} 1, the value I'm actually wanting is -51, but Prometheus reports back 1 instead.

Normally metrics are in the format:

# HELP snmp_scrape_walk_duration_seconds Time SNMP walk/bulkwalk took.
# TYPE snmp_scrape_walk_duration_seconds gauge
snmp_scrape_walk_duration_seconds 12.694951624

But these metrics are a bit screwy. The actual value that I'm actually interested in is inside the {} brackets. Is this because the MIB is incorrect, or is it something else?

SuperQ commented 6 years ago

@sc250024 Yea, the MIB and the "table" is invalid. You're going to have to write an snmp.yml for this by hand.

brian-brazil commented 6 years ago

The "table" is okay, it should be possible to write a MIB for this.