Uploaded image for project: 'Observium'
  1. Observium
  2. OBS-2967

Add F5 BIG-IP Pool Enabled / Available Metrics

Details

    • New Feature
    • Resolution: Fixed
    • Major
    • None
    • Professional Edition
    • Alerting, Poller
    • F5 BIG-IP v14.1.0.1-0.0.7

    Description

      The current pool_health metric is useful, but there are no other metrics to use in order to exclude disabled pools, or pools which have no health monitors associated with them from being checked for pool_health.

      e.g. A pool with four pool members but no health monitors will always have pool_health of 0, as the BIG-IP will not report any members as actually being up.

      e.g. A pool which is disabled cannot be excluded from checks for pool_health, as there was no metric to conditionally exclude disabled pools from trigger alerts.

      The attached patch creates two metrics for, "pool_available" and "pool_enabled"

      From F5-BIGIP-LOCAL-MIB,

       

      ltmPoolStatusAvailState OBJECT-TYPE
       SYNTAX INTEGER {
         none(0),
         green(1),
         yellow(2),
         red(3),
         blue(4),
         grey(5)
       }
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
         "The availability of the specified pool indicated in color.
           none - error;
           green - available in some capacity;
           yellow - not currently available;
           red - not available;
           blue - availability is unknown;
           gray - unlicensed"
       ::= { ltmPoolStatusEntry 2 }
      ltmPoolStatusEnabledState OBJECT-TYPE
       SYNTAX INTEGER {
         none(0),
         enabled(1),
         disabled(2),
         disabledbyparent(3)
       }
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
         "The activity status of the specified pool, as specified by the user."
       ::= { ltmPoolStatusEntry 3 }
      

      In my lab F5, I have a number of pools which intentionally do not have health monitors associated, as such they are enabled(1) for ltmPoolStatusEnabledState, and their availability is blue(4) aka. "availability is unknown" 

      The looks like this in BIG-IP,

      Prior to patching this is the result of an alert checker based on pool_health,

      Post patch and update of alert checker with conditions for pool_available and pool_enabled, I get my desired result, which is no alerts for pools that are not explicitly known to be down.

       

       

      Attachments

        Activity

          [OBS-2967] Add F5 BIG-IP Pool Enabled / Available Metrics

          Committed in 9803.

          adama Adam Armstrong added a comment - Committed in 9803.

          For F5 virtuals ltmVsStatusAvailState was already being used with the virt_state metric.

          Updated patch also adds virt_enabled metric based on ltmVsStatusEnabledState so alert checkers can exclude disabled virtuals.

          ltmVsStatusEnabledState OBJECT-TYPE
           SYNTAX INTEGER {
            none(0),
            enabled(1),
            disabled(2),
            disabledbyparent(3)
           }
           MAX-ACCESS read-only
           STATUS current
           DESCRIPTION
           "The activity status of the specified virtual server, as specified by the user."
           ::= { ltmVsStatusEntry 3 }

          colin.stubbs Colin Stubbs added a comment - For F5 virtuals ltmVsStatusAvailState was already being used with the virt_state metric. Updated patch also adds virt_enabled metric based on ltmVsStatusEnabledState so alert checkers can exclude disabled virtuals. ltmVsStatusEnabledState OBJECT-TYPE SYNTAX INTEGER {   none( 0 ),   enabled( 1 ),   disabled( 2 ),   disabledbyparent( 3 ) } MAX-ACCESS read-only STATUS current DESCRIPTION "The activity status of the specified virtual server, as specified by the user." ::= { ltmVsStatusEntry 3 }
          colin.stubbs Colin Stubbs added a comment - - edited

          Have added additional screenshot. Longer term a schema update is probably required for lb_pools table to store pool enabled/available status of some kind.

           

          The load balancer pool display within webUI currently bases the display on "active_members", so for F5 pools with no health monitoring there will never anything but zero active members.

           

          Modifications to includes/polling/loadbalancer/f5-bigip-local-mib.inc.php again, as well as html/pages/device/loadbalancer/lb_pools.inc.php, once schema update available.

           

          colin.stubbs Colin Stubbs added a comment - - edited Have added additional screenshot. Longer term a schema update is probably required for lb_pools table to store pool enabled/available status of some kind.   The load balancer pool display within webUI currently bases the display on "active_members", so for F5 pools with no health monitoring there will never anything but zero active members.   Modifications to includes/polling/loadbalancer/f5-bigip-local-mib.inc.php again, as well as html/pages/device/loadbalancer/lb_pools.inc.php, once schema update available.  
          colin.stubbs Colin Stubbs added a comment - - edited

          Pre patch my conditions were just "pool_health le 50", e.g. if less than or equal to 50% of configured pool members are available trigger alert.

          Post patch my updated conditions using newly available metrics,

          pool_health le 50
          pool_enabled eq 1
          pool_available ne 5
          pool_available ne 4
          pool_available ne 0

          So pools which are in an explicitly disabled state (2 or 3), or a none/unknown state (0), will be excluded from alerts.

          And pools which are in an unknown, unlicensed or error state will also be excluded from alerts.

          colin.stubbs Colin Stubbs added a comment - - edited Pre patch my conditions were just "pool_health le 50", e.g. if less than or equal to 50% of configured pool members are available trigger alert. Post patch my updated conditions using newly available metrics, pool_health le 50 pool_enabled eq 1 pool_available ne 5 pool_available ne 4 pool_available ne 0 So pools which are in an explicitly disabled state (2 or 3), or a none/unknown state (0), will be excluded from alerts. And pools which are in an unknown, unlicensed or error state will also be excluded from alerts.

          People

            adama Adam Armstrong
            colin.stubbs Colin Stubbs
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: