What does a Health Check do; what happens if I don't assign one?
Short answer
Health Check checks the Backend Service at the Period interval in the profile: it removes a server that fails Required Failures times in a row from traffic and takes it back into traffic once it succeeds Required Successes times in a row. If a health check is not assigned, TR7 cannot tell that the server is down: traffic is also sent to the down server, and on HTTP and L7 TCP vServices the Backup Service takes effect only while the main servers are in Maintenance Mode (Backup Service and Maintenance Mode are not applied on a Network vService). For such a Backend Service, a dark gray power icon (Off) appears in the Health column of the Backend Services list.
How Does It Work?
- A Health Checks profile is assigned to the Backend Service (or to the Backend Group) (e.g. an HTTP request to the
/healthaddress). - TR7 repeats the check at the Period interval in the profile; each check must complete within the Timeout duration.
- When the profile is newly assigned, the status becomes Preparing (yellow); during this time the Backend Service does not receive traffic.
- After Required Failures consecutive failures, the status becomes Error (red) and the Backend Service does not receive new traffic.
- After Required Successes consecutive successes, the status becomes OK (green) and the Backend Service returns to traffic.
Details: Health status transitions.
What Happens If It Is Not Assigned?
| vService type | Backend Service with no health check assigned |
|---|---|
| HTTP, L7 TCP | Never considered disabled; requests are also sent to the down server |
| Network (TCP - L4, UDP - L4; Port Range off) | Always considered reachable |
| Network (ANY - L3 or Port Range on) | Even if a health check is assigned, distribution does not take the health status into account |
- Backup service: On HTTP and L7 TCP vServices, since the main servers are never considered disabled, the backup server receives traffic only when the main servers are put into Maintenance Mode; Backup Service and Maintenance Mode are not applied on a Network vService.
- View: In the Health column of the Backend Services list, a dark gray power icon (Off) appears, and No Check is written in the Health Check Type column.
In TR7
- Profile: Load Balancer → Profiles → Health Checks → Add (How to add?).
- Assignment: The Health Check field in the Backend Service or Backend Group edit form; the default value is No check (Assigning to a Backend Service).
- Shared result: The health status of a Backend Service is shared by all the vServices in which it is used; a change made in the profile affects all the Backend Services that use the profile.
- Monitoring: The Health status indicator in the Backend Services list, the Health Check card on the Dashboard, and the Health Checks tab that keeps the result history.
- Cluster: Each TR7 device performs the check itself; the indicator has two semicircles, and each half shows the status seen by one device. Profile and assignment changes are transferred to the peer device automatically by default; if Manual Sync Mode is on, they stay only on the device where the change was made until they are sent with Synchronize.
Common Misconceptions
- "When the server goes down, TR7 notices it on its own." If no health check is assigned, it does not notice; traffic continues to be sent to the server.
- "The backup service also works without a health check." On HTTP and L7 TCP vServices, since the main servers are not considered disabled, the backup takes effect only in Maintenance mode; Backup Service is not applied on a Network vService.
- "If the port is open, the server is healthy." A TCP check only verifies that the port accepts connections; for an application failure, an HTTP check and a content check are required (What is the difference between a TCP port check and an HTTP check; which should I choose?).
How it is done in the documentation
