Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

So the new state is Degraded, this is there to reflect the KPI's for a node and show you that the node is up and working, but has some other performance condition active.

Info
titleEvents.nms table affect on Status

Note:  All NMIS events are parsed through the Event s table (Events.nmis) one of the controls in that table is 'status'.  When the 'status' attribute of an event is set to False this event will not affect the Devices status.  

Degraded state is only impacted by "Alert" and "Proactive" events.  This means it excludes other event types such as Services events and Interface State events. 

The Gory Details of Classic Mode

...

Level Status - Normal, Warning, Minor, Major, Critical

The level status is intended to provide some prioritisation to the customer, for example if a Node which has the role Core is down, its status would be Critical, while an access node would be Major.  The actual policy is configurable and defined in the NMIS Model file, /usr/local/nmis8/models/Common-event.nmis and for node down looks like this:


 

Code Block
      'node down' => {
        'core' => {
          'logging' => 'true',
          'level' => 'Critical'
        },
        'access' => {
          'logging' => 'true',
          'level' => 'Major'
        },
        'distribution' => {
          'logging' => 'true',
          'level' => 'Major'
        }
      },

How these get calculated?  % NodeUp (NodeDn) + role weight (access vs core)?

...


Code Block
$status_number = 100 * $statusHash{Normal};
$status_number = $status_number + ( 90 * $statusHash{Warning} );
$status_number = $status_number + ( 75 * $statusHash{Minor} );
$status_number = $status_number + ( 60 * $statusHash{Major} );
$status_number = $status_number + ( 50 * $statusHash{Critical} );
$status_number = $status_number + ( 40 * $statusHash{Fatal} );
if ( $status_number != 0 and $statusHash{count} != 0 ) {
	$status_number = $status_number / $statusHash{count};
}

 


Then if there is more than one node, we map an overall status to that weighting.


Code Block
if ( $status_number == 100 ) { $overall_status = "Normal"; }
elsif ( $status_number >= 95 ) { $overall_status = "Warning"; }
elsif ( $status_number >= 90 ) { $overall_status = "Minor"; }
elsif ( $status_number >= 70 ) { $overall_status = "Major"; }
elsif ( $status_number >= 50 ) { $overall_status = "Critical"; }
elsif ( $status_number <= 40 ) { $overall_status = "Fatal"; }
elsif ( $status_number >= 30 ) { $overall_status = "Disaster"; }
elsif ( $status_number < 30 ) { $overall_status = "Catastrophic"; }

 

...