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