Forum Discussion

coda6_52611's avatar
coda6_52611
Icon for Nimbostratus rankNimbostratus
Jun 13, 2014

HTTP Monitor not marking nodes down.

I have a monitor that has a send string of:

 

GET /Page.cfm HTTP/1.0\r\nConnection: Close\r\n\r\n

 

and a recieve string of:

 

HTTP/1.. (301|200|302|401|404)

 

It was my understanding that if the monitor was returned a response with anything but the codes from above it would mark the node down.

 

Apparently that's not happening, I've been receiving a response of 499 and the node is still marked up although users just get errors.

 

When I add a a recieve disable string of:

 

HTTP/1.. (499)

 

The LTM does send back a reject message.

 

Any thoughts as to what I'm missing?

 

Thanks.

 

7 Replies

  • I think that should work. Are you sure the server is sending a 499 back to the monitor? I noticed you are accepting a 401, maybe the health monitor always replies with 401, and you don't get the 499 until you authenticate?

     

  • Is adding just simple txt not an option? Create a simple HTML page with SERVER_IS_UP and use this in the receive string. Will this not address your requirement?

     

  • No, actually it won't. I have plenty of monitoring to tell me if the server is up and serving http. I use a Cold Fusion page to ensure that Cold Fusion is up and running, we've had issues where CF would crash but the monitors wouldn't care because IIS was still responding to http requests...

     

    The issue I am trying to resolve now is that we are getting errors on our servers that NetIQ is getting a 499 response for and I am trying to find a way to capture that response on our LTM and automatically mark the node down. As it is, NetIQ receives the error, or a customer reports the error, an operator has to manually check which server is effected, call the on call admin and have them remove the node. It takes time and we have no way of knowing how many customers it effects. NetIQ, until recently, wasn't testing the individual web servers just the vip for the web page.

     

  • I think your receive string is fine to match a 499, can you capture the response to your monitor request and see if the server is responding to the monitor request with a 499?

     

    My thought is maybe you need a more complete HTTP request to generate the same code you see with NetIQ.

     

  • dubdub's avatar
    dubdub
    Icon for Nimbostratus rankNimbostratus

    If you run curl (forcing HTTP/1.0 with the -0 option) from your command line, what do you see as the HTTP response code? i.e.

     

    curl http://domain.com -d"Page.cfm" -0 -i

     

    That may help identify what your monitor is seeing.

    • mimlo_61970's avatar
      mimlo_61970
      Icon for Cumulonimbus rankCumulonimbus
      Keep in mind curl will have more headers than the original monitor request does, accept, content-type, content-length and so on. I would still recommend capturing the response from the monitor. Or use telnet/openssl to connect to the server and manually input the request as it is defined in the monitor. If it doesn't respond properly to the monitor request but curl does, then you probably need to modify your request to include some header that curl is putting in.