Forum Discussion
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
- mimlo_61970
Cumulonimbus
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?
- Domai
Altostratus
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?
- coda6_52611
Nimbostratus
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.
- mimlo_61970
Cumulonimbus
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.
- coda6_52611
Nimbostratus
I'll set up a tcpdump and see what I see. Thanks for the advice.
- dubdub
Nimbostratus
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 -iThat may help identify what your monitor is seeing.
- mimlo_61970
Cumulonimbus
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.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com