FIDO: SNMP based thresholding

FIDO: SNMP based thresholding

Updating Thresholds

Thresholds can originate from many sources and can be designated per OID, per OID/DEVICE, or per OID/DEVICE/INSTANCE.
Examples;

<CiscoCpuUtil>
   <thresholds>
        high = 75   # per oid
   </thresholds>
   <r-waupacaco.wiscnet.net>
        <thresholds>
                high = 85 # per device
        </thresholds>
        <utilization>
                high = 85 # or explicitly list the instance
        </utilization>
   </r-waupacaco.wiscnet.net>
</CiscoCpuUtil>
  • the manual threshold file. Can be OID, OID/DEVICE or OID/DEVICE/INSTANCE
    [@server data]$ cat /usr/local/fido/etc/fido_manual_thresholds.config
  • <jnxYellowAlarmCount>
    <r-peer-2.net.wisc.edu>
    <thresholds>
    # re1 active
    not_equal_to = 1
    </thresholds>
    </r-peer-2.net.wisc.edu>
    </jnxYellowAlarmCount>

  • manually from the snmp poll config file. Can be OID, OID/DEVICE or OID/DEVICE/INSTANCE. Typically per OID.
    <hrSystemProcesses>
       desired_state = "within threshold bounds"
       threshold_units = "processes"
       <manual_thresholds>
            high = 0
       </manual_thresholds>
       ...
       ...
       
  • OR from an SNMP poll. Automatically per OID/DEVICE/INSTANCE
       
    <iemStatusProbeCurrentTemp>
       ...
       ...
       <threshold>
         high = return $snmp_data{$device}{'data'}{'iemConfigProbeHighTempThreshold'}{$instance}
         low  = return $snmp_data{$device}{'data'}{'iemConfigProbeLowTempThreshold'}{$instance}
       </threshold>
      
The './update_thresholds.pl' script does the following
  • Collects and merges thresholds based on $update_config{'threshold_file_glob'}
  • Loads in the snmp poll config file and sees which tests actually want to use thresholds
  • Copies/modifies threshold values based on configuration requests
  • Creates the full thresholds file