Skip to main content

Overview

NMIS provides comprehensive monitoring for Cisco devices through specialized Common models. These models collect vendor-specific metrics beyond standard interface statistics.

Available Cisco Models

The following Common-Cisco models are available in models-default/:
  • Common-Cisco-cbqos.nmis - Class-Based Quality of Service
  • Common-Cisco-ipsla.nmis - IP Service Level Agreement monitoring
  • Common-Cisco-power.nmis - Power supply status
  • Common-Cisco-temp.nmis - Temperature sensors
  • Common-Cisco-memory.nmis - Memory pool utilization
  • Common-Cisco-cpu.nmis - CPU utilization
  • Common-Cisco-neighbor.nmis - CDP neighbor discovery
  • Common-Cisco-routing.nmis - Routing table statistics
  • Common-Cisco-vlan.nmis - VLAN information
  • Common-Cisco-netflow.nmis - NetFlow statistics

Class-Based QoS (CBQoS)

Overview

Monitors Cisco Class-Based QoS policies applied to interfaces, tracking traffic classes, queuing, and policy enforcement.

Model Structure

# Common-Cisco-cbqos.nmis
%hash = (
  'systemHealth' => {
    'sys' => {
      'Cisco_CBQoS' => {
        'indexed' => 'cbQosIfType',
        'headers' => 'ifDescr,Description,cbQosIfIndex,cbQosIfType,cbQosPolicyDirection,index',
        'snmp' => {
          'cbQosIfType' => {
            'oid' => 'cbQosIfType',
            'title' => 'CBQoS Interface Type',
            'replace' => {
              '1' => 'mainInterface',
              '2' => 'subInterface',
              '3' => 'frDLCI',
              '4' => 'atmPVC',
              '5' => 'controlPlane',
              '6' => 'vlanPort',
              '7' => 'evc'
            }
          },
          'cbQosPolicyDirection' => {
            'oid' => 'cbQosPolicyDirection',
            'title' => 'CBQoS Direction',
            'replace' => {
              '1' => 'input',
              '2' => 'output'
            }
          },
          'cbQosIfIndex' => {
            'oid' => 'cbQosIfIndex',
            'title' => 'ifIndex'
          }
        }
      }
    }
  }
);

Collected Metrics

  • Interface index and type (main, sub-interface, VLAN)
  • Policy direction (input/output)
  • Traffic class statistics
  • Drop/queue counters per policy

SNMP MIB

Uses: CISCO-CLASS-BASED-QOS-MIB Key OIDs:
  • cbQosIfType - Interface type
  • cbQosPolicyDirection - Policy direction (1=input, 2=output)
  • cbQosIfIndex - Interface index
# File: models-default/Common-Cisco-cbqos.nmis:41-83
%hash = (
  'systemHealth' => {
    'sys' => {
      'Cisco_CBQoS' => {
        'indexed' => 'cbQosIfType',
        'headers' => 'ifDescr,Description,cbQosIfIndex,cbQosIfType,cbQosPolicyDirection,index',
        'snmp' => {
          'ifDescr' => {
            'title' => 'ifDescr'
          },
          'Description' => {
            'title' => 'Description'
          },
          'cbQosIfType' => {
            'oid' => 'cbQosIfType',
            'title' => 'CBQoS Interface Type',
            'replace' => {
              '1' => 'mainInterface',
              '2' => 'subInterface',
              '3' => 'frDLCI',
              '4' => 'atmPVC',
              '5' => 'controlPlane',
              '6' => 'vlanPort',
              '7' => 'evc'
            }
          },
          'cbQosPolicyDirection' => {
            'oid' => 'cbQosPolicyDirection',
            'title' => 'CBQoS Direction',
            'replace' => {
              '1' => 'input',
              '2' => 'output'
            }
          },
          'cbQosIfIndex' => {
            'oid' => 'cbQosIfIndex',
            'title' => 'ifIndex'
          }
        }
      }
    }
  }
);

Power Supply Monitoring

Overview

Monitors Cisco power supplies using the CISCO-ENTITY-FRU-CONTROL-MIB, tracking operational status and current draw.

Model Structure

# Common-Cisco-power.nmis
'systemHealth' => {
  'sys' => {
    'powerSupply' => {
      'headers' => 'entPhysicalDescr,entPhysicalModelName,PowerAdminStatusNam,PowerOperStatusNam,FRUCurrent',
      'indexed' => 'cefcFRUPowerOperStatus',
      'index_oid' => '1.3.6.1.4.1.9.9.117.1.1.2.1.2',
      'snmp' => {
        'PowerOperStatusName' => {
          'oid' => '1.3.6.1.4.1.9.9.117.1.1.2.1.2',
          'snmpObjectName' => 'cefcFRUPowerOperStatus',
          'title' => 'Oper Status',
          'replace' => {
            '1' => 'offEnvOther',
            '2' => 'on',
            '3' => 'offAdmin',
            '4' => 'offDenied',
            '5' => 'offEnvPower',
            '6' => 'offEnvTemp',
            '7' => 'offEnvFan',
            '8' => 'failed',
            '9' => 'onButFanFail',
            '10' => 'offCooling',
            '11' => 'offConnectorRating',
            '12' => 'onButInlinePowerFail'
          }
        },
        'FRUCurrent' => {
          'oid' => '1.3.6.1.4.1.9.9.117.1.1.2.1.3',
          'snmpObjectName' => 'cefcFRUCurrent',
          'title' => 'Current +Supplied/-Required'
        }
      }
    }
  }
}

Collected Metrics

  • Power supply description and model
  • Administrative status (on/off/auto)
  • Operational status (12 possible states)
  • Current supplied or required

Alerts

'alerts' => {
  'powerSupply' => {
    'powerSupply' => {
      'element' => 'index',
      'event' => 'Power Supply Status',
      'level' => 'Major',
      'test' => 'CVAR1=PowerOperStatus;$CVAR1 < 80',
      'value' => 'CVAR1=PowerOperStatus;int($CVAR1)'
    }
  }
}
The power operational status is mapped to numeric values for alerting:
  • 100 = on (normal)
  • 75 = offAdmin (administratively disabled)
  • 25 = offDenied, offEnvPower, offEnvTemp, offEnvFan, onButFanFail, offCooling, offConnectorRating, onButInlinePowerFail
  • 0 = offEnvOther, failed
Any value < 80 triggers a Major alert.

Temperature Monitoring

Overview

Monitors temperature sensors using the ENTITY-SENSOR-MIB, collecting readings from various device locations.

Model Structure

# Common-Cisco-temp.nmis
'systemHealth' => {
  'rrd' => {
    'env-temp' => {
      'indexed' => 'true',
      'graphtype' => 'env-temp',
      'control' => 'CVAR=tempType;$CVAR =~ /celsius/',
      'snmp' => {
        'currentTemp' => {
          'oid' => 'entSensorValue',
          'calculate' => 'CVAR1=tempPrecision; return $CVAR1 == 0 ? ($r / 1) : ($CVAR1 == 1 ? ($r / 10) : ($CVAR1 == 2 ? ($r / 100) : ($CVAR1 == 3 ? ($r / 1000) : ($CVAR1 == 4 ? ($r / 10000) : ($CVAR1 == 5 ? ($r / 100000) : ($r / 1000000))))))'
        },
        'tempPrecision' => {
          'oid' => '1.3.6.1.4.1.9.9.91.1.1.1.1.3',
          'snmpObjectName' => 'entSensorPrecision'
        }
      }
    }
  },
  'sys' => {
    'env-temp' => {
      'indexed' => 'entSensorStatus',
      'headers' => 'tempDescr,currentTemp',
      'snmp' => {
        'tempDescr' => {
          'oid' => 'entPhysicalDescr',
          'title' => 'Descr.'
        },
        'tempStatus' => {
          'replace' => {
            '1' => 'ok',
            '2' => 'unavailable',
            '3' => 'nonoperational'
          },
          'oid' => 'entSensorStatus',
          'title' => 'Status'
        },
        'currentTemp' => {
          'oid' => 'entSensorValue',
          'calculate' => 'CVAR1=tempPrecision; return $CVAR1 == 0 ? ($r / 1) : ($CVAR1 == 1 ? ($r / 10) : ($CVAR1 == 2 ? ($r / 100) : ($CVAR1 == 3 ? ($r / 1000) : ($CVAR1 == 4 ? ($r / 10000) : ($CVAR1 == 5 ? ($r / 100000) : ($r / 1000000)))))))',
          'title' => 'Current Temp (C)'
        }
      }
    }
  }
}

Features

  • Precision handling - Automatically scales temperature values based on sensor precision
  • Sensor filtering - Only collects Celsius sensors (control statement)
  • Status monitoring - Tracks sensor operational state

Alerts

'alerts' => {
  'env-temp' => {
    'tempStatus' => {
      'type' => 'threshold-rising',
      'threshold' => {
        'Warning' => '80',
        'Minor' => '85',
        'Major' => '80',
        'Critical' => '95',
        'Fatal' => '100'
      },
      'control' => 'CVAR=tempType;$CVAR =~ /celsius/',
      'element' => 'tempDescr',
      'event' => 'High Temperature',
      'unit' => '°C',
      'value' => 'CVAR1=currentTemp;int($CVAR1)'
    }
  }
}

IP SLA Monitoring

Overview

Monitors Cisco IP Service Level Agreement tests for network performance measurement:
  • Echo (ICMP ping) tests
  • Jitter tests (VoIP quality)
  • UDP/TCP response time
  • Path trace

Key Metrics

  • Round-trip time (RTT)
  • Jitter (delay variation)
  • Packet loss
  • Test completion status

Model Files

  • Common-Cisco-ipsla.nmis - IP SLA statistics
  • Common-Cisco-rtt.nmis - Legacy RTT monitoring
IP SLA monitoring requires IP SLA tests to be configured on the Cisco device first. NMIS collects results from configured tests.

Including Cisco Models

To enable Cisco-specific monitoring in a custom model:
'-common-' => {
  'class' => {
    'Cisco-cbqos' => {
      'common-model' => 'Cisco-cbqos'
    },
    'Cisco-power' => {
      'common-model' => 'Cisco-power'
    },
    'Cisco-temp' => {
      'common-model' => 'Cisco-temp'
    },
    'Cisco-ipsla' => {
      'common-model' => 'Cisco-ipsla'
    }
  }
}

Next Steps

Build docs developers (and LLMs) love