Forum Discussion

Deepu_kumar's avatar
Deepu_kumar
Icon for Nimbostratus rankNimbostratus
Nov 16, 2020

Customize monitoring

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 “uid@domain.exi.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.

    // Giorgi

    • Deepu_kumar's avatar
      Deepu_kumar
      Icon for Nimbostratus rankNimbostratus

      When I used "curl -Ik URL" command. I m getting - http/1.1 401 unauthorised output.

      In this case what I need do..?

      • Giorgi_Gujabidz's avatar
        Giorgi_Gujabidz
        Icon for Cirrus rankCirrus

        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.