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.

Os tipos de investigações de integridade disponíveis e o modo como as investigações de integridade se comportam depende de qual SKU do Load Balancer você está usando.The types of health probes available and the way health probes behave depends on which SKU of Load Balancer you are using. Por exemplo, o comportamento dos fluxos novos e existentes depende se um fluxo é TCP ou UDP, bem como qual SKU do Load Balancer está sendo usado.For example, 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.

SKU StandardStandard SKU SKU BásicoBasic SKU
Tipos de investigaçõesProbe types TCP, HTTP, HTTPSTCP, HTTP, HTTPS TCP, HTTPTCP, HTTP
Comportamento de investigação inoperanteProbe down behavior Todas as investigações inoperantes, todos os fluxos TCP continuam.All probes down, all TCP flows continue. Todas as investigações inoperantes, todos os fluxos TCP terminam.All probes down, all TCP flows terminate.

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çõesProbe 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. O protocolo de investigação de integridade pode ser configurado para três tipos diferentes de investigações de integridade:The health probe protocol can be configured for three different types of health probes:

Os tipos de investigações de integridade disponíveis variam dependendo do SKU do Load Balancer selecionado:The available types of health probes vary depending on the Load Balancer SKU selected:

TCPTCP HTTPHTTP HTTPSHTTPS
SKU StandardStandard SKU
SKU BásicoBasic SKU

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, HTTP ou HTTPS.For UDP load balancing, you should generate a custom health probe signal for the backend instance using either a TCP, HTTP, or HTTPS health probe.

Ao usar as regras de balanceamento de carga das Portas HA com o Standard Load Balancer, as cargas de todas as 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 must 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.

Modelo do Resource ManagerResource Manager template

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

Investigação HTTP / HTTPS HTTP / HTTPS probe

Observação

Investigação HTTPS está disponível somente para Standard Load Balancer.HTTPS probe is only available for Standard Load Balancer.

As investigações HTTP e HTTPS estabelecem uma conexão TCP e emitem um HTTP GET com o caminho especificado.HTTP and HTTPS probes establish a TCP connection and issue an HTTP GET with the specified path. Ambas essas investigações dão suporte a caminhos relativos para o HTTP GET.Both of these probes support relative paths for the HTTP GET. Investigações HTTPS são iguais às investigações HTTP com a adição de um wrapper de TLS (Transport Layer Security), anteriormente conhecido como SSL.HTTPS probes are the same as HTTP probes with the addition of a Transport Layer Security (TLS, formerly known as SSL) wrapper. 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, essas investigações de integridade tentam verificar a porta de investigação de integridade configurada a cada 15 segundos.These 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 / HTTPS podem ser úteis se você quiser implementar sua própria lógica para remover instâncias da rotação do balanceador de carga.HTTP / HTTPS 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 / HTTPS falha quando:An HTTP / HTTPS probe fails when:

  • O ponto de extremidade da investigação retorna um código de resposta HTTP diferente de 200 (por exemplo, 403, 404 ou 500).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 não responde durante um período de tempo limite de 31 segundos.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 fecha a conexão por meio de uma redefinição de TCP.Probe endpoint closes the connection via a TCP reset.

Modelos do Gerenciador de RecursosResource Manager templates

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

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

As investigações de integridade TCP, HTTP e HTTPS são consideradas íntegras e marcam a instância de função como íntegra quando:TCP, HTTP, and HTTPS 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

O Load Balancer usa um serviço de investigação distribuído para seu modelo de integridade interno.Load Balancer uses a distributed probing service for its internal health model. Cada host em que residem as VMs pode ser programado para gerar investigações de integridade segundo a configuração do cliente.Each host where VMs reside can be programmed to generate health probes per the customer's configuration. O tráfego de investigação de integridade está diretamente entre o componente de infraestrutura que gera a investigação de integridade e a VM do cliente.The health probe traffic is directly between the infrastructure component which generates the health probe and the customer VM. 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.

Além de investigações de integridade do Load Balancer, as operações a seguir usam este endereço IP:In addition to Load Balancer health probes, the following operations use this IP address:

  • Permite que o Agente de VM se comunique com a plataforma para sinalizar que ele está em um estado "Pronto"Enables the VM Agent to communicating with the platform to signal it is in a “Ready” state
  • Permite a comunicação com o servidor virtual de DNS para fornecer resolução de nome filtrado aos clientes que não definem servidores DNS personalizados.Enables communication with the DNS virtual server to provide filtered name resolution to customers that do not define custom DNS servers. Essa filtragem garante que cada cliente só possa resolver os nomes de host de sua própria implantação.This filtering ensures that customers can only resolve the hostnames of their deployment.

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

O Standard Load Balancer público e interno expõe o status da investigação de integridade por ponto de extremidade e por instância de back-end como métricas multidimensionais por meio do Azure Monitor.Both public and internal Standard Load Balancer expose per endpoint and backend instance health probe status as multi-dimensional metrics through Azure Monitor. Isso pode então ser consumido por outros serviços do Azure ou aplicativos de terceiros.This can then be consumed by other Azure services or 3rd party applications.

O Basic Load Balancer público expõe o status da investigação de integridade por pool de back-end através do Log Analytics.Basic public Load Balancer exposes health probe status summarized per backend pool via Log Analytics. Isso não está disponível para os Basic Load Balancers internos.This is 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

  • Investigações HTTPS não dão suporte à autenticação mútua com um certificado de cliente.HTTPS probes do not support mutual authentication with a client certificate.
  • No momento, o SDK, PowerShell não dão suporte a investigações de HTTPS.SDK, PowerShell do not support HTTPS probes at this time.

Próximas etapasNext steps