Problem
After running an SNMP discovery, your device is mapping to an unexpected profile in the mib_profile
key of the device configuration.
Background
The SNMP discovery process will attempt to automatically map devices to an existing profile from the kentik/snmp-profiles repository using the following process:
- First, an attempt is made to match the value of the device's sysObjectID with either a literal or wildcard match for the values in the
systemobjectid
key for a profile. - In cases where a device's sysObjectID is one of the Net-SNMP agent OIDs, there is a best-effort attempt to further isolate the device profile through a regex match against the device's sysDescr value. You can see the current options in the
matches
key of the net-snmp.yml profile.
There are two distinct scenarios that can exist after this process:
- Device is matched to an expected profile and collects metrics without issue.
- Device is unexpectedly matched to the wrong profile and is collecting the wrong metrics or is missing metrics.
Solution
Kentik Default devices
For the second scenario, the most common situation is that your device maps to the following:
# Snippet from device config mib_profile: base.yml provider: kentik-default
Follow the steps in the SNMP discovery results in 'Kentik Default' entities troubleshooting guide to resolve this.
Net-SNMP devices
You may also see situations where the best-effort matching against the sysDescr
value for a device either doesn't work or isn't available due to a lack of uniquely identifying information available in the value.
In this case, you can manually override the matching from the discovery job using the bang (!) syntax: "!profile-name.yml"
, which allows you to force any profile you desire:
# Snippet from device config mib_profile: "!sonicwall-sma.yml" provider: kentik-firewall
As mentioned in the device configuration documentation, the value of the provider
key also needs to be set to ensure a proper UI experience in New Relic.
Make sure you add any new MIBs for your config file into the global mibs_enabled
key. This tells the running container to actively collect metrics for those MIBs.
Here's a Sonicwall firewall example:
# Snippet from global config mibs_enabled: - HOST-RESOURCES-MIB - IF-MIB - SONICWALL-SMA-APPLIANCE-SYSTEM-HEALTH-MIB - SONICWALL-SMA-APPLIANCE-SERVICE-HEALTH-MIB - SONICWALL-SMA-APPLIANCE-SECURITY-HISTORY-MIB - SONICWALL-SMA-APPLIANCE-TUNNEL-SERVER-MIB
Dica
You should also set the discovery configuration key: "replace_devices" to false
to prevent accidentally overwriting these edits on a future discovery job.