Sondes d’intégrité Load BalancerLoad Balancer health probes

Quand vous utilisez des règles d’équilibrage de charge avec Azure Load Balancer, vous devez spécifier des sondes d’intégrité pour permettre à Load Balancer de détecter l’état du point de terminaison back-end.When using load-balancing rules with Azure Load Balancer, you need to specify health probes to allow Load Balancer to detect the backend endpoint status. La configuration de la sonde d’intégrité et les réponses de la sonde déterminent quelles instances de pool de back-ends recevront de nouveaux flux.The configuration of the health probe and probe responses determine which backend pool instances will receive new flows. Vous pouvez utiliser des sondes d’intégrité pour détecter la défaillance d’une application sur un point de terminaison back-end.You can use health probes to detect the failure of an application on a backend endpoint. Vous pouvez également générer une réponse personnalisée pour une sonde d’intégrité, et utiliser celle-ci pour contrôler le flux de façon à gérer la charge ou les temps d’arrêt planifiés.You can also generate a custom response to a health probe and use the health probe for flow control to manage load or planned downtime. Lors de l’échec d’une sonde d’intégrité, Load Balancer cesse d’envoyer de nouveaux flux à l’instance non intègre concernée.When a health probe fails, Load Balancer will stop sending new flows to the respective unhealthy instance. La connectivité sortante n’est pas affectée, seule la connectivité entrante l’est.Outbound connectivity is not impacted, only inbound connectivity is impacted.

Les sondes d’intégrité prennent en charge plusieurs protocoles.Health probes support multiple protocols. La disponibilité d’un type spécifique de sonde d’intégrité varie en fonction de la référence SKU de Load Balancer.The availability of a specific health probe protocol varies by Load Balancer SKU. De plus, le comportement du service varie en fonction de la référence SKU de Load Balancer tel qu’indiqué dans le tableau suivant :Additionally, the behavior of the service varies by Load Balancer SKU as shown in this table:

Référence SKU standardStandard SKU Référence SKU De baseBasic SKU
Types de sondeProbe types TCP, HTTP, HTTPSTCP, HTTP, HTTPS TCP, HTTPTCP, HTTP
Comportement en cas de panne de sondeProbe down behavior Toutes les sondes sont en panne, tous les flux TCP continuent.All probes down, all TCP flows continue. Toutes les sondes sont en panne, tous les flux TCP arrivent à expiration.All probes down, all TCP flows expire.

Important

Consultez ce document dans son intégralité, y compris les conseils de conception importants fournis ci-dessous pour créer un service fiable.Review this document in its entirety, including important design guidance below to create a reliable service.

Important

Les sondes d’intégrité d’un équilibreur de charge proviennent de l’adresse IP 168.63.129.16 et ne doivent pas être bloquées pour pouvoir annoter votre instance.Load Balancer health probes originate from the IP address 168.63.129.16 and must not be blocked for probes to mark up your instance. Consultez adresse IP source de sonde pour plus d’informations.Review probe source IP address for details.

Configuration de sondeProbe configuration

La configuration de la sonde d’intégrité se compose des éléments suivants :Health probe configuration consists out of the following elements:

  • Durée de l’intervalle entre chaque sondeDuration of the interval between individual probes
  • Nombre de réponses de sondes devant être observées avant que la sonde bascule dans un autre étatNumber of probe responses which have to be observed before the probe transitions to a different state
  • Protocole de la sondeProtocol of the probe
  • Port de la sondePort of the probe
  • Chemin HTTP à utiliser pour HTTP GET lors de l’utilisation de sondes HTTP(S)HTTP path to use for HTTP GET when using HTTP(S) probes

Notes

La présence d’une définition de sonde n’est ni obligatoire ni vérifiée en cas d’utilisation d’Azure PowerShell, d’Azure CLI, de modèles ou d’une API.A probe definition is not mandatory or checked for when using Azure PowerShell, Azure CLI, Templates or API. Les tests de validation de la sonde ne sont effectués que si vous utilisez le Portail Azure.Probe validation tests are only done when using the Azure Portal.

Description du signal d’application, de la détection du signal et de la réaction de la plateformeUnderstanding application signal, detection of the signal, and reaction of the platform

Le nombre de réponses de sondes s’applique à la fois :The number of probe responses applies to both

  • Au nombre de sondes ayant réussi et qui permettent à une instance d’être étiquetée comme étant opérationnelle, etthe number of successful probes that allow an instance to be marked as up, and
  • Au nombre de sondes ayant échoué et qui permettent à une instance d’être étiquetée comme étant hors service.the number of failed probes that cause an instance to be marked as down.

Les valeurs de délai d’expiration et d’intervalle spécifiées déterminent si une instance sera marquée comme étant opérationnelle ou hors service.The timeout and interval values specified determine whether an instance will be marked as up or down. La durée de l’intervalle multipliée par le nombre de réponses de sondes détermine la durée pendant laquelle les réponses de sondes doivent être détectées.The duration of the interval multiplied by the number of probe responses determines the duration during which the probe responses have to be detected. Et le service réagira une fois les sondes requises obtenues.And the service will react after the required probes have been achieved.

Nous pouvons illustrer le comportement plus en détail avec un exemple.We can illustrate the behavior further with an example. Si vous avez défini le nombre de réponses de sondes sur deux et un intervalle de cinq secondes, cela signifie que deux échecs de sondes doivent être observés dans un intervalle de 10 secondes.If you have set the number of probe responses to 2 and the interval to 5 seconds, this means 2 probe failures must be observed within a 10 second interval. Étant donné que l’heure à laquelle une sonde est envoyée n’est pas synchronisée quand votre application peut changer d’état, nous pouvons limiter le temps de détection à deux scénarios :Because the time at which a probe is sent is not synchronized when your application may change state, we can bound the time to detect by two scenarios:

  1. Si votre application commence à produire une réponse de sonde défaillante juste avant l’arrivée de la première sonde, la détection de ces événements prend 10 secondes (deux intervalles de cinq secondes) plus la durée entre le moment où l’application commence à signaler un échec et le moment où la première sonde arrive.If your application starts producing a failing probe response just before the first probe arrives, the detection of these events will take 10 seconds (2 x 5 second intervals) plus the duration of the the application starting to signal a failure to when the the first probe arrives. Vous pouvez supposer que cette détection prend un peu plus de 10 secondes.You can assume this detection to take slightly over 10 seconds.
  2. Si votre application commence à produire une réponse de sonde défaillante juste après l’arrivée de la première sonde, la détection de ces événements ne commencera pas avant l’arrivée (et l’échec) de la sonde suivante plus 10 secondes supplémentaires (deux intervalles de cinq secondes.If your application starts producing a failing probe response just after the first probe arrives, the detection of these events will not begin until the next probe arrives (and fails) plus another 10 seconds (2 x 5 second intervals). Vous pouvez supposer que cette détection prend un peu moins de 15 secondes.You can assume this detection to take just under 15 seconds.

Pour cet exemple, une fois la détection effectuée, la plateforme prendra alors un peu de temps pour réagir à ce changement.For this example, once detection has occurred, the platform will then take a small amount of time to react to this change. Cela signifie qu’en fonction des facteurs suivants :This means a depending on

  1. Le moment où l’application commence à changer d’étatwhen the application begins changing state and
  2. Le moment où ce changement a été détecté et a répondu aux critères requis (nombre de sondes envoyées à l’intervalle spécifié)when this change is detected and met the required criteria (number of probes sent at the specified interval) and
  3. Le moment où la détection a été communiquée sur la plateformewhen the detection has been communicated across the platform

vous pouvez supposer que la réaction à une sonde défaillante prendra entre un minimum d’un peu plus de 10 secondes et un maximum d’un peu plus de 15 secondes pour réagir à un changement du signal de l’application.you can assume the reaction to a failing probe will take between a minimum of just over 10 seconds and a maximum of slightly over 15 seconds to react to a change in the signal from the application. Cet exemple est fourni afin d’illustrer ce qui se produit, mais il n’est pas possible de prévoir une durée exacte au-delà des valeurs approximatives illustrées ci-dessus.This example is provided to illustrate what is taking place, however, it is not possible to forecast an exact duration beyond the above rough guidance illustrated in this example.

Types de sondeProbe types

Le protocole utilisé par la sonde d’intégrité peut être configuré sur l’un des éléments suivants :The protocol used by the health probe can be configured to one of the following:

Les protocoles disponibles dépendent de la référence SKU Load Balancer utilisée :The available protocols depend on the Load Balancer SKU used:

TCPTCP HTTPHTTP HTTPSHTTPS
Référence SKU standardStandard SKU
Référence SKU De baseBasic SKU

Sonde TCPTCP probe

Les sondes TCP établissent une connexion en effectuant une connexion TCP ouverte en trois temps au port défini.TCP probes initiate a connection by performing a three-way open TCP handshake with the defined port. Les sondes TCP mettent fin à une connexion avec une négociation TCP de fermeture dans quatre directions.TCP probes terminate a connection with a four-way close TCP handshake.

L’intervalle minimal de sonde est de 5 secondes et le nombre minimal de réponses défaillantes est de 2.The minimum probe interval is 5 seconds and the minimum number of unhealthy responses is 2. La durée totale de tous les intervalles ne peut pas dépasser 120 secondes.The total duration of all intervals cannot exceed 120 seconds.

Une sonde TCP échoue quand :A TCP probe fails when:

  • L’écouteur TCP sur l’instance ne répond pas durant toute la durée de l’opération.The TCP listener on the instance doesn't respond at all during the timeout period. Une sonde est marquée hors service en fonction du nombre de demandes ayant échoué, et qui ont été configurées pour rester sans réponse avant que la sonde ne soit marquée hors service.A probe is marked down based on the number of failed probe requests, which were configured to go unanswered before marking down the probe.
  • La sonde reçoit une réinitialisation TCP depuis l’instance.The probe receives a TCP reset from the instance.

L’exemple suivant montre comment exprimer ce type de configuration de sonde dans un modèle Resource Manager :The following illustrates how you could express this kind of probe configuration in a Resource Manager template:

    {
      "name": "tcp",
      "properties": {
        "protocol": "Tcp",
        "port": 1234,
        "intervalInSeconds": 5,
        "numberOfProbes": 2
      },

Sonde HTTP/HTTPS HTTP / HTTPS probe

Notes

La sonde HTTPS est disponible uniquement pour Standard Load Balancer.HTTPS probe is only available for Standard Load Balancer.

Les sondes HTTP et HTTPS sont basées sur la sonde TCP, et émettent un HTTP GET avec le chemin spécifié.HTTP and HTTPS probes build on the TCP probe and issue an HTTP GET with the specified path. Les deux sondes prennent en charge les chemins d’accès relatifs pour le HTTP GET.Both of these probes support relative paths for the HTTP GET. Les sondes HTTPS sont identiques aux sondes HTTP avec un wrapper Transport Layer Security (TLS, anciennement appelé SSL) supplémentaire.HTTPS probes are the same as HTTP probes with the addition of a Transport Layer Security (TLS, formerly known as SSL) wrapper. La sonde d’intégrité est marquée comme étant en fonctionnement lorsque l’instance répond avec un statut HTTP de 200 dans la période d’expiration.The health probe is marked up when the instance responds with an HTTP status 200 within the timeout period. Par défaut, la sonde d’intégrité tente de vérifier le port de sonde d’intégrité configuré toutes les 15 secondes.The health probe attempts to check the configured health probe port every 15 seconds by default. L’intervalle d’analyse de sonde minimal est de 5 secondes.The minimum probe interval is 5 seconds. La durée totale de tous les intervalles ne peut pas dépasser 120 secondes.The total duration of all intervals cannot exceed 120 seconds.

Les sondes HTTP / HTTPS peuvent également être pratiques pour implémenter votre propre logique afin de supprimer des instances de la rotation de l’équilibreur de charge si le port de la sonde est également l’écouteur pour le service lui-même.HTTP / HTTPS probes can also be useful to implement your own logic to remove instances from load balancer rotation if the probe port is also the listener for the service itself. Par exemple, vous pouvez décider de supprimer une instance si elle utilise plus de 90 % du processeur et retourne dans un état HTTP différent de 200.For example, you might decide to remove an instance if it's above 90% CPU and return a non-200 HTTP status.

Notes

La sonde HTTPS nécessite l’utilisation de certificats basés sur un hachage de signature minimal de SHA256 dans la chaîne entière.The HTTPS Probe requires the use of certificates based that have a minimum signature hash of SHA256 in the entire chain.

Si vous utilisez Cloud Services et que vos rôles web utilisent w3wp.exe, vous bénéficiez aussi d’une surveillance automatique de votre site web.If you use Cloud Services and have web roles that use w3wp.exe, you also achieve automatic monitoring of your website. Les défaillances de votre code de site web renvoient un état autre que 200 pour la sonde de l’équilibreur de charge.Failures in your website code return a non-200 status to the load balancer probe.

Une sonde HTTP/HTTPS échoue quand :An HTTP / HTTPS probe fails when:

  • Le point de terminaison de la sonde renvoie un code de réponse HTTP autre que 200 (par exemple, 403, 404 ou 500).Probe endpoint returns an HTTP response code other than 200 (for example, 403, 404, or 500). Ceci marquera immédiatement la sonde d’intégrité comme étant hors service.This will mark down the health probe immediately.
  • Le point de terminaison de la sonde ne répond pas du tout pendant le minimum de l’intervalle de sondage et de la période d’expiration de 30 secondes.Probe endpoint doesn't respond at all during the minimum of the probe interval and 30-second timeout period. Plusieurs demandes de sondage peuvent rester sans réponse avant que la sonde soit marquée comme inactive et jusqu’à ce que la somme de tous les intervalles de délai d’attente ait été atteinte.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.
  • Le point de terminaison de la sonde ferme la connexion via une réinitialisation TCP.Probe endpoint closes the connection via a TCP reset.

L’exemple suivant montre comment exprimer ce type de configuration de sonde dans un modèle Resource Manager :The following illustrates how you could express this kind of probe configuration in a Resource Manager template:

    {
      "name": "http",
      "properties": {
        "protocol": "Http",
        "port": 80,
        "requestPath": "/",
        "intervalInSeconds": 5,
        "numberOfProbes": 2
      },
    {
      "name": "https",
      "properties": {
        "protocol": "Https",
        "port": 443,
        "requestPath": "/",
        "intervalInSeconds": 5,
        "numberOfProbes": 2
      },

Sonde d’agent invité (Classique uniquement)Guest agent probe (Classic only)

Les rôles de service cloud (rôles de travail et rôles Web) utilisent par défaut un agent invité pour la surveillance par sonde.Cloud service roles (worker roles and web roles) use a guest agent for probe monitoring by default. Une sonde d’agent invité est une configuration de dernier recours.A guest agent probe is a last resort configuration. Utilisez toujours une sonde d’intégrité explicitement avec une sonde TCP ou HTTP.Always use a health probe explicitly with a TCP or HTTP probe. Une sonde d’agent invité n’est pas aussi efficace que les sondes définies explicitement pour la plupart des scénarios d’application.A guest agent probe is not as effective as explicitly defined probes for most application scenarios.

Une sonde d’agent invité procède à une vérification de l’agent invité situé à l’intérieur de la machine virtuelle.A guest agent probe is a check of the guest agent inside the VM. Ensuite, il écoute et répond HTTP 200 OK uniquement lorsque l’instance est prêteIt then listens and responds with an HTTP 200 OK response only when the instance is in the Ready state. (les autres états sont de type occupé, recyclage ou arrêt).(Other states are Busy, Recycling, or Stopping.)

Pour plus d’informations, consultez les sections relatives à la configuration du fichier de définition de service (csdef) pour les sondes d’intégrité ou à la création d’un équilibreur de charge public pour les services cloud.For more information, see Configure the service definition file (csdef) for health probes or Get started by creating a public load balancer for cloud services.

Si l’agent invité ne répond pas avec HTTP 200 OK, l’équilibreur de charge marque l’instance comme ne répondant pas.If the guest agent fails to respond with HTTP 200 OK, the load balancer marks the instance as unresponsive. Il arrête ensuite d’envoyer des flux vers cette instance.It then stops sending flows to that instance. L’équilibreur de charge continue de vérifier l’instance.The load balancer continues to check the instance.

Si l’agent invité répond avec un HTTP 200, l’équilibreur de charge renvoie de nouveaux flux vers cette instance.If the guest agent responds with an HTTP 200, the load balancer sends new flows to that instance again.

Quand vous utilisez un rôle web, le code du site web s’exécute généralement dans w3wp.exe, qui n’est pas surveillé par l’agent de structure Azure ou l’agent invité.When you use a web role, the website code typically runs in w3wp.exe, which isn't monitored by the Azure fabric or guest agent. Les échecs dans w3wp.exe (par exemple, les réponses HTTP 500) ne sont pas signalés à l’agent invité.Failures in w3wp.exe (for example, HTTP 500 responses) aren't reported to the guest agent. Par conséquent, l’équilibreur de charge n’accepte qu’une instance hors rotation.Consequently, the load balancer doesn't take that instance out of rotation.

Comportement de sonde opérationnelleProbe up behavior

Les sondes d’intégrité TCP, HTTP et HTTPS sont considérées comme saines et annotent le point de terminaison back-end comme sain dans les cas suivants :TCP, HTTP, and HTTPS health probes are considered healthy and mark the backend endpoint as healthy when:

  • La sonde d’intégrité fonctionne correctement après le démarrage de la machine virtuelle.The health probe is successful once after the VM boots.
  • Le nombre spécifié de sondes nécessaires pour marquer le point de terminaison back-end comme étant sain a été atteint.The specified number of probes required to mark the backend endpoint as healthy has been achieved.

Tout point de terminaison back-end qui a atteint un état sain est éligible pour la réception de nouveaux flux.Any backend endpoint which has achieved a healthy state is eligible for receiving new flows.

Notes

Si la sonde d’intégrité fluctue, l’équilibreur de charge attend plus longtemps avant de replacer le point de terminaison back-end dans un état sain.If the health probe fluctuates, the load balancer waits longer before it puts the backend endpoint back in the healthy state. Ce délai d’attente supplémentaire protège l’utilisateur et l’infrastructure. Il s’agit d’une stratégie intentionnelle.This extra wait time protects the user and the infrastructure and is an intentional policy.

Comportement en cas de panne de sondeProbe down behavior

Connexions TCPTCP connections

Les nouvelles connexions TCP avec les points de terminaison back-end sains restants réussissent.New TCP connections will succeed to remaining healthy backend endpoint.

Si la sonde d’intégrité d’un point de terminaison back-end échoue, les connexions TCP établies à ce point de terminaison back-end demeurent.If a backend endpoint's health probe fails, established TCP connections to this backend endpoint continue.

Si toutes les sondes vers toutes les instances d’un pool principal échouent, aucun nouveau flux ne sera envoyé au pool principal.If all probes for all instances in a backend pool fail, no new flows will be sent to the backend pool. L’équilibreur de charge standard autorise les flux TCP établis à continuer.Standard Load Balancer will permit established TCP flows to continue. L’équilibreur de charge de base arrête tous les flux TCP existants vers le pool principal.Basic Load Balancer will terminate all existing TCP flows to the backend pool.

Load Balancer est un service pass-through (il ne met pas fin aux connexions TCP), et le flux est toujours entre le client et le système d’exploitation invité et l’application de la machine virtuelle.Load Balancer is a pass through service (does not terminate TCP connections) and the flow is always between the client and the VM's guest OS and application. Un pool avec toutes les sondes hors service entraînera une absence de réponse de la part d’un front-end face aux tentatives d’ouverture de connexion TCP (SYN), car il n’existe aucun point de terminaison back-end sain pour recevoir le flux et répondre avec un SYN-ACK.A pool with all probes down will cause a frontend to not respond to TCP connection open attempts (SYN) as there is no healthy backend endpoint to receive the flow and respond with an SYN-ACK.

Datagrammes UDPUDP datagrams

Les datagrammes UDP seront remis aux points de terminaison back-end sains.UDP datagrams will be delivered to healthy backend endpoints.

UDP est sans connexion et il n’existe aucun état de flux suivi pour UDP.UDP is connectionless and there is no flow state tracked for UDP. En cas d'échec de la sonde d'intégrité d'un point de terminaison principal, les flux UDP existants seront déplacés vers une autre instance saine du pool principal.If any backend endpoint's health probe fails, existing UDP flows will move to another healthy instance in the backend pool.

Si l’ensemble des sondes de l’ensemble des instances d’un pool principal échouent, les flux UDP existants prennent fin pour les équilibreurs de charge de base et standard.If all probes for all instances in a backend pool fail, existing UDP flows will terminate for Basic and Standard Load Balancers.

Adresse IP source de sondeProbe source IP address

Load Balancer utilise un service de détection distribué pour son modèle de contrôle d’intégrité interne.Load Balancer uses a distributed probing service for its internal health model. Le service de sondage se trouve sur chaque hôte où il y a des machines virtuelles, et il peut être programmé pour générer des sondes d’intégrité à la demande en fonction de la configuration du client.The probing service resides on each host where VMs and can be programmed on-demand to generate health probes per the customer's configuration. Le trafic de la sonde d’intégrité se fait directement entre le service de sondage qui génère la sonde d’intégrité et la machine virtuelle du client.The health probe traffic is directly between the probing service that generates the health probe and the customer VM. Toutes les sondes d’intégrité de l’équilibreur de charge ont pour source l’adresse IP 168.63.129.16.All Load Balancer health probes originate from the IP address 168.63.129.16 as their source. Vous pouvez utiliser l’espace d’adressage IP à l’intérieur d’un réseau virtuel qui n’est pas un espace RFC1918.You can use IP address space inside of a VNet that is not RFC1918 space. L’utilisation d’une adresse IP réservée au niveau mondial et détenue par Microsoft réduit le risque d’un conflit d’adresse IP avec l’espace d’adressage IP que vous utilisez au sein du réseau virtuel.Using a globally reserved, Microsoft owned IP address reduces the chance of an IP address conflict with the IP address space you use inside the VNet. Cette adresse IP est la même dans toutes les régions et ne change pas : elle ne constitue pas un risque de sécurité, car seul le composant de la plateforme Azure interne peut émettre un paquet depuis cette adresse IP.This IP address is the same in all regions and does not change and is not a security risk because only the internal Azure platform component can source a packet from this IP address.

L’étiquette du service AzureLoadBalancer identifie cette adresse IP source dans vos groupes de sécurité réseau et autorise par défaut le trafic de la sonde d’intégrité.The AzureLoadBalancer service tag identifies this source IP address in your network security groups and permits health probe traffic by default.

En plus des sondes d’intégrité Load Balancer, les opérations suivantes utilisent cette adresse IP:In addition to Load Balancer health probes, the following operations use this IP address:

  • Permet à l’agent de machine virtuelle de communiquer avec la plateforme pour signaler qu’il est dans un état « Prêt »Enables the VM Agent to communicating with the platform to signal it is in a “Ready” state
  • Permet la communication avec le serveur virtuel DNS pour fournir la résolution de nom filtré aux clients qui ne définissent pas de serveurs DNS personnalisés.Enables communication with the DNS virtual server to provide filtered name resolution to customers that do not define custom DNS servers. Ce filtrage permet de s’assurer que les clients peuvent uniquement résoudre les noms d’hôte de leur déploiement.This filtering ensures that customers can only resolve the hostnames of their deployment.
  • Permet à la machine virtuelle d’obtenir une adresse IP dynamique auprès du service DHCP dans Azure.Enables the VM to obtain a dynamic IP address from the DHCP service in Azure.

Guide de conceptionDesign guidance

Les sondes d’intégrité sont utilisées pour améliorer la résilience de votre service et pour lui permettre d’être mis à l’échelle.Health probes are used to make your service resilient and allow it to scale. Une configuration incorrecte ou un mauvais modèle de conception peut avoir un impact sur la disponibilité et la scalabilité de votre service.A misconfiguration or bad design pattern can impact the availability and scalability of your service. Passez en revue la totalité de ce document et considérez l’impact sur votre scénario quand la réponse de cette sonde est négative ou positive, et comment elle impacte la disponibilité du scénario de votre application.Review this entire document and consider what the impact to your scenario is when this probe response is marked down or marked up, and how it impacts the availability of your application scenario.

Quand vous concevez le modèle d’intégrité pour votre application, vous devez sonder un port sur un point de terminaison back-end qui reflète l’intégrité de cette instance et du service d’application que vous fournissez.When you design the health model for your application, you should probe a port on a backend endpoint that reflects the health of that instance and the application service you are providing. Le port de l’application et le port de la sonde ne doivent pas nécessairement être les mêmes.The application port and the probe port are not required to be the same. Dans certains scénarios, il peut être souhaitable que le port de la sonde soit différent de celui sur lequel votre application fournit le service.In some scenarios, it may be desirable for the probe port to be different than the port your application provides service on.

Il peut parfois être utile pour votre application de générer une réponse de sonde d’intégrité non seulement pour détecter l’intégrité de votre application, mais aussi pour signaler directement à l’équilibreur de charge si votre instance doit ou non recevoir de nouveaux flux.Sometimes it can be useful for your application to generate a health probe response to not only detect your application health, but also signal directly to Load Balancer whether your instance should receive or not receive new flows. Vous pouvez manipuler la réponse de la sonde pour permettre à votre application de créer une contre-pression et de limiter la remise de nouveaux flux à une instance en mettant en échec la sonde d’intégrité, ou de préparer la maintenance de votre application et de commencer à simplifier votre scénario.You can manipulate the probe response to allow your application to create backpressure and throttle delivery of new flows to an instance by failing the health probe or prepare for maintenance of your application and initiate draining your scenario. Lors de l’utilisation de l’équilibrage de charge standard, un signal de sonde négative autorise toujours la continuation des flux TCP jusqu’au délai d’expiration pour inactivité ou jusqu’à la fermeture de la connexion.When using Standard Load Balancer, a probe down signal will always allow TCP flows to continue until idle timeout or connection closure.

Pour l’équilibrage de charge UDP, vous devez générer un signal de sonde d’intégrité personnalisé à partir du point de terminaison back-end, et utiliser une sonde d’intégrité TCP, HTTP ou HTTPS ciblant l’écouteur correspondant, afin de refléter l’intégrité de votre application UDP.For UDP load balancing, you should generate a custom health probe signal from the backend endpoint and use either a TCP, HTTP, or HTTPS health probe targeting the corresponding listener to reflect the health of your UDP application.

Quand vous utilisez des règles d’équilibrage de charge de ports à haute disponibilité avec Standard Load Balancer, tous les ports font l’objet de l’équilibrage de charge et une même réponse de sonde d’intégrité doit refléter l’état de l’intégralité de l’instance.When using HA Ports load-balancing rules with Standard Load Balancer, all ports are load balanced and a single health probe response must reflect the status of the entire instance.

Ne traduisez pas ou n’utilisez pas de proxy pour une sonde d’intégrité via l’instance qui reçoit la sonde d’intégrité pour la transférer vers une autre instance de votre réseau virtuel, car cette configuration peut entraîner des défaillances en cascade dans votre scénario.Do not translate or proxy a health probe through the instance that receives the health probe to another instance in your VNet as this configuration can lead to cascading failures in your scenario. Considérez le scénario suivant : un ensemble d’appliances de tiers est déployé dans le pool de back-ends d’une ressource d’équilibreur de charge pour fournir une mise à l’échelle et une redondance pour les appliances, et la sonde d’intégrité est configurée pour sonder un port que l’appliance de tiers met en proxy ou traduit vers les autres machines virtuelles derrière l’appliance.Consider the following scenario: a set of third-party appliances is deployed in the backend pool of a Load Balancer resource to provide scale and redundancy for the appliances and the health probe is configured to probe a port that the third-party appliance proxies or translates to other virtual machines behind the appliance. Si vous sondez le même port que celui que vous utilisez pour traduire ou mettre en proxy les demandes vers les autres machines virtuelles derrière l’appliance, toute réponse de la sonde provenant d’une même machine virtuelle derrière l’appliance marque l’appliance elle-même comme étant hors service.If you probe the same port you are using to translate or proxy requests to the other virtual machines behind the appliance, any probe response from a single virtual machine behind the appliance will mark the appliance itself dead. Cette configuration peut entraîner un échec en cascade du scénario d’application dans son intégralité en raison de la présence d’un seul point de terminaison back-end derrière l’appliance.This configuration can lead to a cascading failure of the entire application scenario as a result of a single backend endpoint behind the appliance. Le déclencheur peut être un échec intermittent de la sonde, qui fait que l’équilibreur de charge marque comme étant hors service la destination d’origine (l’instance de l’appliance), qui à son tour peut rendre inopérant le scénario de toute votre application.The trigger can be an intermittent probe failure that will cause Load Balancer to mark down the original destination (the appliance instance) and in turn can disable your entire application scenario. Au lieu de cela, sondez l’intégrité de l’appliance elle-même.Probe the health of the appliance itself instead. La sélection de la sonde pour déterminer le signal d’intégrité est une considération importante pour les scénarios d’appliances virtuelles réseau, et vous devez consulter le fournisseur de votre application pour savoir quel est le signal d’intégrité approprié pour de tels scénarios.The selection of the probe to determine the health signal is an important consideration for network virtual appliances (NVA) scenarios and you must consult your application vendor for what the appropriate health signal is for such scenarios.

Si vous n’autorisez pas l’adresse IP source de la sonde dans vos stratégies de pare-feu, la sonde d’intégrité échoue, car il lui est impossible d’atteindre votre instance.If you don't allow the source IP of the probe in your firewall policies, the health probe will fail as it is unable to reach your instance. L’équilibreur de charge marque à son tour votre instance comme étant hors service, en raison de l’échec de la sonde d’intégrité.In turn, Load Balancer will mark down your instance due to the health probe failure. Une configuration incorrecte peut entraîner l’échec du scénario de votre application avec équilibrage de charge.This misconfiguration can cause your load balanced application scenario to fail.

Pour que la sonde d’intégrité de l’équilibreur de charge marque positivement votre instance, vous devez autoriser cette adresse IP dans tous les groupes de sécurité réseau Azure et dans les stratégies de pare-feu local.For Load Balancer's health probe to mark up your instance, you must allow this IP address in any Azure network security groups and local firewall policies. Par défaut, chaque groupe de sécurité réseau inclut l’étiquette du service AzureLoadBalancer pour autoriser le trafic de la sonde d’intégrité.By default, every network security group includes the service tag AzureLoadBalancer to permit health probe traffic.

Si vous voulez tester une défaillance de la sonde d’intégrité ou marquer négativement une instance individuelle, vous pouvez utiliser un groupe de sécurité réseau pour bloquer explicitement la sonde d’intégrité (port de destination ou adresse IP source) et simuler la défaillance d’une sonde.If you wish to test a health probe failure or mark down an individual instance, you can use a network security groups to explicitly block the health probe (destination port or source IP) and simulate the failure of a probe.

Ne configurez pas votre réseau virtuel avec la plage d’adresses IP détenue par Microsoft qui contient 168.63.129.16.Do not configure your VNet with the Microsoft owned IP address range that contains 168.63.129.16. Ces configurations vont entrer en conflit avec l’adresse IP de la sonde d’intégrité et risquent de faire échouer votre scénario.Such configurations will collide with the IP address of the health probe and can cause your scenario to fail.

Si vous avez plusieurs interfaces sur votre machine virtuelle, vous devez vous assurer que vous répondez à la sonde sur l’interface à partir de laquelle l’avez reçue.If you have multiple interfaces on your VM, you need to insure you respond to the probe on the interface you received it on. Il peut être nécessaire de traduire l’adresse réseau source de cette adresse dans la machine virtuelle pour chaque interface.You may need to source network address translate this address in the VM on a per interface basis.

N’activez pas les horodatages TCP.Do not enable TCP timestamps. L’activation des horodatages TCP peut entraîner l’échec des sondes d’intégrité à cause de la suppression des paquets TCP par la pile TCP du système d’exploitation invité de la machine virtuelle, ce qui fait que Load Balancer marque négativement le point de terminaison correspondant.Enabling TCP timestamps can cause health probes to fail due to TCP packets being dropped by the VM's guest OS TCP stack, which results in Load Balancer marking down the respective endpoint. Les horodatages TCP sont normalement activés par défaut sur les images de machine virtuelle avec sécurité renforcée, et ils doivent être désactivés.TCP timestamps are routinely enabled by default on security hardened VM images and must be disabled.

SurveillanceMonitoring

Les Standard Load Balancer publics et internes exposent l’état des sondes d’intégrité par point de terminaison et par point de terminaison back-end comme des métriques multidimensionnelles par le biais d’Azure Monitor.Both public and internal Standard Load Balancer expose per endpoint and backend endpoint health probe status as multi-dimensional metrics through Azure Monitor. Ces métriques peuvent être utilisées par d’autres services Azure ou par des applications partenaires.These metrics can be consumed by other Azure services or partner applications.

Une instance Load Balancer publique de base expose l’état de la sonde d’intégrité résumé, par pool principal, via les journaux Azure Monitor.Basic public Load Balancer exposes health probe status summarized per backend pool via Azure Monitor logs. Les journaux Azure Monitor ne sont pas disponibles pour les instances Load Balancer de base internes.Azure Monitor logs are not available for internal Basic Load Balancers. Vous pouvez utiliser les journaux Azure Monitor pour vérifier le nombre et l’état d’intégrité des sondes d’équilibreurs de charge publics.You can use Azure Monitor logs to check on the public load balancer probe health status and probe count. La journalisation peut être utilisée avec Power BI ou Operational Insights pour fournir des statistiques sur l’état d’intégrité de l’équilibreur de charge.Logging can be used with Power BI or Azure Operational Insights to provide statistics about load balancer health status.

LimitesLimitations

  • Les sondes HTTPS ne prennent pas en charge l’authentification mutuelle avec un certificat client.HTTPS probes do not support mutual authentication with a client certificate.
  • Vous pouvez supposer que les sondes d’intégrité échoueront lorsque les timestamp TCP sont activés.You should assume Health probes will fail when TCP timestamps are enabled.

Étapes suivantesNext steps