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
}
I havent tested these 2 options that dont need irules, but they might work.
Option1:
Use pool member priority group with Activation less than X.
Assign a high priority value, e.g. 99, to real pool members.
Add dummy dead pool member and assign any lower prio value, e.g. 22
Expectation: When less than X pool members up, vserver will switch to the dummy dead member
but because it's dead then vserver status will be dead too.
Also try without dummy dead.
Option2 (it seems will work):
Use pool's Availability Requirement = At least X,
Create health monitor for each pool member
and specify intended pool member ip addr and port in each of those health monitor's Alias address & Alias port.
Then assign those health monitors into the pool.
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