Configuring Load Balancer for Health Checkup

Consider a clustering environment working with two nodes where the Load Balancer sends request(s) to the WebRunner(s). In case, Kernel of any of the two nodes goes down, the Load Balancer keeps on sending the request to the WebRunner. This happens because Load Balancer does not interact with the Kernel resulting in the request failure from the node where Kernel is down.

 

One way to check the status of the Kernel and WebRunner in all the nodes is to setup the Health Check URL on the Load Balancer. The Load Balancer will check the URL at a particular interval of time and when any of the Kernel or WebRunner is down, it stops sending request to that particular node.

You have to set up the health checkup utility manually, only if you are using v6.5 Mnt1 or earlier. For v6.5 Mnt2 onward, health checkup is set up automatically with the upgrade.

To setup the health checkup, you need to configure both WebRunner and Load Balancer.

Configuring WebRunner

  1. Download and extract the zip file.

  2. From the extracted zip folder, copy com folder at the …/<AdeptiaInstallFolder>/AdeptiaServer/ServerKernel/customClasses.

  3. Go to …/<AdeptiaInstallFolder>/AdeptiaServer/ServerKernel/web/WEB-INF.
  4. Open web.xml and add the following code at the end of the file.

     

    <servlet>
            <servlet-name>Health Check REST Provider</servlet-name>
            <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
            <init-param>
                <param-name>jersey.config.server.provider.packages</param-name>
                <param-value>com.adeptia.api.rest.resources</param-value>
             </init-param>
             <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
               <servlet-name>Health Check REST Provider</servlet-name>
               <url-pattern>/healthcheck/*</url-pattern>
    </servlet-mapping>
  5. Save the file.
  6. Restart Kernel and WebRunner.
  7. Repeat the above steps for all nodes.

Configuring Load Balancer

Once you have configured WebRunner for all nodes, you need to configure Load Balancer for all nodes to process the request. To do so, configure your Load Balancer Health Checkup and type the URL in the below format:

<protocol_name>://<ip_address>:<port_number>/adeptia/healthcheck/kernel

where,

          <protocol_name> is the name of the protocol you are using. It could be HTTP or HTTPS.

          <ip_address> is the IP address of the WebRunner.

          <port_number> is the port number at which WebRunner is running. By default, it is 8080 for HTTP and 8443 for HTTPS.

For example, https://192.168.1.1:8443/adeptia/healthcheck/kernel

The configuration settings of Load Balancer may vary depending upon the Load Balancer you are using.

Following are the steps to configure Load Balancer on Amazon Web Services:

  1. Login to Amazon Web Services.
  2. Under Compute group, click EC2.



  3. Under Resources, click Load Balancers.
  4. Select the load balancer to configure the health check.
  5. Under Health Check tab, click Edit Health Check.
  6. Type /adeptia/healthcheck/kernel in the Ping Path text box.

    The Ping Protocol must be HTTP or HTTPS.