This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

Custom MIBS for Cisco QOS

I'm trying to figure out a reliable, practical way to create a page in Orion to show the output of the SHOW POLICY-MAP INTERFACE SERIAL ## command using custom MIBS.


What I'm trying to do is grab the stats offered by that command so that I can see how my QOS policies are performing....aka show me what policy-map queuing classes are dropping traffic.


Has anyone managed to pull this all together, and if so, could you provide some insight?

  • FormerMember
    0 FormerMember

    In case you're interested, the next version of Network Traffic Analyzer will show the ToS bit, which would allow you to do just what you're looking for (I think).  That version - 2.2 - will ship in the next few weeks. 

  • Denny,

    Viewing the ToS bit in Netflow is not the same as viewing the QoS Policy-Map traffic/queues/drops on an interface.
    Netflow does not display this, as this shows the traffic before it hits the wire
    This would be a huge feature if you poll this OID in Orion &/or add it as a feature to the VoIP monitor plugin.
     

  • I have created custom mib pollers to show output discards for each of my queues, but takes a LOT of work.  There main problems are:


    1. The cbQoS MIB indexes are dynamic.  If you change the policy-map the indexes change and you will have to change the poller to poll the new OIDs.  The indexes also change the first time you reboot the router after changing a policy-map.  Cisco have introduced MIB persistence in 12.4(4)T to address the problem, but I'd advise caution before using a T (Technology) release in a production environment.  I'd advise waiting until the feature is incorporated in 12.5 mainline.  More info:


    http://www.cisco.com/en/US/products/ps6441/products_feature_guide09186a008054d7c8.html


    2. Pollers cannot be assigned to multiple routers, because the cbQoS indexes are unique (and dynamic) for each router.  So, to monitor queue discards for example, you'll need to create a poller for each queue, for each interface for each router.


    3. The cbQoS MIB is very complex, and it took me quite some time to deduce how to associate the queuing stats table class-map names and then detemine the interface name to which the policy-map was assigned.  You can do this with a decent MIB browser (not the one included with the MIB poller - you need to be able to retrieve whole tables etc..).  Once I'd figured it out, I wrote a crude perl script to work out the OIDs I would need to poll so I could run the script against multiple routers.  Here are the notes from my script on how I did it.  My queuing is in a nested service-policy under traffic-shaping so I don't know if this affects the process if you just have queueing at the first level.  Please don't blame me if you end up wasting hours trying to work out the cbQoS MIB - I know I did!


    ##################################################################################### 


    Note that the cbQos MIB is complicated and best understood by reading this in
    conjuntion with a MIB browser.  The idea is to work from the queue backwards
    through the various mib table to the class-map name.


    A queue is identifed by reference cbQosPolicyIndex.cbQosObjects index in the
    Queueing stats table.  E.g. cbQoSQueueingDiscardPkt.1569.3071.


    Next, get the parent of the queue (the class-map) from the ParentObject
    table in the cbQosObjectstable.  E.g. cbQosParentObjectsIndex.1569.3071 => 3065


    The result (3065) is used with the policy index of the queue to get the index
    of the class-map from the ConfigIndex table.  E.g. cbQosConfigIndex.1569.3065 =>1105


    The result (1105) is the cbQosConfigIndex for the class-map name in the
    class-map name table.  E.g. cbQosCMName.1105 => BULK-DATA-Q

    The policy-map containing the queue is assigned to an interface.  Given the
    PolicyIndex, lookup the ifIndex in the cbQosServicePolicy table.  E.g. cbQosIfIndex.1569 => 1


    Finally, the interface name is determined from the ifIndex by looking in the
    Interface table (the interface description).  E.g. ifDescr.1 => FastEthernet0/0

    #####################################################################################


    I'm currently looking for software to do cbQoS monitoring, but there's nothing out there really that isn't tied to another network management system.  I'd love to see QoS monitoring incorporated into Orion...perhaps as a QoS monitoring module?  Here's hoping.


    If anyone has found software to monitor the cbQoS mib that could be integrated into the Orion website, I'd love to hear about it!

  • Wow!

    I knew it was not a trivial matter, but that certainly puts things into perspective.
    Thanks for the detailed explanation Lee.

    Another future possiblity may be using Cisco's flexible Netflow export feature to gather the Policy-map stats.
    I attending an Advanced NetFlow seminar [NMS-3132] at Networkers last year which discussed setting up policies on Cisco devices to export almost any information similar to how Netflow works.

    Perhaps this technology would be more appropriate to monitor QoS queues.
    The speaker mentioned that using this template based technology, they are planning on adding other elements, such as CPU, Voltage, interface queues, etc.
    You will also be able to setup thresholds which when exceeded, the device will export the data to your monitoring server.

    So if this technology takes off, it may replace SNMP & SNMP Traps for monitoring Cisco devices. 


     


     

  • Nice post.  I took a look around and found the following that may stream line your configuration process a bit:


     From CCO:


    To find the QoS service policies that are applied to a specific interface (more generically referred to as a target), you must search the entire cbQosServicePolicyTable within the CISCO-CLASS-BASED-QOS-MIB. This process can be very time consuming in large scale configurations, and therefore, is not feasible.


    A solution was to create the CISCO-CBP-TARGET-MIB, a more generic MIB that allows any type of target to be mapped to the service policies that are applied to it.


    The CISCO-CBP-TARGET-MIB maps policy targets to their corresponding attached service policies by providing a link to the policy instance (service policy) and the policy-map configuration data by using row pointers to the tables that manage each one. For policy types in the CISCO-CLASS-BASED-QOS-MIB, the CISCO-CBP-TARGET-MIB maps targets to their cbQosServicePolicyTable and cbQosPolicyMapCfgTable rows, respectively.


    http://www.cisco.com/univercd/cc/td/doc/product/software/ios122sb/newft/122sb31/cbqosmap.htm


    Let me know if that is applicable.


    Thanks,


    Mike

  • Lee - I found my way to the OID's with EE toolkit, and yeah it was tricky.
    The problem now is migrating those nuggets into the Orion Custom Mib poller.

    I'm running 8.5.1 SP-3, and for some reason the custom mib poller just kinda blows up.
    You too? How'd you negotiate that?

    I get the error: Cannot Open MIB Database/ Could not find yadd yadda .... MIBs.cfg
    Did you? What was the fix?

    Thanks,
    Mike Carrick

    P.S the EE Edition graphs look great - can the Mib Poller build several graphs in one display like EE Edition can? THAT would be cool.

    MIB CISCO-CLASS-BASED-QOS-MIB

    Name cbQosQueueingDiscardByte.1243.1261

    iso.org.dod.internet.private.enterprises.cisco.ciscoMgmt.ciscoCBQosMIB.ciscoCBQosMIBObjects.cbQosQueueingStats.cbQosQueueingStatsTable.cbQosQueueingStatsEntry.cbQosQueueingDiscardByte.1243.1261

    OID 1.3.6.1.4.1.9.9.166.1.18.1.1.4.1243.1261

    Type Counter32

    Units

    Access read-only

    Status unknown

    Value 76548449
  • Cleared that hurdle (by pasting MIB.cfg where Orion complained it was not) only to find that the MIB is apparently Unsupported?
    I don't get it - It's a perfectly VALID OID. The graph shows nothing of interest. It seems to be not honoring my instance request.


    I'm prepending 1.3.6.1.4.1.9.9.166.1.18.1.1.4 to the index values of 1243.1261. 1243 is my ATM interface instance, and 1261 is the queue I want. I won't reiterate how I got there, but EE Toolkit V9 has no difficulty graphing this at all.


    Does the Custom MIB poller not support several instances of the same MIB?
    I'm not getting it .....?  Can't I just type in those values after the OID I navigate to in the MibBrowse view?

    i.e. the Browser drills to 1.3.6.1.4.1.9.9.166.1.18.1.1.4, but then I have to put the cursor after that and add characters.
    Then I get an error message.


    I can't drill as "deep" with the CustomMibPoller widget as I can with the EEtoolkitV9 widget. Huh?? Why is that?
    (Could somone port the EETv9 SNMP Grapher code into Orion?)

    Or Is it because I'm using GetNext?

    I'd prefer NOT to set up EE toolkit exporting to the Web ...
    but for the person who asked about "software that does this", that would be Solar Winds - SNMP Real-Time Graph.


    I guess you'd create a new IIS directory - and just put links into an HTML box to get to it?
    Not exactly what I had in mind. 


  • Spoke too soon.
    It WAS the GetNext issue. Appending the instance info passes the self-test, when you specify Get.


    My bad.
    Still a little underwhelming, tho ...
    Not sure if that's cuz our queues are working? or whether stuff is lost in the five minute aggregation.

    The EE toolkit graphs still look much nicer.

  • This might be a silly question but what is Network Traffic Analyzer, is this Solarwinds software?  I have Orion NPM, APM, VOIP Monitor, Cirrus and Engineers Edition and have not seen this software in it.



  • This might be a silly question but what is Network Traffic Analyzer, is this Solarwinds software?  I have Orion NPM, APM, VOIP Monitor, Cirrus and Engineers Edition and have not seen this software in it.

     

    Network Traffic Analyzer (NTA for short) is an add-on to Orion much like APM and VOIP monitor. It allows for the collection of Netflow data from routers and switches that support it. Product info is available here:

    www.solarwinds.com/.../index.aspx