Forum Discussion

mrlopez's avatar
mrlopez
Icon for Altocumulus rankAltocumulus
Aug 23, 2024

Consulta Irule pool status

Good afternoon, friends. I am trying to create an iRule that can be used on any Virtual Server (without having to create one for each pool or node) that can analyze the state of the pool members and display an image according to their status.

Case 1:

If someone sets the nodes to a disabled or forced offline state, display a maintenance image.

Case 2:

If a node goes down due to a monitor failure (e.g., it stops responding on port 80), display a technical issues image.

I want to upload all the images as iFiles within the F5.

So far, I have this, but I am not able to get it working :(

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

Versión en Español:

Buenas tardes amigos, estoy tratando de generar una irule que se pueda usar en cualquier VS  (sin tener que crear una por cada pool o nodo existente) que pueda analizar el estado de los miembros de un pool y mostrar un imagen según su estado.

Caso 1:

si alguien coloca los nodos en estado disable o force offilne muestre una imagen de mantenimiento.

Caso 2:

si el nodo se cae por la falla del algún monitor (Ej: deja de responder el puerto 80) muestre una imagen de problemas técnicos.

todas las imágenes las quiero cargar como ifile dentro del F5..

 

Hasta ahora tengo esto pero no lo estoy pudiendo hacer andar :(

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

when LB_FAILED {
    # Obtén el nombre del pool asociado con el Virtual Server actual
    set pool_name [LB::server pool]

    if { [active_members $pool_name] < 1 } {
        # Verifica el estado del pool dinámicamente
        if { [LB::status pool $pool_name] eq "user disabled" || [LB::status pool $pool_name] eq "forced offline"} {
            # Si los nodos están en disable o force offline manualmente
            set ifile_name "/Common/mantenimiento_image"  ;# Nombre del iFile para mantenimiento
        } else {
            # Si los nodos están caídos por un fallo detectado por el monitor
            set ifile_name "/Common/problemas_tecnicos_image"  ;# Nombre del iFile para problemas técnicos
        }

        # Leer el contenido del iFile y responder al cliente con la imagen
        set ifile_content [ifile get $ifile_name]
        HTTP::respond 200 content $ifile_content "Content-Type" "image/jpeg"
    }
}

 

 

Si alguien me puede ayudar se lo agradecería mucho. 

 

  • Hi if possible, please translate to English for understanding to large audience - if you are fine :)

    • mrlopez's avatar
      mrlopez
      Icon for Altocumulus rankAltocumulus

      Thank you for your advice. I’ve updated it and placed the text in English. Sorry for my poor English. :(

      • mrlopez no need to apologize - thank you for being a part of our community. 

        our community will do their best to accommodate any language.

         

        thank you for the translation.