Investigações de integridade do Load BalancerLoad Balancer health probes

O Azure Load Balancer usa investigações de integridade para determinar qual instância de pool de back-end receberá novos fluxos.Azure Load Balancer uses health probes to determine which backend pool instances will receive new flows. É possível usar investigações de integridade para detectar a falha de um aplicativo em uma instância de back-end.You can use health probes to detect the failure of an application on a backend instance. Também é possível gerar uma resposta personalizada a uma investigação de integridade e usar a investigação de integridade para controle de fluxo e sinal para que o Load Balancer continue a enviar ou pare de enviar novos fluxos a uma instância de back-end.You can also generate a custom response to a health probe and use the health probe for flow control and signal to Load Balancer whether to continue to send new flows or stop sending new flows to a backend instance. Isso pode ser usado para gerenciar o tempo de inatividade planejado ou de carga.This can be used to manage load or planned downtime.

Quando uma investigação de integridade falha, o Load Balancer para de enviar novos fluxos à respectiva instância não íntegra.When a health probe fails, Load Balancer stops sending new flows to the respective unhealthy instance. O comportamento dos fluxos novos e existentes depende se um fluxo é TCP ou UDP, bem como qual SKU do Load Balancer que você está usando.The behavior of new and existing flows depends on whether a flow is TCP or UDP as well as which Load Balancer SKU you are using. Revisar o comportamento inoperante da investigação para obter detalhes.Review probe down behavior for details.

Importante

As investigações de integridade do Load Balancer são originadas do endereço IP 168.63.129.16 e não devem ser bloqueadas para que as investigações marquem a instância como operante.Load Balancer health probes originate from the IP address 168.63.129.16 and must not be blocked for probes to mark your instance up. Revisar o endereço IP de origem da investigação para obter detalhes.Review probe source IP address for details.

Tipos de investigações de integridadeHealth probe types

As investigações de integridade podem observar qualquer porta em uma instância de back-end, incluindo a porta na qual o serviço real é fornecido.Health probes can observe any port on a backend instance, including the port on which the actual service is provided. A investigação de integridade dá suporte a ouvintes TCP ou pontos de extremidade HTTP.The health probe supports TCP listeners or HTTP endpoints.

Para o balanceamento de carga UDP, é necessário gerar um sinal de investigação de integridade personalizado para a instância de back-end usando uma investigação de integridade TCP ou HTTP.For UDP load balancing, you should generate a custom health probe signal for the backend instance using either a TCP or HTTP health probe.

Ao usar as regras de balanceamento de carga das Portas HA com o Standard Load Balancer, todas as cargas das portas serão balanceadas e uma única resposta da investigação de integridade deverá refletir o status da instância inteira.When using HA Ports load balancing rules with Standard Load Balancer, all ports are load balanced and a single health probe response should reflect the status of the entire instance.

Você não deve prover NAT ou proxy em uma investigação de integridade por meio da instância que recebe a investigação de integridade para outra instância na VNet, pois isso pode resultar em falhas em cascata no cenário.You should not NAT or proxy a health probe through the instance which receives the health probe to another instance in your VNet as this can lead to cascading failures in your scenario.

Caso queira testar uma falha de investigação de integridade ou marcar uma instância individual, você pode usar um Grupo de Segurança para bloquear explicitamente a investigação de integridade (destino ou origem).If you wish to test a health probe failure or mark down an individual instance, you can use a Security Group to explicit block the health probe (destination or source).

Investigação TCPTCP probe

As investigações TCP iniciam uma conexão executando um handshake TCP aberto de três vias com a porta definida.TCP probes initiate a connection by performing a three-way open TCP handshake with the defined port. Isso é seguido por um handshake TCP fechado de quatro vias.This is then followed by a four-way close TCP handshake.

O intervalo mínimo de investigação é de 5 segundos e o número mínimo de respostas não íntegras é 2.The minimum probe interval is 5 seconds and the minimum number of unhealthy responses is 2. A duração total não pode exceder 120 segundos.The total duration cannot exceed 120 seconds.

Uma investigação TCP falha quando:A TCP probe fails when:

  • O ouvinte TCP na instância não responde durante o período de tempo limite.The TCP listener on the instance doesn't respond at all during the timeout period. Uma investigação é marcada como inoperante dependendo do número de solicitações com falha, as quais foram configuradas para passar sem resposta antes da marcação de investigação inoperante.A probe is marked down based on the number of failed probe requests, which were configured to go unanswered before marking the probe down.
  • A investigação recebe uma redefinição de TCP da instância.The probe receives a TCP reset from the instance.

Investigação HTTPHTTP probe

As investigações HTTP estabelecem uma conexão TCP e emitem um HTTP GET com o caminho especificado.HTTP probes establish a TCP connection and issue an HTTP GET with the specified path. As investigações HTTP dão suporte a caminhos relativos para o HTTP GET.HTTP probes support relative paths for the HTTP GET. A investigação de integridade é marcada como operante quando a instância responde com um status HTTP 200 dentro do período de tempo limite.The health probe is marked up when the instance responds with an HTTP status 200 within the timeout period. Por padrão, as investigações de integridade HTTP tentam verificar a porta de investigação de integridade configurada a cada 15 segundos.HTTP health probes attempt to check the configured health probe port every 15 seconds by default. O intervalo mínimo de investigação é de 5 segundos.The minimum probe interval is 5 seconds. A duração total não pode exceder 120 segundos.The total duration cannot exceed 120 seconds.

As investigações HTTP podem ser úteis se você quiser implementar sua própria lógica para remover instâncias da rotação do balanceador de carga.HTTP probes can also be useful if you want to implement your own logic to remove instances from load balancer rotation. Por exemplo, é recomendável remover uma instância caso ela esteja usando mais de 90% da CPU e retorne um status HTTP diferente de 200.For example, you might decide to remove an instance if it's above 90% CPU and return a non-200 HTTP status.

Se você usar o Serviços de Nuvem e tiver funções web que usem w3wp.exe, também é possível obter o monitoramento automático do site.If you use Cloud Services and have web roles that use w3wp.exe, you also achieve automatic monitoring of your website. Falhas no código do site retornam um status não 200 para a investigação do balanceador de carga.Failures in your website code return a non-200 status to the load balancer probe. A investigação HTTP substitui a investigação de agente convidado padrão.The HTTP probe overrides the default guest agent probe.

Uma investigação HTTP falha quando:An HTTP probe fails when:

  • O ponto de extremidade da investigação HTTP retorna um código de resposta HTTP diferente de 200 (por exemplo, 403, 404 ou 500).HTTP probe endpoint returns an HTTP response code other than 200 (for example, 403, 404, or 500). Isso marcará a investigação de integridade inoperante imediatamente.This will mark the health probe down immediately.
  • O ponto de extremidade de investigação HTTP não responde durante um período de tempo limite de 31 segundos.HTTP probe endpoint doesn't respond at all during the a 31 second timeout period. Dependendo do valor de tempo limite definido, várias solicitações de investigação podem ficar sem resposta antes de a investigação ser marcada como não estando em execução (ou seja, antes das investigações SuccessFailCount serem enviadas).Depending on the timeout value that is set, multiple probe requests might go unanswered before the probe gets marked as not running (that is, before SuccessFailCount probes are sent).
  • O ponto de extremidade de investigação HTTP fecha a conexão por meio de uma redefinição de TCP.HTTP probe endpoint closes the connection via a TCP reset.

Investigação de agente convidado (somente clássico)Guest agent probe (Classic only)

Por padrão, as funções do serviço de nuvem (funções de trabalho e funções web) usam um agente convidado para o monitoramento de investigação.Cloud service roles (worker roles and web roles) use a guest agent for probe monitoring by default. Você deve considerar isso uma opção de último recurso.You should consider this an option of last resort. Sempre é necessário definir uma investigação de integridade explicitamente com uma investigação TCP ou HTTP.You should always define an health probe explicitly with a TCP or HTTP probe. Uma investigação de agente convidado não é tão eficiente quanto a investigações definidas explicitamente para a maioria dos cenários de aplicativo.A guest agent probe is not as effective as explicitly defined probes for most application scenarios.

Uma investigação de agente convidado é uma verificação do agente convidado dentro da VM.A guest agent probe is a check of the guest agent inside the VM. Em seguida, ele escuta e responde com uma resposta HTTP 200 OK somente quando a instância está no estado Pronto.It then listens and responds with an HTTP 200 OK response only when the instance is in the Ready state. (Outros estados são Ocupado, Reciclando ou Parando.)(Other states are Busy, Recycling, or Stopping.)

Para obter mais informações, consulte Configurar o arquivo de definição de serviço (csdef) para investigações de integridade ou Introdução à criação de um balanceador de carga público para serviços de nuvem.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.

Se o agente convidado não responder com HTTP 200 OK, o balanceador de carga marcará a instância como sem resposta.If the guest agent fails to respond with HTTP 200 OK, the load balancer marks the instance as unresponsive. Em seguida, ele para de enviar fluxos a essa instância.It then stops sending flows to that instance. O balanceador de carga continua a verificar a instância.The load balancer continues to check the instance.

Se o agente convidado responder com um HTTP 200, o balanceador de carga enviará o tráfego para essa instância novamente.If the guest agent responds with an HTTP 200, the load balancer sends new flows to that instance again.

Quando você usa uma função Web, o código do site geralmente é executado em w3wp.exe, que não é monitorado nem pela malha do Azure nem pelo agente convidado.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. Falhas em w3wp.exe (por exemplo, respostas HTTP 500) não são relatadas para o agente convidado.Failures in w3wp.exe (for example, HTTP 500 responses) aren't reported to the guest agent. Consequentemente, o balanceador de carga não perde essa instância.Consequently, the load balancer doesn't take that instance out of rotation.

Integridade da investigaçãoProbe health

Investigações de integridade TCP e HTTP são consideradas íntegras e marcam a instância de função como íntegra quando:TCP and HTTP health probes are considered healthy and mark the role instance as healthy when:

  • A investigação de integridade é bem-sucedida na primeira vez em que a VM é inicializada.The health probe is successful first time the VM boots.
  • O número SuccessFailCount (descrito acima) define o valor de investigações bem-sucedidas necessárias para marcar a instância da função como íntegra.The number for SuccessFailCount (described earlier) defines the value of successful probes that are required to mark the role instance as healthy. Se uma instância de função tiver sido removida, o número de investigações bem-sucedidas e sucessivas deverá ser igual ou exceder o valor de SuccessFailCount a fim de marcar a instância de função como em execução.If a role instance was removed, the number of successful, successive probes must equal or exceed the value of SuccessFailCount to mark the role instance as running.

Observação

Se a integridade de uma instância de função for flutuante, o balanceador de carga aguardará até recolocar a instância de função no estado íntegro.If the health of a role instance fluctuates, the load balancer waits longer before it puts the role instance back in the healthy state. Esse tempo de espera extra protege o usuário e a infraestrutura, e é uma política intencional.This extra wait time protects the user and the infrastructure and is an intentional policy.

Contagem e tempo limite de investigaçãoProbe count and timeout

O comportamento de investigação depende do seguinte:Probe behavior depends on:

  • Número de investigações bem-sucedidas que permitem a uma instância ser marcada como operante.The number of successful probes that allow an instance to be marked as up.
  • Número de investigações com falha que fazem com que uma instância seja marcada como inoperante.The number of failed probes that cause an instance to be marked as down.

Os valores de tempo limite e frequência definidos em SuccessFailCount determinam se uma instância foi confirmada como em execução ou não.The timeout and frequency values set in SuccessFailCount determine whether an instance is confirmed to be running or not running. Para o Portal do Azure, o tempo limite é definido como duas vezes o valor da frequência.In the Azure portal, the timeout is set to two times the value of the frequency.

Uma regra de balanceamento de carga tem uma única investigação de integridade definida no respectivo pool de back-end.A load balancing rule has a single health probe defined the respective backend pool.

Comportamento de investigação inoperanteProbe down behavior

Conexões TCPTCP Connections

Novas conexões TCP terão êxito na instância de back-end que esteja íntegra e tenha um SO convidado capaz de aceitar um novo fluxo.New TCP connections will succeed to backend instance which is healthy and has a guest OS and application able to accept a new flow.

Se a investigação de integridade de uma instância de back-end falhar, as conexões TCP estabelecidas para essa instância de back-end continuarão.If a backend instance's health probe fails, established TCP connections to this backend instance continue.

Se todas as investigações para todas as instâncias em um pool de back-end falharem, nenhum novo fluxo será enviado ao pool de back-end.If all probes for all instances in a backend pool fail, no new flows will be sent to the backend pool. O Load Balancer Standard permitirá a continuação dos fluxos TCP estabelecidos.Standard Load Balancer will permit established TCP flows to continue. O Basic Load Balancer terminará todos os fluxos TCP existentes para o pool de back-end.Basic Load Balancer will terminate all exisiting TCP flows to the backend pool.

Como o fluxo é sempre entre o cliente e o SO convidado da VM, um pool com todas as investigações inoperantes fará com que um front-end não responda às tentativas abertas de conexão TCP, pois não há nenhuma instância de back-end íntegra para receber o fluxo.Because the flow is always between the client and the VM's guest OS, a pool with all probes down will cause a frontend to not respond to TCP connection open attempts as there is no healthy backend instance to receive the flow.

Datagramas UDPUDP datagrams

Datagramas UDP serão entregues para as instâncias de back-end íntegras.UDP datagrams will be delivered to healthy backend instances.

UDP é sem conexão e não há estado de fluxo controlado para UDP.UDP is connectionless and there is no flow state tracked for UDP. Se a investigação de integridade de qualquer instância de back-end falhar, os fluxos UDP existentes podem ser movidos para outra instância íntegra no pool de back-end.If any backend instance's health probe fails, existing UDP flows may move to another healthy instance in the backend pool.

Se todas as investigações para todas as instâncias em um pool de back-end falharem, os fluxos UDP existentes serão encerrados para os Basic e Standard Load Balancers.If all probes for all instances in a backend pool fail, existing UDP flows will terminate for Basic and Standard Load Balancers.

Endereço IP de origem da investigaçãoProbe source IP address

Todas as investigações de integridade do Load Balancer originam-se do endereço IP 168.63.129.16 como sua fonte.All Load Balancer health probes originate from the IP address 168.63.129.16 as their source. Quando você traz seus próprios endereços IP para Rede Virtual do Microsoft Azure, esse endereço IP de origem da investigação de integridade é garantido que seja exclusivo porque está reservado globalmente para a Microsoft.When you bring your own IP addresses to Azure's Virtual Network, this health probe source IP address is guaranteed to be unique as it is globally reserved for Microsoft. Esse endereço é o mesmo em todas as regiões e não é alterado.This address is the same in all regions and does not change. Isso não deve ser considerado um risco de segurança, pois somente a plataforma interna do Azure pode originar um pacote a partir desse endereço IP.It should not be considered a security risk because only the internal Azure platform can source a packet from this IP address.

Para que a investigação de integridade do Load Balancer marque a instância como operante, você deve permitir esse endereço IP em quaisquer Grupos de Segurança do Azure e políticas de firewall local.For Load Balancer's health probe to mark your instance up, you must allow this IP address in any Azure Security Groups and local firewall policies.

Se você não permitir esse endereço IP nas políticas de firewall, a investigação de integridade falhará, pois ela não é capaz de acessar a instância.If you don't allow this IP address in your firewall policies, the health probe will fail as it is unable to reach your instance. Por sua vez, o Load Balancer marcará para a instância como inoperante devido à falha da investigação de integridade.In turn, Load Balancer will mark down your instance due to the health probe failure. Isso pode causar a falha do serviço com balanceamento de carga.This can cause your load balanced service to fail.

Você também não deve configurar a VNet com o intervalo de endereços IP de propriedade da Microsoft que contém 168.63.129.16.You should also not configure your VNet with the Microsoft owned IP address range which contains 168.63.129.16. Isso coincidirá com o endereço IP da investigação de integridade.This will collide with the IP address of the health probe.

Se você tiver várias interfaces na VM, será necessário certificar-se de responder à investigação na interface em que a investigação foi recebida.If you have multiple interfaces on your VM, you need to insure you respond to the probe on the interface you received it on. Isso pode exigir prover exclusivamente NAT de origem nesse endereço na VM em um regime por interface.This may require uniquely source NAT'ing this address in the VM on a per interface basis.

MonitoramentoMonitoring

Todos os Standard Load Balancer expõem o status da investigação de integridade como métricas multidimensionais por instância através do Azure Monitor.All Standard Load Balancer exposes health probe status as multi-dimensional metrics per instance via Azure Monitor.

O Basic Load Balancer expõe o status da investigação de integridade por pool de back-end através do Log Analytics.Basic Load Balancer exposes health probe status per backend pool via Log Analytics. Isso só está disponível para Basic Load Balancers públicos e não está disponível para Basic Load Balancers internos.This is only available for public Basic Load Balancers and not available for internal Basic Load Balancers. É possível usar a log analytics para verificar o status de integridade da investigação do balanceador de carga público e a contagem de investigação.You can use log analytics to check on the public load balancer probe health status and probe count. O registro em log pode ser usado com o Power BI ou com o Azure Operational Insights para fornecer estatísticas sobre o status da integridade do balanceador de carga.Logging can be used with Power BI or Azure Operational Insights to provide statistics about load balancer health status.

LimitaçõesLimitations

  • A investigação de integridade HTTP não dá suporte a TLS (HTTPS).HTTP health probe does not support TLS (HTTPS). Em vez disso, use uma investigação TCP na porta 443.Use a TCP probe to port 443 instead.

Próximas etapasNext steps