Documentation forSolarWinds Platform Self-Hosted

Recommendations for using a network load balancer for the SolarWinds Platform

This topic provides guidance on using third-party network load balancers with the SolarWinds Platform. These recommendations are not specific to any single load balancer vendor.

SolarWinds is not responsible for configuration or troubleshooting of customer load balancers. If issues arise in the use of load balancers, SolarWinds recommends that you reach out to your load balancer vendor.

Web server recommendations

Use the following connection settings for the SolarWinds Platform Web Console on the main polling engine and for Additional web servers.

Configuration Option Recommendation
Connection type protocol TCP
Connection method

Use the method you prefer. The most frequently used options are:

  • Round Robin
  • Least Connection

When you use a load balancer VIP with the main polling engine and Additional web servers as pool members, SolarWinds recommends a Weighted Round Robin/Weighted Least Connection approach. The main polling engine should have a lower weight than the Additional web servers. This is to route a higher percentage of traffic to the Additional web servers. The main polling engine handles numerous responsibilities, so reducing its load tends to improve performance. When several Additional web servers are deployed, most customers do not include the main polling engine as a pool member.

Sticky/persistent sessions

Enabled with Source IP

Recommendations for collection-based items (NetFlow, syslog, or SNMP traps)

Use the following connection settings for the SolarWinds Platform Web Console on the main polling engine and for Additional web servers.

Configuration option Recommendation
Connection type protocol

UDP

There are different port options required for each collection-based item. Configure your network load balancer accordingly.

  • UDP 2055 = NetFlow
  • UDP 514 = Syslog
  • UDP 162 = SNMP Traps
Connection method

Round Robin

Sticky/persistent sessions

Disabled.

Maintaining session state is not applicable to the UDP protocol.

General health checks

Load balancers use health checks to monitor the status of servers and services to ensure that traffic is only directed to servers that are working correctly. If a server fails a health check, the load balancer can automatically remove it from the service until the check passes again.

Basic check on TCP 17774

This port is used for the SolarWinds Information Service (SWIS). In SolarWinds Platform earlier than 2024.2, SWIS used port 17778.

When High Availability is used, the SWIS port is disabled on the Standby server.

Basic check on TCP 443/1777

  • TCP 443: Basic check for web-based collections to the SolarWinds Platform Web Console.
  • TCP 17774: Basic check for collection-based items (NetFlow, Syslog, SNMP Traps).

Advanced HTTPS/API Health check

Each SolarWinds server hosts the SolarWinds Information Service (SWIS). This service is the API endpoint and supports basic authentication.

You can query SWIS to extract detailed status info about each server and build the information into a load balancer health check. There is a KeepAlive entry that updates every 60 seconds if each SolarWinds server is able to connect to the database. This might provide a better view into server health than the TCP check.

Requirements

Your load balancer vendor must support variables in its health check configuration. If there is a hostname variable, replace the <hostname> text in the following example with the respective load balancer variable.

The variable is at the beginning and at the end of this example string.

Example HTTPS URL

https://<hostname>:17774/SolarWinds/InformationService/v3/Json/Query?query=SELECT+CASE+WHEN+s.PoolMember.PoolMemberType+LIKE+%27%25standby%25%27+THEN+%27Standby+mode%27+WHEN+s.SWAKeepAlive+%3e+ADDSECOND(-90%2cGETUTCDATE())+THEN+%27OK%27+ELSE+%27HEARTBEAT+FAILED%3a+Keepalive+not+detected+in+at+least+90+seconds%27+END+AS+%5bHealthCheck%5d+FROM+Orion.OrionServers+s+WHERE+s.HostName+%3d+%27<hostname>%27

The URL is an encoded SolarWinds query into the API to capture status and returns ‘OK’ or ‘HEARTBEAT FAILED…’. A failed Heartbeat is triggered if there is no KeepAlive updated after 90 seconds.

You can also run the query in the SolarWinds SDK/SWQL Studio.

SELECT CASE
        WHEN s.PoolMember.PoolMemberType LIKE '%standby%' THEN 'Standby mode'
        WHEN s.SWAKeepAlive > ADDSECOND(-90,GETUTCDATE()) THEN 'OK'
        ELSE 'HEARTBEAT FAILED: Keepalive not detected in at least 90 seconds'
        END AS [HealthCheck]
FROM Orion.OrionServers s
WHERE s.HostName = 'hostname' --Replace this with the hostname of your SolarWinds server