You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

NMIS8 includes powerful capabilities for performance and operational thresholding.  These thresholds have very granular controls which by default have been configured fairly broadly.  A simple example of this is that you will likely what to be notified when the CPU is high on a Core device, vs an Access switch in Timbuktu.  This is part of the NMIS idea of relevance of information in general.

About Threshold Controls

Simple Thresholds

In NMIS a simple threshold is defined by the following:

  • the name
  • the event name
  • a select (with a default and optionally more)
  • default threshold values

In the file /usr/local/nmis8/models/Common-thresholds.nmis this looks like this:

'cpu' => {
  'item' => 'avgBusy5min',
  'event' => 'Proactive CPU',
  'select' => {
    'default' => {
      'value' => {
        'critical' => '70',
        'fatal' => '80',
        'minor' => '50',
        'warning' => '40',
        'major' => '60'
      }
    }
  }
},

Have a set of thresholds for Core CPU

BUT Core devices are more sensitive to CPU Load.  So we want to use a different set of threshold values.  Something like:
  • 'critical' => '60',
  • 'fatal' => '70',
  • 'minor' => '40',
  • 'warning' => '30',
  • 'major' => '50'
But how to make these apply just to Core devices?

Advanced Thresholds with Controls

For example, different thresholds for core devices.  Looking in Common-thresholds will give you some ideas, but you can add many “selects” and have properties like:
  • $name
  • $node
  • $host
  • $group
  • $roleType
  • $nodeModel
  • $nodeType
  • $nodeVendor
  • $sysDescr
  • $sysObjectName
  • others for interface
  • Almost unlimited possibilities.

So we can create a more specific threshold for core devices (NMIS has this already configured by default).

'cpu' => {
  'item' => 'avgBusy5min',
  'event' => 'Proactive CPU',
  'select' => {
    '10' => {
      'value' => {
        'critical' => '60',
        'fatal' => '70',
        'minor' => '40',
        'warning' => '30',
        'major' => '50'
      },
      'control' => '$roleType =~ /core/'
    },
    --snip--
    'default' => {
      'value' => {
        'critical' => '70',
        'fatal' => '80',
        'minor' => '50',
        'warning' => '40',
        'major' => '60'
      }
    }
  }
},

These are executed in the select order, and if no control is matched, then the default set is used.

Advanced Control Options

The following are the available control options

Node Properties

  • $name
  • $node
  • $host
  • $group
  • $roleType
  • $nodeModel
  • $nodeType
  • $nodeVendor
  • $sysDescr
  • $sysObjectName

 

Indexed Objects like interfaces

  • $ifAlias
  • $Description
  • $ifDescr
  • $ifType
  • $ifSpeed
  • $ifMaxOctets
  • $maxBytes
  • $maxPackets
  • $entPhysicalDescr

Sample Controls

The crontrols are little pieces of code which will be evaluated when needed, so you might want to do the following sorts of things

 

ResultControl
Apply the threshold to all devices in the group "Sales"$group eq "Sales"
Apply the threshold to all devices starting with the IP address 192.168$host =~ /192\.168/
Apply the threshold to all Cisco IOS devices$sysDescr =~ /Cisco IOS/
Use this threshold if the interface speed is between 1 and 5 megabits/second$ifSpeed <= 5000000 and $ifSpeed >= 1000000
Use this threshold if the interface speed is 10 megabits$ifSpeed == 10000000
Use this threshold if the interface speed is 100 megabits$ifSpeed == 100000000
Use this threshold if the interface speed is 1 gigabits$ifSpeed == 1000000000

Using the NMIS GUI to Configure Thresholds

  • No labels