Forum Discussion
Do not disable last active node in pool
Hi all, I am new in using Irules and trying to implement better http health checks on our BIG-IPs. I have tested them and have no problems. My only concern is in case anything goes terribly wrong in the future, is there any way to prevent at least one of the pool members from being disabled by the health checks using an IRule? or if not, what are other options for redundancy? Like redirect traffic to another pool if there are no more members available? Thanks in advance
4 Replies
- Kevin_Stewart
Employee
That's an interesting question. Are you simply worried that a monitor will fail but that the application still works? Strictly speaking, I believe the monitor is as important as the load balancing functionality itself. In fact, I often refer to monitors as "the forgotten API" because of the shear flexibility that they give you. A well-built monitor should reflect, as closely as possible, the systemic functionality of the application that it, well, monitors. So that if a monitor fails an application pool member, there's a darn good reason for it.
As far as what to do if all of the pool members fail (I mean actually fail), then there are, figuratively speaking, tons of options. Just off the top of my head, you can:
-
Redirect users to an alternate site
-
Send traffic to an alternate pool
-
Display a maintenance page
-
Send email alerts to an admin that the problem exists
-
Attempt to restart the web services or other system tasks remotely
-
Use a global server load balancing device like GTM to send users to an alternate datacenter
-
- Alexandru_Atudo
Nimbostratus
Not my direct worries. Managers worriy that the monitor will fail and the application will still work. I have setup Irules for maintenance site display if poolmembers go to 0 and redirect to alternate site. I also have sitescope monitors running the exact same checks as the F5 so if something is wrong there will be an alert. How would I go about creating an IRule to send traffic to a different pool? And can the pool contain the same members, just without the health checks enabled? Thanks
- Kevin_Stewart
Employee
How would I go about creating an IRule to send traffic to a different pool? And can the pool contain the same members, just without the health checks enabled?
Something like this:
when HTTP_REQUEST { if { [active_members app_pool] < 1 } { if { not ( [active_members backup_poo] < 1 ) } { pool backup_pool } else { send maintenance page? } } }So let's say you have two pools: app_pool and backup_pool with the same members but different monitors - the full monitors on the app_pool and a simple ping or TCP monitor on the backup_pool. If the monitor on the app_pool fails all of the members, and if the monitor on the backup_pool hasn't failed all of its members, send to the backup_pool. Otherwise there's something terribly wrong and you should probably respond with a maintenance page.
- Alexandru_Atudo
Nimbostratus
Thanks Kevin, this is what I was looking for.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)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