Additional CBQoS SNMP Collection

Background

NMIS has been collecting CBQoS data from Cisco Devices for a very long time, to produce the necessary charts, it is only required to sent some of SNMP MIBS.  For more detailed reporting now supported in opReports, it is necessary to collect additional CBQoS MIBS.  The full list of MIBS supported for CBQoS collection after this patch is applied are:

  • PrePolicyByte 

  • DropByte 

  • PostPolicyByte

  • DropPkt 
  • NoBufDropPkt 

  • PrePolicyPkt 

The graphs in NMIS and opCharts show the key pieces of Data above.

How to enable a router to collect CBQoS inventory and statistics

By default when we discover a Cisco router with CBQoS configured the systemhealth data will be populated with a table of interfaces on which CBQoS is configured and which policy they are using.  It will not start collecting QoS statistics.  The reason is: 

CBQoS collection Control Considerations

When managing a network of devices typically the largest amount of data or elements collected is the interface data.  e.g. an average of 5 interfaces per device.

So - if you imagine that each interface had 5 CBQoS Class Queues per interface we now have 30 elements instead of the original 5.  As you can see we have pretty much increased the collection and storage by 5 fold !!  As such we want to be careful about which devices we want QoS statistics collection enabled for.  

To enable the collection of CBQoS statistics, in addition to the inventory data, we need to set one of the Nodes properties.  For the Node in NMIS use Edit Node then find the property CBQoS and change it from "none" to one of "input", "output" or "both".

If you are using imports or automation for your node properties then you need to set the Nodes.nmis property to 'cbqos' => 'both',

This can be done via the CLI Node admin:  

Node Admin
 admin/node_admin.pl act=set node={nodename} entry.cbqos=both   ##(or input or output).

Patching pre NMIS 8.4 - Installing the Patch

Before you Begin

Download the nmis-8.4-cbqos.tar.gz patch; then copy the patch file to the server to be patched.  It is easy to process this file if you are the root user and the file is in the root user home directory which is /root

Applying the Patch

#Backup current NMIS code and config including models
DATE=`date "+%Y-%m-%d-%H%M"`
cd /usr/local/nmis8
tar cvf ~/nmis8-backup-$DATE.tar ./admin ./bin ./cgi-bin ./conf ./install ./lib ./menu ./mibs ./models

#Make sure NMIS is working before you patch it.
/usr/local/nmis8/bin/nmis.pl type=collect debug=true node=<node to test>

#Get CP working right. (no prompts)
unalias cp

#Unarchive the NMIS tarball
cd ~
tar xvf nmis-8.4-cbqos.tar.gz
 
# Patch the Code Base
cd nmis-8.4-cbqos 
cp -r * /usr/local/nmis8

Updating the Production Model Files

If there are no customisations to your CBQoS model files, copy the new ones over the old ones, or you will need to merge the differences manually.

# Copy the model-install files over the production files.
cp /usr/local/nmis8/models-install/Common-cbqos-in.nmis /usr/local/nmis8/models/Common-cbqos-in.nmis
cp /usr/local/nmis8/models-install/Common-cbqos-out.nmis /usr/local/nmis8/models/Common-cbqos-out.nmis

Clean up and Test

# optionally audit your config
/usr/local/nmis8/bin/nmis.pl type=audit
# fix your config
/usr/local/nmis8/bin/nmis.pl type=config
# fix permissions
/usr/local/nmis8/admin/fixperms.pl
# test polling
/usr/local/nmis8/bin/nmis.pl type=collect debug=true node=<node to test>