Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated Mikrotik neighbor indexes make them unique #986

Merged
merged 1 commit into from
Sep 3, 2023

Conversation

jvwag
Copy link
Contributor

@jvwag jvwag commented Sep 1, 2023

In response to PR #915, this change will update the keys of mtxrNeighborTable to unique label combinations. The current release will return http 500 replies on request with variations on following errors:

* collected metric "mtxrNeighborInterfaceID" { label:{name:"mtxrNeighborIpAddress" value:"0.0.0.0"} gauge:{value:1}} was collected before with the same name and label values

This PR will change the index from mtxrNeighborIpAddress to a combination of mtxrNeighborMacAddress and ifName.

The choice for mtxrNeighborIpAddress as unique index is not suitable for two reasons:

  • Mikrotik allows for entries in the neighbor list without an IP adress, or only an IPv6 address.
  • Same IP addresses can be assigned to neighbors, making them not unique.

The obvious solution would be to make the MAC address the unique key, but this is also not sufficient because a neighbour can be detected on multiple interfaces (which is useful information and should not be filtered out).

A combination of mac address and interface is unique enough and will benefit in having a more consistent set of data after device reboots.

Examples:

Change from IpAddress to ifName

-mtxrNeighborMacAddress{mtxrNeighborIpAddress="10.0.0.1",mtxrNeighborMacAddress="48:A9:82:00:00:01"} 1
-mtxrNeighborMacAddress{mtxrNeighborIpAddress="10.0.0.2",mtxrNeighborMacAddress="48:A9:82:00:00:02"} 1
+mtxrNeighborMacAddress{ifName="ether1",mtxrNeighborMacAddress="48:A9:82:00:00:01"} 1
+mtxrNeighborMacAddress{ifName="ether1",mtxrNeighborMacAddress="48:A9:82:00:00:02"} 1

Previously impossible:

-mtxrNeighborIpAddress{mtxrNeighborIpAddress="10.0.0.1",mtxrNeighborMacAddress="48:A9:82:00:00:01"} 1
-mtxrNeighborIpAddress{mtxrNeighborIpAddress="10.0.0.2",mtxrNeighborMacAddress="48:A9:82:00:00:02"} 1
+mtxrNeighborIpAddress{ifName="ether1",mtxrNeighborMacAddress="48:A9:82:00:00:01",mtxrNeighborIpAddress="0.0.0.0"} 1
+mtxrNeighborIpAddress{ifName="vlan14-test",mtxrNeighborMacAddress="48:A9:82:00:00:01",mtxrNeighborIpAddress="10.0.0.1"} 1
+mtxrNeighborIpAddress{ifName="vlan14-test",mtxrNeighborMacAddress="48:A9:82:00:00:02",mtxrNeighborIpAddress="10.0.0.2"} 1

Example Mikrotik Neighbor table in Winbox interface
image

@SuperQ @RichiH

Copy link
Member

@SuperQ SuperQ left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, thanks!

@SuperQ SuperQ merged commit 2514f7c into prometheus:main Sep 3, 2023
stephan-windischmann-sky pushed a commit to stephan-windischmann-sky/snmp_exporter that referenced this pull request Oct 27, 2023
Signed-off-by: Joffrey van Wageningen <[email protected]>
Signed-off-by: Stephan Windischmann <[email protected]>
SuperQ added a commit that referenced this pull request Nov 24, 2023
* [ENHANCEMENT] generator: Add support for subsequent address family #782
* [ENHANCEMENT] generator: Fix lookups to match OIDs closer to the index OID. #828
* [FEATURE] Add a scaling factor #1026
* [FEATURE] generator: Enable passing input file, output file, and mibs dir as flags #1028
* [FEATURE] Add an offset factor #1029
* [BUGFIX] Fix and optimize generator Docker image building #1045

snmp.yml changes:

* Override `bsnAPName` to DisplayString #660
* Import TP-Link EAP MIB  #833
* Updated Mikrotik neighbor indexes make them unique #986
* Update PowerNet MIB to v4.5.1 #1003
* Refactor HOST-RESOURCES-MIB #1027
* Update keepalived MIB files to latest version #1044

Signed-off-by: SuperQ <[email protected]>
@SuperQ SuperQ mentioned this pull request Nov 24, 2023
SuperQ added a commit that referenced this pull request Nov 26, 2023
* [ENHANCEMENT] generator: Add support for subsequent address family #782
* [ENHANCEMENT] generator: Fix lookups to match OIDs closer to the index OID. #828
* [FEATURE] Add a scaling factor #1026
* [FEATURE] generator: Enable passing input file, output file, and mibs dir as flags #1028
* [FEATURE] Add an offset factor #1029
* [BUGFIX] Fix and optimize generator Docker image building #1045

snmp.yml changes:

* Override `bsnAPName` to DisplayString #660
* Import TP-Link EAP MIB  #833
* Updated Mikrotik neighbor indexes make them unique #986
* Update PowerNet MIB to v4.5.1 #1003
* Refactor HOST-RESOURCES-MIB #1027
* Update keepalived MIB files to latest version #1044

Signed-off-by: SuperQ <[email protected]>
SuperQ added a commit that referenced this pull request Dec 6, 2023
* [ENHANCEMENT] generator: Add support for subsequent address family #782
* [ENHANCEMENT] generator: Fix lookups to match OIDs closer to the index OID. #828
* [FEATURE] Add a scaling factor #1026
* [FEATURE] generator: Enable passing input file, output file, and mibs dir as flags #1028
* [FEATURE] Add an offset factor #1029
* [BUGFIX] Fix and optimize generator Docker image building #1045

snmp.yml changes:

* Override `bsnAPName` to DisplayString #660
* Import TP-Link EAP MIB  #833
* Updated Mikrotik neighbor indexes make them unique #986
* Update PowerNet MIB to v4.5.1 #1003
* Refactor HOST-RESOURCES-MIB #1027
* Update keepalived MIB files to latest version #1044

Signed-off-by: SuperQ <[email protected]>
SuperQ added a commit that referenced this pull request Dec 10, 2023
* [ENHANCEMENT] generator: Add support for subsequent address family #782
* [ENHANCEMENT] generator: Fix lookups to match OIDs closer to the index OID. #828
* [FEATURE] Add a scaling factor #1026
* [FEATURE] generator: Enable passing input file, output file, and mibs dir as flags #1028
* [FEATURE] Add an offset factor #1029
* [BUGFIX] Fix and optimize generator Docker image building #1045

snmp.yml changes:

* Override `bsnAPName` to DisplayString #660
* Import TP-Link EAP MIB  #833
* Updated Mikrotik neighbor indexes make them unique #986
* Update PowerNet MIB to v4.5.1 #1003
* Refactor HOST-RESOURCES-MIB #1027
* Update keepalived MIB files to latest version #1044

Signed-off-by: SuperQ <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants