1) For the respective environment of four servers, query each of the four servers https://[SERVER_NAME]/abc/authenticated.aspx for a valid response. Any invalid response means that the server must be marked as “unhealthy” and traffic must not be routed to it.
a. A VALID response is as such. The Userid is in the format of “DOMAIN\uid”. The UserPrincipalName fields are in the format “email@example.com”
b. An INVALID response is as follows “Server Error in ‘/ABC’ Application”
c. This is also another example of an INVALID response. The UserPrincipalName (original) and UserPrincipalName (transformed) values equate to “System.Byte”
Hi Deepu Kumar,
The easiest why to create custom monitor, is to actually browse an application and inspect the traffic (requset/response) via the developer tools which has any modern browser, or you can do the same via CLI using curl utility.
For example in Firefox (which I generally use), you have to open Web Developer Tool (Ctrl+Shift+I), then you have to switch to Console tab, Filter the Requests and analyze requests/responses, but in raw format, to see how actually browser sends request and what it actually gets from web-server before interpreting it to you visually. It gives you more visibility and clue how to write your own custom monitor.
I can just hint you, in your case, that you can create https monitor, where in send string, you can put something like this:
GET /abc/authenticated.aspx HTTP/1.1\r\nHost: yourserver.example.com\r\nConnection: close\r\n
In the Receive String, you can write exact response string, or just regular expression which the system will try to search in response body.
That's it, you don't have to configure invalid response, as if the response will not match valid response, it'll automatically marked like invalid and that pool member will be set as unhealthy.
If you have 4 different web applications, then you have to create 4 different monitors for each.
Hope that helps.
The response says that the resource you're requesting is protected by some authentication mechanism. So you can use curl -u (or --user) switch to check it. You can take a look at this simple curl tutorial: https://curl.se/docs/manual.html
As for the health monitor, you can make authentication by f5 health monitors, as there are username and password fields in https health monitor template.