Related Material

Please checkout the Device Modelling Checklist


Table of Contents

Developing Device Models for NMIS

Checkout the handy training we developed for NMIS users, this is available here: 

Checklist for Model Development

The training covers this in details, but here is a quick summary of what needs to be updated and changed when adding new device support with modelling

Creating Thresholds with NMIS Modelling

Please refer to the training material above for an overview of creating the thresholds, the information below should assist in understanding the relationships between the different sections and moving parts.

Main collection is /systemHealth/rrd/hrProcessorLoad

Common-database entry called hrProcessorLoad

Common-heading entry for the /systemHealth/rrd/hrProcessorLoad/graphtype => hrprocload

To create a threshold, statistical data is needed, this is extracted using Common-stats and this is based on the rrd name, so for this hrProcessorLoad collection, the Common-stats entry would be hrProcessorLoad

To compare the data to the threshold, there needs to be a Common-threshold section, this is named after the /systemHealth/rrd/hrProcessorLoad/threshold => arCpuLoad

So that the threshold system can match data from the stats results, we use the item to match the data, so NMIS is going to look for the item in the resulting stats data, in this case the item name is hrProcessorLoad, which matches the print statement: 'PRINT:hrProcessorLoad:AVERAGE:hrProcessorLoad=%1.0f' in the Common-stats section.

### Model-AristaSwich.nmis
%hash = (
  'systemHealth' => {
    'rrd' => {
      'hrProcessorLoad' => {
        'graphtype' => 'hrprocload',
        'indexed' => 'true',
        'threshold' => 'arCpuLoad'
        'snmp' => {
          'hrProcessorLoad' => {
            'oid' => 'hrProcessorLoad',
            'option' => 'gauge,0:U'
          }
        }
      }
 
### Common-database.nmis
  'hrProcessorLoad' => '/nodes/$node/health/hrProcessorLoad-$index.rrd',

### Common-heading.nmis
  'hrprocload' => 'Processor Load',
 
### Common-stats.nmis
%hash = (
  'stats' => {
    'type' => {
      'hrProcessorLoad' => [
        'DEF:hrProcessorLoad=$database:hrProcessorLoad:AVERAGE',
        'PRINT:hrProcessorLoad:AVERAGE:hrProcessorLoad=%1.0f',
      ]

### Common-threshold.nmis
%hash = (
  'threshold' => {
    'name' => {
      'arCpuLoad' => {
        'item' => 'hrProcessorLoad',
        'event' => 'Proactive CPU Utilisation',
        'select' => {
          'default => {
            'value' => {
              'fatal' => '90',
              'critical' => '80',
              'major' => '70',
              'minor' => '60',
              'warning' => '50'
            }
          }
        }
      },