Compreender as investigações do Load BalancerUnderstand Load Balancer probes

O Azure Load Balancer usa investigações de integridade para determinar qual instância de pool de back-end deve receber novos fluxos.Azure Load Balancer uses health probes to determine which backend pool instance should receive new flows. Quando um teste de integridade falha, o Load Balancer interromperá o envio de novos fluxos para a instância não íntegro respectiva e os fluxos existentes nessa instância não serão afetados.When a health probe fails, Load Balancer stops sending new flows to the respective unhealthy instance and existing flows on that instance are unaffected. Quando todas as instâncias de pool de back-end são investigação de cima para baixo, todos os fluxos existentes atingirão o tempo limite em todas as instâncias no pool de back-end.When all backend pool instances probe down, all existing flows will time out on all instances in the backend pool.

Funções do serviço de nuvem (funções de trabalho e da 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. As investigações de integridade personalizadas TCP ou HTTP devem ser configuradas quando você usa VMs atrás do Load Balancer.TCP or HTTP custom health probes must be configured when you use VMs behind Load Balancer.

Noções básicas sobre contagem da investigação e tempo limiteUnderstand probe count and timeout

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

  • Do número de investigações bem-sucedidas que permitem a uma instância ser rotulada como em execução.The number of successful probes that allow an instance to be labeled as up.
  • Do número de investigações com falha que fazem com que uma instância seja rotulada como inoperante.The number of failed probes that cause an instance to be labeled 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.

A configuração da investigação de todas as instâncias com balanceamento de carga para um ponto de extremidade (ou seja, um conjunto com balanceamento de carga) deve ser a mesma.The probe configuration of all load-balanced instances for an endpoint (that is, a load-balanced set) must be the same. Você não pode ter uma configuração de investigação diferente para cada instância de função ou VM no mesmo serviço hospedado para uma combinação de ponto de extremidade específica.You can't have a different probe configuration for each role instance or VM in the same hosted service for a particular endpoint combination. Por exemplo, cada instância deve ter portas locais e tempos limite idênticos.For example, each instance must have identical local ports and timeouts.

Importante

A investigação de um balanceador de carga usa o endereço IP 168.63.129.16.A load balancer probe uses the IP address 168.63.129.16. Esse endereço IP público facilita a comunicação com recursos internos de plataforma para o cenário de Rede Virtual do Azure com seu próprio IP.This public IP address facilitates communication to internal platform resources for the bring-your-own-IP Azure Virtual Network scenario. O endereço IP público virtual 168.63.129.16 é usado em todas as regiões e não muda.The virtual public IP address 168.63.129.16 is used in all regions, and it doesn't change. Recomendamos que você permita esse endereço IP em todas as políticas de firewall local.We recommend that you allow this IP address in any local firewall policies. Ele não deve ser considerado um risco de segurança, pois somente a plataforma interna do Azure pode originar uma mensagem a partir dele.It should not be considered a security risk because only the internal Azure platform can source a message from that address. Se você não permitir esse endereço IP nas políticas de firewall, um comportamento inesperado ocorrerá em uma grande variedade de cenários.If you don't allow this IP address in your firewall policies, unexpected behavior occurs in a variety of scenarios. O comportamento inclui a configuração do mesmo intervalo de endereços IP de 168.63.129.16 e a duplicação de endereços IP.The behavior includes configuring the same IP address range of 168.63.129.16 and duplicating IP addresses.

Saiba mais sobre os tipos de investigaçõesLearn about the types of probes

Investigação do agente convidadoGuest agent probe

Uma investigação de agente convidado só está disponível para os Serviços de Nuvem do Azure.A guest agent probe is available for Azure Cloud Services only. O Load Balancer utiliza o agente convidado dentro da VM.Load Balancer utilizes 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.

O que faz uma investigação de agente convidado marcar uma instância como não íntegra?What makes a guest agent probe mark an instance as unhealthy?

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 tráfego para essa instância.It then stops sending traffic to that instance. O balanceador de carga continuará executando o ping nessa instância.The load balancer continues to ping 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 traffic 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.

Investigação personalizada do HTTPHTTP custom probe

A investigação personalizada HTTP substitui a investigação de agente convidado padrão.The HTTP custom probe overrides the default guest agent probe. Você pode criar a própria lógica personalizada para determinar a integridade da instância da função.You can create your own custom logic to determine the health of the role instance. Por padrão, o balanceador de carga investiga seu ponto de extremidade a cada 15 segundos.The load balancer probes your endpoint every 15 seconds, by default. A instância será considerada em rotação do balanceador de carga se responder com um HTTP 200 dentro do período de tempo limite.The instance is considered to be in the load balancer rotation if it responds with an HTTP 200 within the timeout period. O período de tempo limite é 31 segundos por padrão.The timeout period is 31 seconds by default.

Uma investigação personalizada HTTP poderá ser útil ser você quiser implementar a própria lógica para remover instâncias da rotação do balanceador de carga.An HTTP custom probe can be useful if you want to implement your own logic to remove instances from load balancer rotation. Por exemplo, convém optar por remover uma instância caso ela esteja usando mais de 90% da CPU e retorne um status diferente de 200.For example, you might decide to remove an instance if it's above 90% CPU and returns a non-200 status. Se tiver funções web que usem w3wp.exe, você também receberá o monitoramento automático do site.If you have web roles that use w3wp.exe, you also get 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.

Observação

A investigação personalizada HTTP só oferece suporte aos caminhos relativos e ao protocolo HTTP.The HTTP custom probe supports relative paths and HTTP protocol only. HTTPS não é compatível.HTTPS isn't supported.

O que faz uma investigação personalizada HTTP marcar uma instância como não íntegra?What makes an HTTP custom probe mark an instance as unhealthy?

  • O aplicativo HTTP retorna um código de resposta HTTP diferente de 200 (por exemplo, 403, 404 ou 500).The HTTP application returns an HTTP response code other than 200 (for example, 403, 404, or 500). Essa é uma confirmação positiva alerta você para tirar a instância do aplicativo de serviço imediatamente.This positive acknowledgment alerts you to take the application instance out of service right away.
  • O servidor HTTP não responderá depois do período de tempo limite.The HTTP server doesn't respond at all after the 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 servidor fecha a conexão por meio de uma redefinição TCP.The server closes the connection via a TCP reset.

Investigação personalizada do TCPTCP custom probe

As investigações personalizadas TCP iniciam uma conexão executando um handshake de três vias com a porta definida.TCP custom probes initiate a connection by performing a three-way handshake with the defined port.

O que faz uma investigação personalizada TCP marcar uma instância como não íntegra?What makes a TCP custom probe mark an instance as unhealthy?

  • O servidor TCP não responderá depois do período de tempo limite.The TCP server doesn't respond at all after the timeout period. A marcação da investigação como não estando em execução depende da configuração da quantidade de solicitações de investigação sem resposta.When the probe is marked as not running depends on the number of failed probe requests that were configured to go unanswered before marking the probe as not running.
  • A investigação recebe uma redefinição de TCP da instância de função.The probe receives a TCP reset from the role instance.

Para obter mais informações sobre como configurar uma investigação de integridade HTTP ou uma investigação TCP, consulte Introdução à criação de um balanceador de carga no Gerenciador de Recursos usando o PowerShell.For more information about how to configure an HTTP health probe or a TCP probe, see Get started creating a public load balancer in Resource Manager by using PowerShell.

Readicionar instâncias íntegras à rotação do balanceador de cargaAdd healthy instances back into the load balancer rotation

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

  • O balanceador de carga obtém uma investigação positiva na primeira vez em que a VM é iniciada.The load balancer gets a positive probe the 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.

Usar análise de log para um balanceador de cargaUse log analytics for a load balancer

Você pode usar a análise de log para verificar o status de integridade da investigação do balanceador de carga e a contagem da investigações.You can use log analytics to check on the 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.