Skip to content

Commit 771e7df

Browse files
committed
updated tutorial
1 parent a7880a4 commit 771e7df

File tree

1 file changed

+28
-29
lines changed

1 file changed

+28
-29
lines changed

articles/load-balancer/load-balancer-custom-probe-overview.md

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ ms.custom: template-concept, engagement-fy23
1212

1313
# Azure Load Balancer health probes
1414

15-
An Azure Load Balancer health probe is a feature that detects the health status of your application instances. It sends a request to the instances to check if they're available and responding to requests. The health probe can be configured to use different protocols such as TCP, HTTP, or HTTPS. It's an important feature because it helps you to detect application failures, manage load, and plan for downtime.
15+
An Azure Load Balancer health probe is a feature that detects the health status of your application instances. It sends a request to the instances to check if they are available and responding to requests. The health probe can be configured to use different protocols such as TCP, HTTP, or HTTPS. It is an important feature because it helps you to detect application failures, manage load, and plan for downtime.
1616

1717
Azure Load Balancer rules require a health probe to detect the endpoint status. The configuration of the health probe and probe responses determines which backend pool instances receive new connections. Use health probes to detect the failure of an application. Generate a custom response to a health probe. Use the health probe for flow control to manage load or planned downtime. When a health probe fails, the load balancer stops sending new connections to the respective unhealthy instance. Outbound connectivity isn't affected, only inbound.
1818

1919
## Probe protocols
2020

2121
Health probes support multiple protocols. The availability of a specific health probe protocol varies by Load Balancer SKU. Additionally, the behavior of the service varies by Load Balancer SKU as shown in this table:
2222

23-
| | **Standard SKU** | **Basic SKU** |
23+
| | Standard SKU | Basic SKU |
2424
| --- | --- | --- |
2525
| **[Probe protocol](#probe-protocol)** | TCP, HTTP, HTTPS | TCP, HTTP |
2626
| **[Probe down behavior](#probe-down-behavior)** | All probes down, all TCP flows continue. | All probes down, all TCP flows expire. |
@@ -29,53 +29,52 @@ Health probes support multiple protocols. The availability of a specific health
2929

3030
Health probes have the following properties:
3131

32-
| **Health Probe property name** | **Details** |
32+
| Health Probe property name | Details|
3333
| --- | --- |
34-
| Name | Name of the health probe. This is a name you get to define for your health probe. |
35-
| Protocol | Protocol of health probe. This is the protocol type you would like the health probe to use. Options are: TCP, HTTP, HTTPS. |
36-
| Port | Port of the health probe. The destination port you would like the health probe to use when it connects to the virtual machine to check its health. |
37-
| Interval (seconds) | Interval of health probe. The amount of time (in seconds) between different probes on two consecutive health check attempts to the virtual machine. |
38-
| Used by | The list of load balancer rules using this specific health probe. You should have at least one rule using the health probe for it to be effective. |
34+
| Name | Name of the health probe. This is a name you get to define for your health probe |
35+
| Protocol | Protocol of health probe. This is the protocol type you would like the health probe to use. Options are: TCP, HTTP, HTTPS |
36+
| Port | Port of the health probe. The destination port you would like the health probe to use when it connects to the virtual machine to check its health |
37+
| Interval (seconds) | Interval of health probe. The amount of time (in seconds) between different probes on two consecutive health check attempts to the virtual machine |
38+
| Used by | The list of load balancer rules using this specific health probe. You should have at least one rule using the health probe for it to be effective |
3939

4040
## Probe configuration
4141

4242
Health probe configuration consists of the following elements:
4343

44-
| **Health Probe configuration** | **Details** |
44+
| Health Probe configuration | Details |
4545
| --- | --- |
46-
| Protocol | Protocol of health probe. This is the protocol type you would like the health probe to use. Available options are: TCP, HTTP, HTTPS. |
46+
| Protocol | Protocol of health probe. This is the protocol type you would like the health probe to use. Available options are: TCP, HTTP, HTTPS |
4747
| Port | Port of the health probe. The destination port you would like the health probe to use when it connects to the virtual machine to check the virtual machine's health status. You must ensure that the virtual machine is also listening on this port (that is, the port is open). |
48-
| Interval | Interval of health probe. The amount of time (in seconds) between consecutive health check attempts to the virtual machine. |
48+
| Interval | Interval of health probe. The amount of time (in seconds) between consecutive health check attempts to the virtual machine |
4949

5050
## Probe protocol
5151

5252
The protocol used by the health probe can be configured to one of the following options: TCP, HTTP, HTTPS.
5353

54-
| **Scenario** | **TCP probe** | **HTTP/HTTPS probe** |
54+
| Scenario | TCP probe | HTTP/HTTPS probe |
5555
| --- | --- | --- |
56-
| Overview | TCP probes initiate a connection by performing a three-way open TCP handshake with the defined port. TCP probes terminate a connection with a four-way close TCP handshake. | HTTP and HTTPS issue an HTTP GET with the specified path. Both of these probes support relative paths for the HTTP GET. HTTPS probes are the same as HTTP probes with the addition of a Transport Layer Security (TLS). HTTP / HTTPS probes can be useful to implement your own logic to remove instances from load balancer if the probe port is also the listener for the service. |
57-
| Probe failure behavior | A TCP probe fails when:</br>- The TCP listener on the instance doesn't respond at all during the timeout period. A probe is marked down based on the number of timed-out probe requests, which were configured to go unanswered before marking down the probe.</br>- The probe receives a TCP reset from the instance. | An HTTP/HTTPS probe fails when:</br>- Probe endpoint returns an HTTP response code other than 200 (for example, 403, 404, or 500). </br>- Probe endpoint doesn't respond at all during the minimum of the probe interval and 30-second timeout period. Multiple probe requests can go unanswered before the probe gets marked as not running and until the sum of all timeout intervals is reached.</br>- Probe endpoint closes the connection via a TCP reset.
58-
| Probe up behavior | TCP health probes are considered healthy and mark the backend endpoint as healthy when:</br>- The health probe is successful once after the VM boots.</br>- Any backend endpoint that achieves a healthy state is eligible for receiving new flows. | The health probe is marked up when the instance responds with an HTTP status 200 within the timeout period. HTTP/HTTPS health probes are considered healthy and mark the backend endpoint as healthy when:</br>- The health probe is successful once after the VM boots.</br>- Any backend endpoint that achieves a healthy state is eligible for receiving new flows.
56+
| Overview | TCP probes initiate a connection by performing a three-way open TCP handshake with the defined port. TCP probes terminate a connection with a four-way close TCP handshake. | HTTP and HTTPS issue an HTTP GET with the specified path. Both of these probes support relative paths for the HTTP GET. HTTPS probes are the same as HTTP probes with the addition of a Transport Layer Security (TLS). HTTP / HTTPS probes can be useful to implement your own logic to remove instances from load balancer if the probe port is also the listener for the service. |
57+
| Probe failure behavior | A TCP probe fails when: 1. The TCP listener on the instance doesn't respond at all during the timeout period. A probe is marked down based on the number of timed-out probe requests, which were configured to go unanswered before marking down the probe. 2. The probe receives a TCP reset from the instance. | An HTTP/HTTPS probe fails when: 1. Probe endpoint returns an HTTP response code other than 200 (for example, 403, 404, or 500). 2. Probe endpoint doesn't respond at all during the minimum of the probe interval and 30-second timeout period. Multiple probe requests might go unanswered before the probe gets marked as not running and until the sum of all timeout intervals has been reached. 3. Probe endpoint closes the connection via a TCP reset.
58+
| Probe up behavior | TCP health probes are considered healthy and mark the backend endpoint as healthy when: 1. The health probe is successful once after the VM boots. 2. Any backend endpoint that has achieved a healthy state is eligible for receiving new flows. | The health probe is marked up when the instance responds with an HTTP status 200 within the timeout period. HTTP/HTTPS health probes are considered healthy and mark the backend endpoint as healthy when: 1. The health probe is successful once after the VM boots. 2. Any backend endpoint that has achieved a healthy state is eligible for receiving new flows.
5959

6060
> [!NOTE]
6161
> The HTTPS probe requires the use of certificates based that have a minimum signature hash of SHA256 in the entire chain.
6262
6363
## Probe down behavior
64-
65-
| **Scenario** | **TCP connections** | **UDP datagrams** |
64+
| Scenario | TCP connections | UDP datagrams |
6665
| --- | --- | --- |
6766
| Single instance probes down | New TCP connections succeed to remaining healthy backend endpoint. Established TCP connections to this backend endpoint continue. | Existing UDP flows move to another healthy instance in the backend pool.|
68-
| All instances probe down | No new flows are sent to the backend pool. Standard Load Balancer allows established TCP flows to continue given that a backend pool has more than one backend instance. Basic Load Balancer terminates all existing TCP flows to the backend pool. | All existing UDP flows terminate. |
67+
| All instances probe down | No new flows are sent to the backend pool. Standard Load Balancer allows established TCP flows to continue given that a backend pool has more than one backend instance. Basic Load Balancer terminates all existing TCP flows to the backend pool. | All existing UDP flows terminate. |
6968

7069
## Probe interval & timeout
7170

7271
The interval value determines how frequently the health probe checks for a response from your backend pool instances. If the health probe fails, your backend pool instances are immediately marked as unhealthy. If the health probe succeeds on the next healthy probe up, Azure Load Balancer marks your backend pool instances as healthy. The health probe attempts to check the configured health probe port every 5 seconds by default in the Azure portal, but can be explicitly set to another value.
7372

7473
In order to ensure a timely response is received, HTTP/S health probes have built-in timeouts. The following are the timeout durations for TCP and HTTP/S probes:
75-
- TCP probe timeout duration: N/A (probes will fail once the configured probe interval duration passes and the next probe is sent)
76-
- HTTP/S probe timeout duration: 30 seconds
74+
* TCP probe timeout duration: N/A (probes will fail once the configured probe interval duration has passed and the next probe has been sent)
75+
* HTTP/S probe timeout duration: 30 seconds
7776

78-
For HTTP/S probes, if the configured interval is longer than the above timeout period, the health probe will timeout and fail if no response is received during the timeout period. For example, if an HTTP health probe is configured with a probe interval of 120 seconds (every 2 minutes), and no probe response is received within the first 30 seconds, the probe reaches its timeout period and fail. When the configured interval is shorter than the above timeout period, the health probe will fail if no response is received before the configured interval period completes and the next probe will be sent immediately.
77+
For HTTP/S probes, if the configured interval is longer than the above timeout period, the health probe will timeout and fail if no response is received during the timeout period. For example, if an HTTP health probe is configured with a probe interval of 120 seconds (every 2 minutes), and no probe response is received within the first 30 seconds, the probe will have reached its timeout period and fail. When the configured interval is shorter than the above timeout period, the health probe will fail if no response is received before the configured interval period completes and the next probe will be sent immediately.
7978

8079
## Design guidance
8180

@@ -91,7 +90,7 @@ For HTTP/S probes, if the configured interval is longer than the above timeout p
9190

9291
* If you have multiple interfaces configured in your virtual machine, ensure you respond to the probe on the interface you received it on. You may need to source network address translate this address in the VM on a per interface basis.
9392

94-
* Note that a probe definition isn't mandatory or checked for when using Azure PowerShell, Azure CLI, Azure Resource Manager templates, or API calls. Probe validation tests are only done when using the Azure portal.
93+
* Note that a probe definition isn't mandatory or checked for when using Azure PowerShell, Azure CLI, Templates or API. Probe validation tests are only done when using the Azure portal.
9594

9695
* If the health probe fluctuates, the load balancer waits longer before it puts the backend endpoint back in the healthy state. This extra wait time protects the user and the infrastructure and is an intentional policy.
9796

@@ -101,9 +100,9 @@ For HTTP/S probes, if the configured interval is longer than the above timeout p
101100

102101
* To test a health probe failure or mark down an individual instance, use a [network security group](../virtual-network/network-security-groups-overview.md) to explicitly block the health probe. Create an NSG rule to block the destination port or [source IP](#probe-source-ip-address) to simulate the failure of a probe.
103102

104-
* Unlike load balancing rules, inbound NAT rules don't need a health probe attached to it.
103+
* Unlike load balancing rules, inbound NAT rules do not need a health probe attached to it.
105104

106-
* It isn't recommended to block the Azure Load Balancer health probe IP or port with NSG rules. This is an unsupported scenario and can cause the NSG rules to take delayed effect, resulting in the health probes to inaccurately represent the availability of your backend instances.
105+
* It is not recommended to block the Azure Load Balancer health probe IP or port with NSG rules. This is an unsupported scenario and can cause the NSG rules to take delayed effect, resulting in the health probes to inaccurately represent the availability of your backend instances.
107106

108107
## Monitoring
109108

@@ -113,23 +112,23 @@ For HTTP/S probes, if the configured interval is longer than the above timeout p
113112

114113
For Azure Load Balancer's health probe to mark up your instance, you **must** allow 168.63.129.16 IP address in any Azure [network security groups](../virtual-network/network-security-groups-overview.md) and local firewall policies. The **AzureLoadBalancer** service tag identifies this source IP address in your [network security groups](../virtual-network/network-security-groups-overview.md) and permits health probe traffic by default. You can learn more about this IP [here](../virtual-network/what-is-ip-address-168-63-129-16.md).
115114

116-
If you don't allow the [source IP](#probe-source-ip-address) of the probe in your firewall policies, the health probe fails as it is unable to reach your instance. In turn, Azure Load Balancer marks your instance as *down* due to the health probe failure. This misconfiguration can cause your load balanced application scenario to fail. All IPv4 Load Balancer health probes originate from the IP address 168.63.129.16 as their source. IPv6 probes use a link-local address (fe80::1234:5678:9abc) as their source. For a dual-stack Azure Load Balancer, you must [configure a Network Security Group](./virtual-network-ipv4-ipv6-dual-stack-standard-load-balancer-cli.md#create-a-network-security-group-rule-for-inbound-and-outbound-connections) for the IPv6 health probe to function.
115+
If you don't allow the [source IP](#probe-source-ip-address) of the probe in your firewall policies, the health probe fails as it is unable to reach your instance. In turn, Azure Load Balancer marks your instance as *down* due to the health probe failure. This misconfiguration can cause your load balanced application scenario to fail. All IPv4 Load Balancer health probes originate from the IP address 168.63.129.16 as their source. IPv6 probes use a link-local address (fe80::1234:5678:9abc) as their source. For a dual-stack Azure Load Balancer, you must [configure a Network Security Group](./virtual-network-ipv4-ipv6-dual-stack-standard-load-balancer-cli.md#create-a-network-security-group-rule-for-inbound-and-outbound-connections) for the IPv6 health probe to function.
117116

118117
## Limitations
119118

120-
* HTTPS probes don't support mutual authentication with a client certificate.
119+
* HTTPS probes doesn't support mutual authentication with a client certificate.
121120

122-
* HTTP probes don't support using hostnames to probe backends.
121+
* HTTP probes doesn't support using hostnames to probes backends
123122

124123
* Enabling TCP timestamps can cause throttling or other performance issues, which can then cause health probes to timeout.
125124

126125
* A Basic SKU load balancer health probe isn't supported with a virtual machine scale set.
127126

128-
* HTTP probes don't support probing on the following ports due to security concerns: 19, 21, 25, 70, 110, 119, 143, 220, 993.
127+
* HTTP probes doesn't support probing on the following ports due to security concerns: 19, 21, 25, 70, 110, 119, 143, 220, 993.
129128

130129
## Next steps
131130

132131
- Learn more about [Standard Load Balancer](./load-balancer-overview.md)
133132
- Learn [how to manage health probes](../load-balancer/manage-probes-how-to.md)
134133
- [Get started creating a public load balancer in Resource Manager by using PowerShell](quickstart-load-balancer-standard-public-powershell.md)
135-
- [REST API for health probes](/rest/api/load-balancer/loadbalancerprobes/)
134+
- [REST API for health probes](/rest/api/load-balancer/loadbalancerprobes/)

0 commit comments

Comments
 (0)