Ignore interface speed when operational state is 'down'

The Problem: Interface FastEthernet0/22 (op. state: down, admin state: down), MAC: 00:00:00:00:FA:KE, Speed: 10 MBit/s (expected: 1 GBit/s) [WARN]

Our Cisco Catalyst 2960 switchports report an interface speed of 10 MBit/s when they’re (administratively) down. I have mapped the statuses so that when both operational and administrative states are ‘down’, the check should be “OK”. This does work when the ports have already been down at the time of adding the switches to CMK, but if a device has been connected to it, the expected speed would be e.g. 1 GBit/s. If you then disable the port on the switch, the reported speed changes to 10M and CMK issues a warning for that. (Don’t ask me why the 2960 switches report 10M for admin disabled ports… :roll_eyes:)

I don’t know if there are use cases to warn for an unexpected speed on disabled ports – as for me, I’d be happy if the speed was generally ignored on ‘shutted’/disabled interfaces, because it cannot have an impact there, but this could also be made optional.

Hi Jay,
just set the rule for Network interfaces and switch ports with Operating speed to ignore speed. Then you won’t get any alert for that anymore.

By the way, check out: Network Monitoring with Checkmk: 3 rules to rule them all | Checkmk

Hi Martin,

thanks for your reply! Thing is, usually I do want the speed to be monitored (yes, we’ve once had a case where a gig port suddenly went to 100M for mysterious reasons…), just not when the port is in shutdown state. And I couldn’t find a way to put that into a rule so far…

Also, I’ve read the linked post a while ago already, it’s great, especially the ifDescr/ifAlias part :slight_smile:

As far as I know it is not possible directly to bind a condition on the admin state of a port.

But what you can do is something else.
Build a view that shows all ports that are admin down. This should be easy with the filter options.
The result view you use as a datasource to assign a service label to all ports from this view.
This service label will be use by a rule as condition that all ports with this service label should ignore speed.

The tool data2label from @r.sander is only for host labels but i think that it can help also to accomplish the service label task.

Service labels can only be set via rule or from the discovery_function inside a check plugin. You cannot set a service label directly via API.

1 Like

Ok - i was hopping that this also is possible over API as there are also rules existing for assigning service labels to services.
Then it will only be possible with 2.1 where you can edit rules then over the API.