Forum Discussion

CraigM_17826's avatar
CraigM_17826
Icon for Altostratus rankAltostratus
Jan 20, 2010

Health monitor issue

Hi all,

 

 

we have a rather pressing and odd issue. Like most users I have setup health monitors to monitor the individual nodes within a pool. These health monitors used to work. Now at some unknown point this stopped. The reason why it is at some unknown point is that the health monitors are indicating nodes as being up when they are not. At the moment I am having to force the node down on the nodes that are down for maintenance. I am totally confused and alarmed at this behaviour. The health monitors in question are very basic monitors, they simply check for what is returned from a

 

 

get /wps/portal

 

 

and checks for the string

 

 

WebSphere Application Server

 

 

This used to work. I am totally at a loss as to why it's suddently stopped working. I can ping the physical servers from the BigIP units. Is there any command line tool on the BigIP to test monitors or any monitor debuging tool?

 

 

Sorry, forgot to mention, our units are running BIG-IP 9.4.7 Build 320.1 Final

 

 

We are in the planning to go to 10.x next week.

 

 

Regards

 

 

Craig

13 Replies

  • I was facing the same problem of getting a blue square status (i.e. unknown) when I configure my "GET" string as

     

    "GET /abc/def HTTP/1.0".

     

     

    The status is unknown because the request is incomplete. The server is still waiting for us to press twice like what we do when we telnet to the server. The solution to this problem for me is to configure the "GET" string as follows:

     

    "GET /abc/dev HTTP/1.0\r\n\r\n"

     

     

    Basically I'm telling the health monitor to press twice (a.k.a carriage return(\r) + new line(\n)). Hope that this solution works for you (no guarantee though).

     

     

    Cheers!
  • Depending on LTM version, the monitoring daemon, bigd, will automatically append one or two \r\n's to the send string before making the request to the pool member. This is described in SOL:

     

     

     

    SOL10655: Change in Behavior: CR/LF characters appended to the HTTP monitor Send string

     

    https://support.f5.com/kb/en-us/solutions/public/10000/600/sol10655.html

     

     

    In BIG-IP versions 9.4.x, 9.6.x, 10.0.x, and 10.1.x, the BIG-IP system automatically appends two CR/LF character sets to the HTTP monitor Send string. This was an intentional change meant to simplify the configuration of HTTP GET request monitors. However, as a result of this change, a POST request that includes a message body is sent with an extra trailing CR/LF character set, in violation of the HTTP 1.1 specification in RFC2616.

     

     

    Note: The HTTP specification requires an extra empty line (double CR/LF) after the headers, therefore terminating a typical GET request with the double CR/LF sequence results in a well-formed request. However, RFC2616 specifically prohibits a POST request from including extra CR/LF characters:

     

     

    Certain buggy HTTP/1.0 client implementations generate extra CRLF's after a POST request. To restate what is explicitly forbidden by the BNF, an HTTP/1.1 client MUST NOT preface or follow a request with an extra CRLF.

     

     

    In BIG-IP version 10.2.x, the BIG-IP system no longer automatically appends any CR/LF character set to the HTTP monitor Send string. This was an intentional change to accommodate custom monitors such as those which use the Send string to send a POST request with a message body.

     

     

     

    Aaron
  • Ran into similar issues recently during an upgrade from 9.4.5 to 10.2.0. Just make sure that your Monitors have \r\n\r\n at the end and not \r\n. Hope this helps someone in the future.