Forum Discussion
How to configure pool to go down if multiple members are down
- Sep 10, 2025
Priority group activation: if at least one node is up, the pool will appear up, and therefore the virtual server will also show as green.
iRule: this would work to reject traffic, but it’s not what I need.
Individual health checks: this is how it’s currently working. It’s fine for a small pool, but I’m looking for something more scalable.Just to recap, the goal is to mark the virtual server as down so that this IP is not advertised via BGP. This way, traffic will be routed to another site where the VS has more nodes available. The issue was detected when a pool had fewer than 6 nodes available, since it was unable to handle the amount of DNS requests it was receiving.
It seems I’ve managed to get it working with this solution, something like Injeyan_Kostas suggested:
I created a new pool with an external monitor that checks the status of the original pool. On the VS, I applied this new pool and it appears to work correctly.It doesn’t seem like the most optimal solution, but at least if there are many nodes or they change regularly, not many modifications are required.
Any other suggestions would be welcome.
This is .sh file:
#!/bin/bash
#
# External monitor genérico para marcar DOWN un pool si tiene menos de N miembros UP
## Variables de entorno pasadas desde el monitor
#Ej.-
#ltm monitor external monitor_externo_min_pool_member {
# defaults-from external
# description "Comprobacion de miembros arriba en un pool"
# interval 5
# run /Common/monitor_pool_min_members
# time-until-up 0
# timeout 16
# user-defined MIN_UP 3
# user-defined POOL Pool_A10_80
#}
POOL=$POOL
MIN_UP=$MIN_UP# Obtenemos número de miembros activos del pool
UP=$(tmsh show ltm pool $POOL | grep "Current Active Members" | awk '{print $5}')# Debug opcional en /var/log/ltm
#logger -p local0.info "Monitor $POOL: $UP miembros UP, mínimo requerido $MIN_UP"if [ "$UP" -lt "$MIN_UP" ]; then
# No mandamos nada a stdout -> el monitor marcará DOWN
exit 1
else
# Mandamos algo (ej: "UP") -> el monitor marcará UP
echo "UP"
exit 0
fiThis is original pool:
ltm pool Pool_A10_80 {
description "Pool que son 4 VS en A10 2-pruebasPart con iRUle 200 OK"
members {
N1:http {
address 10.10.100.1
session monitor-enabled
state up
}
N2:http {
address 10.10.100.2
session monitor-enabled
state up
}
N3:http {
address 10.10.100.3
session monitor-enabled
state up
}
N4:http {
address 10.10.100.4
session monitor-enabled
state up
}
}
monitor tcp
}This is the new pool assigned to VS:
ltm pool Pool_min_members {
description "Pool de chequeo de numero de miembros disponibles"
members {
N1:http {
address 10.10.100.1
session monitor-enabled
state down
}
N2:http {
address 10.10.100.2
session monitor-enabled
state down
}
N3:http {
address 10.10.100.3
session monitor-enabled
state down
}
N4:http {
address 10.10.100.4
session monitor-enabled
state down
}
}
monitor monitor_externo_min_pool_member
}
Hello Daniel,
I have used this option in small pools, but I was thinking in something more scalable.
Thanks anyway.
I have two more ideas, though not tested.
1. Add all 10 members to a priority group, configure a minimum up requirement of "Less than..." 6 for this priority group. This should take down the whole priority group.
2. Use an iRule similar to this one:
when LB_SELECTED {
set active_members [active_members [LB::server pool]]
if { $active_members < 6 } {
reject
}
}
- Injeyan_KostasSep 10, 2025
Nacreous
To my knowledge less than in priority group implementation will just enable next priority group members if minimum number reached. Will not disable pool.
As for the irule will work for requests but will not mark pool and VS as down. So BGP announcement will continue
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com