Ad Widget

Collapse

Cisco ACE SNMP monitoring and LLD. Not so easy!

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • spidernik84
    Junior Member
    • Aug 2011
    • 17

    #1

    Cisco ACE SNMP monitoring and LLD. Not so easy!

    Hello, I'm succesfully monitoring some gauges and items of our Cisco ACE load balancers via SNMP and LLD. I need to monitor advanced aspects of the ACE as well, like serverfarms, realservers and probes.
    While the simple items work just wonderfully with LLD and SNMP, the advanced stuff is a bit more tricky due to the way the OIDs are presented by the ACE. Some examples:

    The working, simple setup:

    Discovery rule - SNMP OID field:
    .1.3.6.1.4.1.9.9.161.1.4.2.1.2.1

    Output of Snmpwalk:
    .1.3.6.1.4.1.9.9.161.1.4.2.1.2.1.80 = STRING: CLASS-VIP-1
    .1.3.6.1.4.1.9.9.161.1.4.2.1.2.1.81 = STRING: CLASS-VIP-2
    .1.3.6.1.4.1.9.9.161.1.4.2.1.2.1.82 = STRING: CLASS-VIP-3

    Item prototypes - SNMP OID field:
    .1.3.6.1.4.1.9.9.161.1.4.2.1.4.1.{#SNMPINDEX}

    Zabbix generated items (works wonderfully):
    .1.3.6.1.4.1.9.9.161.1.4.2.1.4.1.80 = INTEGER: outOfService(1)
    .1.3.6.1.4.1.9.9.161.1.4.2.1.4.1.81 = INTEGER: inService(2)
    .1.3.6.1.4.1.9.9.161.1.4.2.1.4.1.82 = INTEGER: inService(2)


    Now, the tricky part. I want to poll some more useful data, like serverfarm status, probes and so on.
    Here's the snmpwalk when the Cisco MIBs are enabled. The output is fairly standard and readable, in the format PROBE.SERVERFARM.REALSERVER.PORT.PORT = status:
    Code:
    snmpwalk -v2c -c <community> <IP> .1.3.6.1.4.1.9.9.508.1.1.3.1.6.1
    CISCO-SLB-HEALTH-MON-MIB::cshMonServerfarmRealProbeHealthMonState.1."PROBE-HTTP-STATICS-1"."SFARM-STATICS"."RSERVER1".80.80 = INTEGER: active(4)
    CISCO-SLB-HEALTH-MON-MIB::cshMonServerfarmRealProbeHealthMonState.1."PROBE-HTTP-STATICS-1"."SFARM-STATICS"."RSERVER2".80.80 = INTEGER: failed(5)
    CISCO-SLB-HEALTH-MON-MIB::cshMonServerfarmRealProbeHealthMonState.1."PROBE-HTTP-MONITOR"."VIEW-1"."RSERVER3".17680.17680 = INTEGER: active(4)
    CISCO-SLB-HEALTH-MON-MIB::cshMonServerfarmRealProbeHealthMonState.1."PROBE-HTTP-MONITOR"."LGA-VIEW-1"."RSERVER4".17680.17680 = INTEGER: active(4)
    ...
    So, I'd expect to be able to use ".1.3.6.1.4.1.9.9.508.1.1.3.1.6.1" as the root OID in the discovery rule. Nope: disabling the MIB translation makes the output messy, with a huge amount of OID sub-levels. It looks like it's generated dinamically, so LLD seems not to be the way to go:

    Code:
    snmpwalk -v2c -c <community> <IP> .1.3.6.1.4.1.9.9.508.1.1.3.1.6.1 -On
    .1.3.6.1.4.1.9.9.508.1.1.3.1.6.1.20.80.82.79.66.69.45.72.84.84.80.45.83.84.65.84.73.67.83.45.49.19.83.70.65.82.77.45.75.65.77.66.73.45.83.84.65.84.73.67.83.11.86.67.49.53.78.88.48.57.57.84.65.80.80 = INTEGER: active(4)
    .1.3.6.1.4.1.9.9.508.1.1.3.1.6.1.20.80.82.79.66.69.45.72.84.84.80.45.83.84.65.84.73.67.83.45.49.19.83.70.65.82.77.45.75.65.77.66.73.45.83.84.65.84.73.67.83.11.86.67.50.49.78.88.49.48.48.84.65.80.80 = INTEGER: failed(5)
    .1.3.6.1.4.1.9.9.508.1.1.3.1.6.1.24.80.82.79.66.69.45.72.84.84.80.45.75.65.77.66.73.45.77.79.78.73.84.79.82.10.76.71.65.45.86.73.69.87.45.49.7.78.88.48.56.49.84.65.17680.17680 = INTEGER: active(4)
    .1.3.6.1.4.1.9.9.508.1.1.3.1.6.1.24.80.82.79.66.69.45.72.84.84.80.45.75.65.77.66.73.45.77.79.78.73.84.79.82.10.76.71.65.45.86.73.69.87.45.49.7.78.88.48.56.50.84.65.17680.17680 = INTEGER: active(4)

    At this point I'm clueless. How would you approach this problem?
    I'm thinking of writing a script that runs snmpwalk, stores each line/column value dinamically and passes them regularly to Zabbix via the API. Yet, I'd like to take this approach as a last resort. It looks very complicated and I have simply no idea where to start since I'm not very strong in scripting

    Thank you!
  • eskytthe
    Senior Member
    Zabbix Certified Specialist
    • May 2011
    • 363

    #2
    If you go for the script solution with snmpwalk I will recommend you to use zabbix_sender with the -i (input file) option rather then an API solution. It is far more simple.

    Good lock
    Erik

    Comment

    • spidernik84
      Junior Member
      • Aug 2011
      • 17

      #3
      Thanks Erik, that looks actually neat and effective!
      I'll try it out then, it would be a life saver

      Comment

      • spidernik84
        Junior Member
        • Aug 2011
        • 17

        #4
        Ok, I tried it a bit but there's a problem with this approach: the trapper items need to be created and accordingly named in advance.

        My idea was to let the script be as autonomous as possible, so to be able to create/remove the items in zabbix dinamically depending on the number of probes the load balancer has (that is, the number of lines the snmpwalk outputs).
        Can I do this without using the API?

        Comment

        • cros
          Member
          • Jul 2017
          • 87

          #5
          Did you find any template no monitoring balance cisco ACE ?

          Comment

          Working...