Follow

Duplicate EngineIDs Cause SNMPv3 Timeouts During Monitoring

Applies To

  • Zenoss Resource Manager 3.x
  • Zenoss Resource Manager 4.x
  • Zenoss Resource Manager 5.x

Summary

If monitored targets share the same EngineID on a collector, Zenoss Resource Manager will timeout and generate errors while attempting to collect monitoring data. Timeouts are experienced because Zenoss Resource Manager uses SNMPv3. SNMPv3 requires a unique EngineID (identifier) (RFC5343) for each target . When targets share the same EngineIDs (on the same collector), the collector produces timeout errors because the underlying SNMP libraries expect the EngineID parameter to be a unique host identifier.

Duplicate EngineIDs are commonly created when an environment is cloned without first resetting the hostid.

Procedure

Search for and correct any duplicate EngineIDs.

NOTE:To prevent creation of duplicate EngineIDs, Zenoss recommends as a best practice, using the genhost command to reset the hostid prior to installing snmpd and before cloning monitored servers. Ideally this procedure can be included as a part of clone automation and will prevent the need for multiple custom configurations.

To correct/change an EngineID, there are two possible methods:

  1. If net-snmp is used, set the EngineID value in the snmpd.conf configuration file:
    1. Log onto the monitored device.
    2. Become root or a user with root authority:
       sudo - su
    3. Edit the snmpd.conf configuration file
    4. Add the new EngineId into the file, in the format:
      engineID uniqueid

      Where uniqueid is a unique EngineID that you create.

      NOTE: From the snmpd manpage:

      This ID will normally be determined automatically, 
      using two reasonably non-predictable values -
      a (pseudo-)random number and the current time in seconds.
      This is the recommended approach. However the capacity
      exists to define the engineID in other ways: engineID STRING specifies that the engineID should be built
      from the given text STRING. engineIDType 1|2|3 specifies that the engineID should be built
      from the IPv4 address (1), IPv6 address (2) or MAC address (3). Note that changing the IP address (or switching the network interface card) may cause problems. engineIDNic INTERFACE defines which interface to use when determining
      the MAC address. If engineIDType 3 is not specified,
      then this directive has no effect.
      The default is to use eth0.

      For additional information about snmpd, visit the snmpd manpage.

  2. Alternatively, regenerate the hostid for each target and uninstall/reinstall net-snmp.
    1. Log onto the monitored device.
    2. Become root or a user with root authority:
       sudo - su
    3. Regenerate the hostid. For example, on on CentOS / RHEL hosts:
      genhostid
    4. Verify the host id:
      hostid
    5. If necessary, backup any customized snmpd settings other than the hostid.
    6. Stop snmpd:
      systemctl stop snmpd
    7. Uninstall net-snmp:
      yum remove net-snmp
    8. (Re-)Install net-snmp:
      yum -y install net-snmp
    9. If necessary, restore any backed-up customized snmp.d settings, other than the hostid.
    10. Start snmpd:
      systemctl start snmpd
Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk