cancel
Showing results for 
Search instead for 
Did you mean: 

HTTP Health Monitor in Receive Strings with Regular Expressions

ahmetnuman
Nimbostratus
Nimbostratus

Hello Community,

 

I need to monitor http servers with regular expressions in the http receive strings. If receive string exact match with "Healthy" word then F5 send the requests to the servers.

 

list ltm monitor http Healthy

{

   adaptive disabled

   defaults-from http

   destination 10.0.1.20:http

   interval 5

   ip-dscp 0

   recv \bHealthy\b

   recv-disable none

   send "GET / HTTP/1.1\r\nHost: 10.0.1.20\r\nConnection: Close\r\n\r\n"

   time-until-up 0

   timeout 16

}

 

Server up and running and regex is fine but pool members are down.

 

I need some help in this topic.

 

Thank You / Best Regards

 

 

5 REPLIES 5

Hi Ahmet,

 

You can use Healthy for one string. You don't need regular expression.

Node and pool have separate monitors?

Can you check the response returned from the default directory on the server via curl?

curl -kv "http://10.0.1.20"

If the receive string is not in first 5120 bytes, the pool member is marked down.

 

Using regular expressions in a health monitor receive string

https://support.f5.com/csp/article/K5917

Content length limits for HTTP and HTTPS health monitors

https://support.f5.com/csp/article/K3451

 

Hi Enes,

 

I have to use regex in receive string because, when service is not ready server is returning "Unhealty" string to the client. If i use just string in the receive string, LTM will see "healty" in the response, then pool member will be up.

 

Best regards.

Hi Again ,

 

I solve this problem with creating two monitor and assign them pool with "Availability Requirement At least 2 Health Monitor(s)".

 

Firs monitor condition is :

Receive String : Unhealth

Reverse : Yes

 

Second monitor condition is:

Receive String : Health

 

Best Regards.

JRahm
Community Manager
Community Manager

regex in iRules and monitors are slightly modified, and the \b might not be doing what you think it should. Details on monitor regex here. You can also see what is happening by logging the debug details of the monitor:

 

tmsh modify sys db bigd.debug value enable

Just make sure that you disable when you have what you need.

Hello Jason,

 

I solved my problem using with two health monitor as i mention upper. Unfourtunately regex did not work properly as i expected.

 

Best Regards.