Forum Discussion

dj_22414's avatar
dj_22414
Icon for Nimbostratus rankNimbostratus
Aug 11, 2009

Issue wrt HTTP Monitor

Hi,

 

We have f5 HTTP monitor set to ping particular apache (2.2.*) http server to see if it is up and running.

 

I am attaching jpg to show the current configuration.

 

 

The issue is, if f5 sends the http request as shown in the config, I get "bad headers" error on the apache side (4xx response), but if I try to send same string manually (using telnet 80), the server does accept the request, and sends right response.

 

 

To verify if f5 is sending anything else in the request, I replaced my server with echo server to print the data on port 80, and data looked fine with no extra data, but even then apache keeps returning 4xx to pings from f5.

 

Any idea on how to resolve this issue?

 

 

Regards,

 

dj

5 Replies

  • What is the full send string you're using? Can you try an HTTP 1.1 formatted send string like this:

     

     

    GET /pingme/return.html\r\nHost: \r\nConnection: Close\r\n

     

     

    Depending on which LTM version you are running, the monitoring daemon, bigd, appends one or two \r\n to the end of the send string. You can use tcpdump to check which it is. A valid HTTP GET should have two trailing CRLFs (\r\n's).

     

     

    You should always configure a receive string for HTTP(S) monitors. Else, bigd will accept any response--in effect the HTTP monitor becomes just a TCP connection test.

     

     

    Here is a recent post which has some tips for configuring an HTTP 1.1 formatted send string and debugging any issues:

     

     

    Failing Monitors

     

    http://devcentral.f5.com/Default.aspx?tabid=53&view=topic&postid=33381&ptarget=33384

     

     

    Aaron
  • Thanks Aron for the response.

     

     

    I will certainly try the new string you provided. I did have receive string configured, but since I was always getting 4xx, and receive string match failed, f5 was marking the server as down.

     

     

    I will get back with the results of new test.

     

     

     

     

    Regards,

     

    dhananjay.
  • Thanks a lot Aaron.

     

    Your suggestion worked really well.

     

     

    The new send string is:

     

     

    GET /pingme/return.html HTTP/1.1\r\nHost: xxx\r\nConnection: Close\r\n

     

     

     

    Regards,

     

    Dhananjay.
  • Great. Just make sure to use a receive string found in a successful response.

     

     

    Aaron
  • Thanks Aaron.

     

    Yes, I do have receive string set now to make sure I am getting expected response.

     

     

    Regards,

     

    Dhananjay.