Learn F5 Technologies, Get Answers & Share Community Solutions Join DevCentral

Filter by:
  • Solution
  • Technology
Answers

Sharepoint health monitors

Hey Everyone,

I am currently load balancing two servers in my SharePoint setup. I am currently using the default "http" health monitor. Sometimes in the morning, one of the servers goes into an error and responds back with a 503 error. The F5 still sees the server as up and 50% of the people get the error page.

I am looking for a health monitor that checks the ICMP of the server and also checks to see is the server responds back with a 503 error. If the server responds back with a 503 error I need the F5 not to send traffic to the server. In a perfect world I would also love to receive an email when this server shows a 503 response.

I don't play with health monitors too often and was wondering if anyone out there could help me out. Cheers!

0
Rate this Question

Answers to this Question

placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

Please configure custom monitor[Send & Receive String] to check the status of share point page. iApp is good option to receive mail alert...

Go through these link --> Custom Monitor

Dev central has many article.. Please go through..

0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

Hi

HTTP health monitor should be co-work with BIGIP & your server.

BIGIPs HTTP monitor check file using 'GET' and Servers Response.

and server should have that file.

In normal case, server should send 200 ok

this is sample

ltm monitor http /Common/M-10.10.10.10-HTTP-80 { defaults-from /Common/http destination 10.10.10.10:80 interval 5 ip-dscp 0 recv 200 send "GET /test.html HTTP/1.1\r\n connection : close \r\n\r\n" time-until-up 0 timeout 11 }

BIGIP check /test.html and server have file based on WEB-home-directory not linux.

And additionally, using Pool`s action-on-service-down -> reject is good way to prevent issue.

0
Comments on this Answer
Comment made 1 week ago by Rosieodonell 364

So if I use this code in the monitor response:

HTTP/1\.[01] [23]0[0-6]

will this cover my needs? I think this will accept all traffic except anything with 500-503 code.

0
Comment made 1 week ago by swjo 283

Hi

Then not using "Receive String" but "Receive Disable String"

Receive String > blank Receive Disable String > 503

From now I`m not using Receive Disable String but it would be work.

before work, please be test and apply.

1
Comment made 1 week ago by swjo 283

And I think you should using multiple HTTP monitor.

Monitor_500 Receive Disable String > 500 Monitor_501 Receive Disable String > 501 Monitor_502 Receive Disable String > 502 Monitor_503 Receive Disable String > 503

Pool using those 4 monitor and Availability Requirement > all

0
Comment made 1 week ago by Rosieodonell 364

I will test later this week thanks for the info!

0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

If you're looking specifically for the 503 only, then putting your receive response in the receive disable box for the monitor should work

HTTP/1\.(0|1) (503)

I normally look for one of these status codes - 200, 301, 302 for my http monitors. Generally if I get a response of anything other than these - there's an issue with the web application.

HTTP/1\.(0|1) (200|301|302)

I'm not sure if you are targeting a specific page in your send string, but I highly recommend it. It'll make the monitor a bit more efficient.

0
Comments on this Answer
Comment made 1 week ago by Rosieodonell 364

So R.Hickman, if I put the following code in my response then this should shutdown the server with any other response correct?

HTTP/1\.(0|1) (200|301|302)

0
Comment made 6 days ago by R. Hickman 28

Yes - that's correct. If the F5 does not receive a 200, 301, or 302 from the pool member, it will mark the health check as failed.

0
placeholder+image
USER ACCEPTED ANSWER & F5 ACCEPTED ANSWER

Hi,

The simple way is you have to agree with the owner application that give you an URI to check (without authentication). Of course the response of your monitro request will be statick.

you will have no other answer than "200 OK"

More you can set in Monitor settings "Receive Disable String" to "503"

I think your request was misunderstood, the monitor can respond 200 OK and the user have a 503 error, independent of the monitor.

URL asked by user is different to this used in the monitor. so potentially the user may have problems that are not perceived by the monitoring url.

So what I advise you is to create a maintenance page that Trigg this kind of response 50* and display a message to user and notify you trough an email.

I hope you understood what I meant

0
Comments on this Answer
Comment made 1 week ago by Rosieodonell 364

My node is looking down when I put in the following info:

scenario 1:

Send String:        GET / HTTP/1.1\r\nHost: domain.com\r\nConnection: Close\r\n\r\n
Receive String:     HTTP/1\.(0|1) (200|301|302)
Receive Disable String: 503

scenario 2:

Send String:        GET / HTTP/1.1\r\nHost: domain.com\r\nConnection: Close\r\n\r\n
Receive String:     HTTP/1\.(0|1) (200|301|302)
Receive Disable String: HTTP/1\.(0|1) (503)

It won't let me leave the Receive string blank. Both members in the pool show as down. Right now my webserver team has the application pool turned off on the second server.

0
Comment made 6 days ago by youssef 1167

Hi,

Did you check your Monitor Query? before implementing it.

It's easy and I advise you to follow this step in order to deploy a reliable monitor

  • connect in cli on F5.
  • enter the following command:

curl -i -k https://backend-node-IP -H "Host: app.domain.com"

  • You will receive an response from the server.

and this response can be user in order to built your "Receive string".

SO First check your query then built your monitor.

And As I told you, your monitor is static so you have to receive just one response an not 3, i'am talking about (Receive String: HTTP/1.(0|1) (200|301|302))...

Normaly you have to have just one 200 or 301 or 302...

Keep me in touch..

Regards

0
Comment made 6 days ago by Rosieodonell 364

When you use the term "backend-node-ip" is that the ip of one of the servers in the pool?

0
Comment made 6 days ago by youssef 1167

Yes exactly is the backend ip (pool memeber) you will find in in the pool.

0