Missing mikrotik snmp OID's

Hi,

There seems to be some OID’s missing on the CCR-1072 (running 6.36.4), for example:

> /system health print oid
             active-fan: .1.3.6.1.4.1.14988.1.1.3.9.0
                voltage: .1.3.6.1.4.1.14988.1.1.3.8.0
            temperature: .1.3.6.1.4.1.14988.1.1.3.10.0
  processor-temperature: .1.3.6.1.4.1.14988.1.1.3.11.0
                current: .1.3.6.1.4.1.14988.1.1.3.13.0
      power-consumption: .1.3.6.1.4.1.14988.1.1.3.12.0
             psu1-state: .1.3.6.1.4.1.14988.1.1.3.15.0
             psu2-state: .1.3.6.1.4.1.14988.1.1.3.16.0

When querying the psu1-state OID:

# snmpwalk -v2c -c xxxxxxxxxxx -On 10.10.216.243 1.3.6.1.4.1.14988.1.1.3.15
.1.3.6.1.4.1.14988.1.1.3.15 = No Such Object available on this agent at this OID

When walking the 1.3.6.1.4.1.14988.1.1.3 OID, a couple of them are missing:

# snmpwalk -v1 -c xxxxxxxxxxx -On 10.10.216.243 1.3.6.1.4.1.14988.1.1.3
.1.3.6.1.4.1.14988.1.1.3.9.0 = STRING: n/a
.1.3.6.1.4.1.14988.1.1.3.11.0 = INTEGER: 50.0
.1.3.6.1.4.1.14988.1.1.3.12.0 = INTEGER: 55.6
.1.3.6.1.4.1.14988.1.1.3.14.0 = INTEGER: 1200
.1.3.6.1.4.1.14988.1.1.3.17.0 = INTEGER: 7387
.1.3.6.1.4.1.14988.1.1.3.18.0 = INTEGER: 7267

voltage, tempreture, current and psuX-state are all missing.

Does anyone know if this is a bug?

The mentioned OIDs are still missing.
So we need to monitor the psu state with snmp in case of one is failing.

Please fix this.

When I run snnmpwalk on 750r3 I can see unknown .1.3.6.1.4.1.14988.1.1.3.14.0 OID, which is 880 in my case, and neither description no even looks-like value can be found. At the same time

/system health print oid

gives me plenty of OIDs and most of them not even appears to be supported on this model:

             active-fan: .1.3.6.1.4.1.14988.1.1.3.9.0
                voltage: .1.3.6.1.4.1.14988.1.1.3.8.0
            temperature: .1.3.6.1.4.1.14988.1.1.3.10.0
  processor-temperature: .1.3.6.1.4.1.14988.1.1.3.11.0
                current: .1.3.6.1.4.1.14988.1.1.3.13.0
              fan-speed: .1.3.6.1.4.1.14988.1.1.3.17.0
             fan-speed2: .1.3.6.1.4.1.14988.1.1.3.18.0
      power-consumption: .1.3.6.1.4.1.14988.1.1.3.12.0
             psu1-state: .1.3.6.1.4.1.14988.1.1.3.15.0
             psu2-state: .1.3.6.1.4.1.1

This device has no fan, nor CPU temperature sensors so most of these lines are unreal. Here is what snmpwalk returns:

SNMPv2-SMI::enterprises.14988.1.1.3.8.0 = INTEGER: 245
SNMPv2-SMI::enterprises.14988.1.1.3.9.0 = STRING: "n/a"
SNMPv2-SMI::enterprises.14988.1.1.3.10.0 = INTEGER: 370
SNMPv2-SMI::enterprises.14988.1.1.3.14.0 = INTEGER: 880

looks like “active-fan” return “N/A” (can’t say better, there is no fan installed, so why return anything?).

Please take these vars in a real way: return these that described and don’t return these that are not for the device.

Come on MT - this sucks:
CCR1016-12S-1S+:
/system health print oid
active-fan: .1.3.6.1.4.1.14988.1.1.3.9.0
voltage: .1.3.6.1.4.1.14988.1.1.3.8.0
current: .1.3.6.1.4.1.14988.1.1.3.13.0
temperature: .1.3.6.1.4.1.14988.1.1.3.10.0
cpu-temperature: .1.3.6.1.4.1.14988.1.1.3.11.0
power-consumption: .1.3.6.1.4.1.14988.1.1.3.12.0
psu1-state: .1.3.6.1.4.1.14988.1.1.3.15.0
psu2-state: .1.3.6.1.4.1.14988.1.1.3.16.0


CCR1072-1G-8S+:
/system health print oid
cpu-temperature: .1.3.6.1.4.1.14988.1.1.3.11.0
power-consumption: .1.3.6.1.4.1.14988.1.1.3.12.0

We want to monitor the psu1-state and psu2-state for failures, but It’s missing

They might hope these PSUs are immortal, so what’s the care to monitor them? )

I opened #2019032822004818 a few months ago, many SNMP hardware OIDs are missing for the CCR1072, compared to what Winbox shows :

  • Board temperature
  • Board temparature 2
  • Fan speed 3
  • Fan speed 4
  • PSU1 status (should be OID .15 (*))
  • PSU2 status (should be OID .16 ())
    (
    ) as seen on other models such as the CRS317-1G-16S+.

We are then clearly at risk with our CCR1072-1G-8S+, not being able to monitor all their hardware components, which is a rather tricky situation for core devices.

Other topics complaining about this : http://forum.mikrotik.com/t/snmp-or-lack-of-it/126684/1 / http://forum.mikrotik.com/t/mikrotik-ccr1072-mib-file/105522/1 / http://forum.mikrotik.com/t/v6-45beta-testing-is-released/128305/254

Hope dev team will solve this !

You could monitor it via API.

So to say I found out it is better to use api calls to get stats and not snmp.

I would not say it is better, I agree there should be more SNMP OIDs available, but when it is the only thing that works it could be better.

I remember there is an obscure feature that allows to call a script when a certain range of SNMP OIDs is polled and return the value that script returns.
However, I never understood how that should work.

Never heard if ROS supports that. If so, noone care for missing OIDs!

So to say, API calls are much expensive in terms of resources but they are guaranteed to work despite ROS versions and platform.

Actually we do :slight_smile:
Deploying custom scripts on routers themselves to populate one branch of the SNMP tree with OIDs which should be there at their right place by default is IMO a rather “crappy” workaround…
In addition, CCR1072 seems to be the only device with missing hardware OIDs. At least we did not encounter other ones yet. So it does not really make sense to manage / maintain an exception.
Having properly defined OIDs is the expected behavior on devices supporting SNMP, so IMO this is the way to go on CCR1072 :slight_smile:
We would then be able to fully monitor it, in a proper and reliable way, as with any other Mikrotik router.

I agree that this particular case should be (and should be easily) solved.
However, there are a lot of other things that cannot be monitored using SNMP in MikroTik.
Maybe some of these things are really so seldomly used that it would be warranted to make custom scripts for them.
I’m not sure where to find the hint that this is possible. I once read it in a release note I think, but maybe I just misunderstood what it was meant to say.

Almost sure this would not take more than 0.5 or 1 day for one developer to implement this.

At least for now we manage to grab everything we need (system and hardware health, interfaces’ traffic and errors, updates…).
But there may exist some specific cases I agree.

Browse the Mikrotik MIB and you’ll find it :slight_smile:
Corresponding entry is mtxrScriptRun (.1.3.6.1.4.1.14988.1.1.18), which provides a table of custom scripts, with ability to run them and get their output back.

Ahh yes, that rings a bell. I invite you to make a working proof of concept :slight_smile:
(I wasn’t able to get it to work back when this was added)

For example it would be nice to monitor some of the behaviour of BGP (peers connected or not, number of prefixes per peer, etc) and it can be done via API but not via SNMP.

So to say if it can return multuline string I can collect all I need and output ot at a single snmp fetch. Will try!

Please see http://forum.mikrotik.com/t/v6-47beta-testing-is-released/135326/18 which solves this missing OIDs issue !