Forum Discussion

ThirtyDayTrial's avatar
ThirtyDayTrial
Icon for Nimbostratus rankNimbostratus
Apr 14, 2022

Can a Health Monitor tell a server's 'ping' page about the F5's status?

Is it possible for the F5 to pass connection information to my ping.jsp page (the one that is currently configured for use by the F5's health monitor).

My ping page is currently able to tell the F5 "I'm up" or "I've been quiesced", please direct/drain traffic away from me to other members of the pool.

When I need to take down a pool instance for upgrade, I put it into quiesce mode (which the F5 picks up during health monitoring) and then it is necessary to check the F5 console for connection numbers to see whether the instance has been queisced and its connection count gone down to 0, so that it can safely be brought down.

Trouble is: I don't actually have access to the relevant F5 console and have to rely on some other 'gods' around the enterprise to do it for me...this can be troublesome/time consuming/paperwork intensive...

My thought/hope is: if the F5 could tell me the current stats when it polls me, then I could just check my instance and see “the F5 is telling me that no-one is using me now, so it is OK for me to ‘go away’”

No need for access to the F5…profit!

I have been reading dev/central and clouddocs...

External monitors: https://support.f5.com/csp/article/K71282813
LocalLB::Pool::get_member_statistics: https://clouddocs.f5.com/api/icontrol-soap/LocalLB__Pool__get_member_statistics.html

I THINK that I can develop an external monitor to do this.

I BELIEVE that something like LocalLB::Pool::get_member_statistics should help me get what I need from the F5.
This is available to Perl scripts? Even better, can I use python?
I think I can pull the return structure apart to get the up/down status and connection count for each pool member and then pass what I need as reqest parameters to a curl call that hits my ping page.

Is this correct?

Judging from other code snippets, this looks like a lot of fiddly work! Better to "Stand on the shoulders of Giants", if I can!

Has anyone tried to do this before?
Is there any code out there that could save me some effort?
Is there an equivalent (easier!?) REST api?

Pointers/thoughts gratefully received.

BOB