Monitoramento de ponto de extremidade do Gerenciador de Tráfego

O Gerenciador de Tráfego do Azure inclui monitoramento de ponto de extremidade interno e failover automático de ponto de extremidade. Este recurso ajuda você a fornecer aplicativos de alta disponibilidade resilientes a falhas de ponto de extremidade, incluindo falhas de região do Azure. O monitoramento de ponto de extremidade é habilitado por padrão. Para desabilitar o monitoramento, consulte Habilitar ou desabilitar verificações de integridade.

Configurar o monitoramento de pontos de extremidade

Para configurar o monitoramento de ponto de extremidade, é necessário especificar as configurações a seguir em seu perfil do Gerenciador de Tráfego:

  • Protocolo. Escolha HTTP, HTTPS ou TCP como o protocolo que o Gerenciador de Tráfego usa ao investigar seu ponto de extremidade para verificar sua integridade. O monitoramento HTTPS não verifica se o seu certificado TLS/SSL é válido, apenas verifica se o certificado está presente.
  • Porta. Escolha a porta usada para a solicitação.
  • Path. Esta definição de configuração é válida somente para os protocolos HTTP e HTTPS, para quais é necessário especificar o caminho de configuração. Fornecer essa configuração para o protocolo de monitoramento TCP resulta em um erro. Para o protocolo HTTP e HTTPS, forneça o caminho relativo e o nome da página da Web ou do arquivo que o monitoramento acessa. Uma barra / é uma entrada válida para o caminho relativo. Esse valor indica que o arquivo está no diretório raiz (padrão).
  • Configurações personalizadas do cabeçalho. Esta definição de configuração ajuda a adicionar cabeçalhos HTTP específicos às verificações de integridade que o Gerenciador de Tráfego envia para os pontos de extremidade em um perfil. Os cabeçalhos personalizados podem ser especificados em um nível de perfil para ser aplicável a todos os pontos de extremidade nesse perfil e/ou em um nível de ponto de extremidade aplicável somente a esse ponto de extremidade. Você pode usar cabeçalhos personalizados para verificações de integridade de pontos de extremidade em um ambiente de vários locatários. Dessa forma, ele poderá ser roteado corretamente para seu destino especificando um cabeçalho de host. Também é possível usar essa configuração adicionando cabeçalhos exclusivos que podem ser usados para identificar solicitações HTTP(S) originadas no Gerenciador de Tráfego e processá-las de forma diferente. Você pode especificar até oito pares de header:value separados por uma vírgula. Por exemplo, header1:value1, header2:value2.

Observação

Não há suporte para usar caracteres de asterisco (*) em cabeçalhos Host personalizados.

  • Intervalos de códigos de status esperados. Esta configuração permite que você especifique vários intervalos de código com êxito no formato 200-299, 301-301. Se esses códigos de status forem recebidos como resposta de um ponto de extremidade quando uma verificação de integridade é realizada, o Gerenciador de Tráfego marcará esses pontos de extremidade como íntegros. É possível especificar um máximo de oito intervalos de código de status. Essa configuração se aplica somente aos protocolos HTTP e HTTPS e a todos os pontos de extremidade. Essa configuração reside no nível de perfil do Gerenciador de Tráfego e, por padrão, o valor de 200 é definido como o código de status com êxito.

  • Intervalo de investigação. Esse valor especifica a frequência com que a integridade de um ponto de extremidade é verificada usando um agente de investigação do Gerenciador de Tráfego. Você pode especificar dois valores aqui: 30 segundos (investigação normal) e 10 segundos (investigação rápida). Se nenhum valor for fornecido, o perfil será definido como um valor padrão de 30 segundos. Acesse a página Preços do Gerenciador de Tráfego para saber mais sobre os preços de investigação rápida.

  • Número de falhas tolerado. Esse valor especifica quantas falhas um agente de investigação do Gerenciador de Tráfego tolera antes de marcar o ponto de extremidade como não íntegro. Seu valor pode variar entre 0 e 9. Um valor de 0 significa que uma única falha de monitoramento pode fazer esse ponto de extremidade ser marcado como não íntegro. Se nenhum valor for especificado, ele usará o valor padrão de 3.

  • Tempo limite da investigação. Esta propriedade especifica a quantidade de tempo que o agente de investigação do Gerenciador de Tráfego deve esperar antes de considerar uma investigação de integridade para um ponto de extremidade com falha. Se o Intervalo de Investigação for definido como 30 segundos, você poderá definir o valor de Tempo Limite entre 5 e 10 segundos. Se nenhum valor for especificado, ele usará um valor padrão de 10 segundos. Se o Intervalo de Investigação for definido como 10 segundos, você poderá definir o valor de Tempo Limite entre 5 e 9 segundos. Se nenhum valor de Tempo Limite for especificado, ele usará um valor padrão de 9 segundos.

    Captura de tela mostrando a configuração do Gerenciador de Tráfego no portal do Azure.

    Figura: monitoramento de ponto de extremidade do Gerenciador de Tráfego

Como o monitoramento de ponto de extremidade funciona

Quando o protocolo de monitoramento for definido como HTTP ou HTTPS, o agente de investigação do Gerenciador de Tráfego fará uma solicitação GET ao ponto de extremidade usando o protocolo, a porta e o caminho relativo fornecidos. Um ponto de extremidade será considerado íntegro se o agente de investigação receber uma resposta 200-OK ou qualquer resposta configurada nos Intervalos de código de status esperados. Se a resposta for um valor diferente ou nenhuma resposta for recebida dentro do período limite, o agente de investigação do Gerenciador de Tráfego tentará novamente de acordo com a configuração Número de Falhas Tolerado. Nenhuma nova tentativa será feita se essa configuração for 0. O ponto de extremidade será marcado como não íntegro se o número de falhas consecutivas for maior do que a configuração Número de Falhas Tolerado.

Quando o protocolo de monitoramento for TCP, o agente de investigação do Gerenciador de Tráfego criará uma solicitação de conexão TCP usando a porta especificada. Se o ponto de extremidade responder à solicitação com uma resposta para estabelecer a conexão, essa verificação de integridade será marcada como êxito. O agente de investigação do Gerenciador de Tráfego redefine a conexão TCP. Em casos onde a resposta tiver um valor diferente ou nenhuma resposta for recebida dentro do período limite, o agente de investigação do Gerenciador de Tráfego tentará novamente de acordo com a configuração Número de Falhas Tolerado. Nenhuma nova tentativa será feita se essa configuração for 0. Se o número de falhas consecutivas for maior do que a configuração Número de Falhas Tolerado, o ponto de extremidade será marcado como não íntegro.

Em todos os casos, o Gerenciador de Tráfego investiga de vários locais. A falha consecutiva determina o que acontece em cada região. É por isso que os pontos de extremidade estão recebendo investigações de integridade do Gerenciador de Tráfego com uma frequência maior do que a configuração usada para o intervalo de investigação.

Observação

Para um protocolo de monitoramento HTTP ou HTTPS, uma prática comum no lado do ponto de extremidade é implementar uma página personalizada dentro de seu aplicativo, por exemplo, /health.aspx. Usando esse caminho para monitoramento, você pode executar verificações específicas do aplicativo, como verificação de contadores de desempenho ou da disponibilidade do banco de dados. Com base nessas verificações personalizadas, a página retorna um código de status HTTP apropriado.

Todos os pontos de extremidade em um perfil do Gerenciador de Tráfego compartilham configurações de monitoramento. Se precisar usar configurações de monitoramento diferentes para pontos de extremidade diferentes, você pode criar perfis aninhados do Gerenciador de Tráfego.

Status do ponto de extremidade e do perfil

Você pode habilitar e desabilitar pontos de extremidade e perfis do Gerenciador de Tráfego. No entanto, uma alteração no status do ponto de extremidade também pode ocorrer devido a configurações e processos automatizados do Gerenciador de Tráfego.

Status do ponto de extremidade

Você pode habilitar ou desabilitar um ponto de extremidade específico. O serviço subjacente, que pode ainda ser íntegro, não é afetado. A alteração do status do ponto de extremidade controla a disponibilidade do ponto de extremidade no perfil do Gerenciador de Tráfego. Quando o status de um ponto de extremidade for desabilitado, o Gerenciador de Tráfego não verificará sua integridade e o ponto de extremidade não será incluído em uma resposta DNS.

Status do perfil

Usando a configuração de status de perfil, você pode habilitar ou desabilitar um perfil específico. Embora o status do ponto de extremidade afete um único ponto de extremidade, o status do perfil afeta todo o perfil, incluindo todos os pontos de extremidade. Quando você desabilita um perfil, os pontos de extremidade não são verificados quanto à integridade e nenhum ponto de extremidade é incluído em uma resposta DNS. Um código de resposta NXDOMAIN é retornado para a consulta DNS.

Status do monitor de ponto de extremidade

O status do monitor do ponto de extremidade é um valor gerado pelo Gerenciador de Tráfego que mostra o status do ponto de extremidade. Você não pode alterar essa configuração manualmente. O status do monitor de ponto de extremidade é uma combinação dos resultados do monitoramento de ponto de extremidade com o status de ponto de extremidade configurado. Os valores possíveis de status do monitor do ponto de extremidade estão na tabela abaixo:

Status do perfil Status do ponto de extremidade Status do monitor de ponto de extremidade Observações
Desabilitado habilitado Inativo O perfil foi desabilitado. Embora o status do ponto de extremidade seja Habilitado, o status do perfil (Desabilitado) tem precedência. Pontos de extremidade em perfis desabilitados não são monitorados. Um código de resposta NXDOMAIN é retornado para a consulta DNS.
<qualquer> Desabilitado Desabilitado O ponto de extremidade foi desabilitado. Pontos de extremidade desabilitados não são monitorados. O ponto de extremidade não está incluído nas respostas de DNS, pois não recebe tráfego.
habilitado habilitado Online O ponto de extremidade é monitorado e está íntegro. Está incluído em respostas DNS e pode receber tráfego.
habilitado habilitado Degradado As verificações de integridade de monitoramento do ponto de extremidade estão falhando. O ponto de extremidade não está incluído nas respostas de DNS e não recebe tráfego.
Uma exceção é se todos os pontos de extremidade estão degradados. Nesse caso, todos eles são considerados retornados na resposta da consulta.
habilitado habilitado Verificando ponto de extremidade O ponto de extremidade será monitorado, mas os resultados da primeira investigação ainda não foram recebidos. CheckingEndpoint é um estado temporário que geralmente ocorre imediatamente depois de adicionar ou habilitar um ponto de extremidade no perfil. Um ponto de extremidade nesse estado é incluído em respostas DNS e pode receber tráfego.
habilitado habilitado Parado O aplicativo Web ao qual o ponto de extremidade aponta não está em execução. Verifique as configurações do aplicativo Web. Este status também poderá ocorrer se o ponto de extremidade for do tipo aninhado e o perfil filho estiver desabilitado ou inativo.
Um ponto de extremidade com um status Parado não é monitorado. Não está incluído nas respostas de DNS e não recebe tráfego. Uma exceção é se todos os pontos de extremidade estão degradados. Nesse caso, todos eles são considerados retornados na resposta da consulta.
habilitado habilitado Não monitorado O ponto de extremidade está configurado para sempre fornecer tráfego. As verificações de integridade não estão habilitadas.

Para obter detalhes sobre como o status do monitor de ponto de extremidade é calculado para pontos de extremidade aninhados, veja Perfis aninhados do Gerenciador de Tráfego.

Observação

Um status de monitor de Ponto de Extremidade Interrompido pode ocorrer no Serviço de Aplicativo do Azure, se seu aplicativo web não estiver na execução na camada padrão ou acima. Para obter mais informações, consulte Integração do Gerenciador de Tráfego com Serviço de Aplicativo.

Status do monitor de perfil

O status do monitor de perfil é uma combinação dos valores do status do perfil configurado e do status do monitor de ponto de extremidade para todos os pontos de extremidade. Os possíveis valores são descritos na tabela seguinte:

Status do perfil (conforme configurado) Status do monitor de ponto de extremidade Status do monitor de perfil Observações
Desabilitado <qualquer> ou um perfil sem pontos de extremidade definidos. Desabilitado O perfil foi desabilitado.
habilitado O status de pelo menos um ponto de extremidade é Degradado. Degradado Revise os valores de status do ponto de extremidade individual para determinar quais pontos de extremidade exigem mais atenção.
habilitado O status de pelo menos um ponto de extremidade é Online. Nenhum ponto de extremidade tem o status Degradado. Online O serviço está aceitando tráfego. Nenhuma ação do usuário é necessária.
habilitado O status de pelo menos um ponto de extremidade é CheckingEndpoint. Nenhum ponto de extremidade tem status Online ou Degradado. Verificando pontos de extremidade Esse estado de transição ocorre quando um perfil é criado ou habilitado. A integridade do ponto de extremidade está sendo verificada pela primeira vez.
habilitado O status de todos os pontos de extremidade no perfil é Desabilitado ou Parado, ou o perfil não tem nenhum ponto de extremidade definido. Inativo Nenhum ponto de extremidade está ativo, mas o perfil ainda está habilitado.

Failover e recuperação do ponto de extremidade

O Gerenciador de Tráfego verifica periodicamente a integridade de cada ponto de extremidade, incluindo pontos de extremidade não íntegros. O Gerenciador de Tráfego detecta quando um ponto de extremidade se torna íntegro e coloca-o de volta em rotação.

Um ponto de extremidade não está íntegro quando qualquer um dos seguintes eventos ocorrem:

  • Se o protocolo de monitoramento for HTTP ou HTTPS:
    • Uma resposta diferente de 200 ou que não inclua o intervalo de status especificado na configuração Intervalos de código de status esperados foi recebida. (Incluindo um código 2xx diferente ou um redirecionamento 301/302).
  • Se o protocolo de monitoramento for TCP:
    • Uma resposta que não seja ACK ou SYN-ACK é recebida em resposta à solicitação SYN enviada pelo Gerenciador de Tráfego para tentar estabelecer uma conexão.
  • Tempo limite.
  • Qualquer outro problema de conexão que resulte em o ponto de extremidade não estar acessível.

Para obter mais informações sobre como solucionar problemas de verificações com falha, consulte Solução de problemas de status degradado no Gerenciador de Tráfego do Azure.

A linha do tempo na figura abaixo é uma descrição detalhada do processo de monitoramento do ponto de extremidade do Gerenciador de Tráfego que tem as seguintes configurações:

  • O protocolo de monitoramento é HTTP.
  • O intervalo de investigação é de 30 segundos.
  • O número de falhas toleradas é três.
  • O valor de tempo limite é de 10 segundos.
  • O TTL do DNS é de 30 segundos.

Captura de tela do failover e da sequência de failback do ponto de extremidade do Gerenciador de Tráfego. Figura: Failover e sequência de recuperação do ponto de extremidade do gerenciador de tráfego

  1. GET. Para cada ponto de extremidade, o sistema de monitoramento do Gerenciador de Tráfego executa uma solicitação GET no caminho especificados nas configurações de monitoramento.

  2. Configuração de monitoramento de perfil do Gerenciador de Tráfego com intervalo de código personalizado ou 200 OK especificado. O sistema de monitoramento espera que um HTTP 200 OK ou um código de status no intervalo especificado nas configuração de monitoramento seja retornado dentro de 10 segundos. Quando recebe essa resposta, ele reconhece que o serviço está disponível.

  3. 30 segundos entre verificações. A verificação de integridade do ponto de extremidade é repetida a cada 30 segundos.

  4. Serviço indisponível. O serviço torna-se indisponível. O Gerenciador de Tráfego não saberá disso até a próxima verificação de integridade.

  5. Tenta acessar o caminho de monitoramento. O sistema de monitoramento executa uma solicitação GET, mas não recebe uma resposta dentro do período limite de 10 segundos. Posteriormente, ele realiza mais três tentativas em intervalos de 30 segundos. Se uma das tentativas for bem-sucedida, o número de tentativas será redefinido.

  6. Status definido como Degradado. Após a quarta falha consecutiva, o sistema de monitoramento marcará o status do ponto de extremidade não disponível como Degradado.

  7. Tráfego desviado para outros pontos de extremidade. Os servidores de nome DNS do Gerenciador de Tráfego serão atualizados e o Gerenciador de Tráfego não retornará o ponto de extremidade em resposta às consultas DNS. Novas conexões serão direcionadas a outros pontos de extremidade disponíveis. No entanto, respostas DNS anteriores que incluem esse ponto de extremidade ainda poderão ser armazenadas em cache por servidores DNS recursivos e clientes DNS. Os clientes continuam a usar o ponto de extremidade até que o cache de DNS expire. Na medida em que o cache de DNS expira, os clientes fazem novas consultas DNS e são direcionados a pontos de extremidade diferentes. A duração do cache é controlada pela configuração de TTL no perfil do Gerenciador de Tráfego, por exemplo, 30 segundos.

  8. Continuação das verificações de integridade. O Gerenciador de Tráfego continua verificando a integridade do ponto de extremidade enquanto ele está em estado Degradado. O Gerenciador de Tráfego detecta quando o ponto de extremidade volta a ser íntegro.

  9. Serviço volta a ficar online. O serviço torna-se disponível. O ponto de extremidade mantém o status Degradado no Gerenciador de Tráfego até que o sistema de monitoramento execute sua próxima verificação de integridade.

  10. O tráfego para o serviço é retomado. O Gerenciador de Tráfego envia uma solicitação GET e recebe uma resposta de status 200 OK. O serviço voltou ao estado íntegro. Os servidores de nome do Gerenciador de Tráfego são atualizados e começam a enviar o nome DNS do serviço nas respostas DNS. O tráfego retornará ao ponto de extremidade à medida que as respostas DNS em cache que retornam outros pontos de extremidade expirarem e suas conexões com outros pontos de extremidade forem encerradas.

    Importante

    O Gerenciador de tráfego implanta várias investigações de vários locais para cada ponto de extremidade. Várias investigações aumentam a resiliência para monitoramento do ponto de extremidade. O Gerenciador de tráfego agrega a integridade média das investigações em vez de depender de uma instância de investigação singular. A redundância do sistema de investigação é por design. Os valores de ponto de extremidade devem ser considerados holisticamente e não por investigação. O número exibido para a integridade da investigação é uma média. O status só deverá ser uma preocupação se menos de 50% (0,5) das investigações publicarem um status up.

    Observação

    Como o Gerenciador de Tráfego funciona no nível do DNS, ele não consegue influenciar as conexões existentes com qualquer ponto de extremidade. Ao direcionar o tráfego entre os pontos de extremidade (alterando as configurações de perfil ou durante um failover ou failback), o Gerenciador de Tráfego direcionará novas conexões aos pontos de extremidade disponíveis. Outros pontos de extremidade podem continuar recebendo tráfego por meio das conexões existentes, até que essas sessões sejam encerradas. Para permitir que o tráfego saia das conexões existentes, os aplicativos devem limitar a duração da sessão usada com cada ponto de extremidade.

Métodos de roteamento de tráfego

Quando um ponto de extremidade tem um status Degradado, ele não é retornado em resposta a consultas DNS. Em vez disso, um ponto de extremidade alternativo será escolhido e retornado. O método de roteamento de tráfego configurado no perfil determina como o ponto de extremidade alternativo é escolhido.

  • Prioridade. Os pontos de extremidade estabelecem uma lista priorizada. O primeiro ponto de extremidade disponível na lista sempre retorna. Se o status de um ponto de extremidade for Degradado, o próximo ponto de extremidade disponível será retornado.
  • Ponderado. Qualquer ponto de extremidade disponível é escolhido aleatoriamente com base em seus pesos atribuídos e nos pesos de outros pontos de extremidade disponíveis.
  • Desempenho. O ponto de extremidade mais próximo ao usuário final é retornado. Se esse ponto de extremidade não estiver disponível, o Gerenciador de Tráfego moverá o tráfego para os pontos de extremidade da região do Azure seguinte mais próxima. Você pode configurar planos de failover alternativos para o roteamento de tráfego de desempenho usando perfis aninhados do Gerenciador de Tráfego.
  • Geográfico. O ponto de extremidade mapeado para fornecer a localização geográfica (com base no IP da solicitação de consulta) é retornado. Se esse ponto de extremidade não estiver disponível, não será selecionado outro ponto de extremidade para failover, já que uma localização geográfica pode ser mapeada somente para um ponto de extremidade em um perfil. (Confira mais detalhes nas perguntas frequentes). Como uma melhor prática, ao usar o roteamento geográfico, é recomendável que os clientes usem perfis de Gerenciador de Tráfego aninhados com mais de um ponto de extremidade como os pontos de extremidade do perfil.
  • Vários Valores Vários pontos de extremidade mapeados para endereços IPv4/IPv6 são retornados. Quando uma consulta é recebida para este perfil, os pontos de extremidade íntegros são retornados com base no valor Número máximo de registros na resposta que você especificou. O número padrão de respostas são dois pontos de extremidade.
  • Sub-rede O ponto de extremidade mapeado para um conjunto de intervalos de endereços IP será retornado. Quando uma solicitação é recebida de endereço IP, o ponto de extremidade retornado é aquele mapeado para esse endereço IP. 

Para obter mais informações, consulte Métodos de roteamento de tráfego do Gerenciador de Tráfego.

Observação

Uma exceção para o comportamento normal de roteamento de tráfego ocorre quando todos os pontos de extremidade qualificados têm um estado degradado. O Gerenciador de Tráfego faz uma tentativa do tipo “esforço possível” e responde como se todos os pontos de extremidade com status Degradado na verdade estivessem online. Esse comportamento é preferível à opção alternativa, que seria não retornar nenhum ponto de extremidade na resposta DNS. Pontos de extremidade com status Parado ou Desabilitado não são monitorados e, portanto, não são considerados qualificados para o tráfego.

Essa condição geralmente é causada por uma configuração incorreta do serviço, como:

  • Uma ACL (lista de controle de acesso) bloqueando as verificações de integridade do Gerenciador de Tráfego.
  • Uma configuração incorreta do protocolo ou da porta de monitoramento no perfil do Gerenciador de Tráfego.

A consequência deste comportamento é que quando as verificações de integridade do Gerenciador de Tráfego não estiverem configuradas corretamente, o roteamento de tráfego pode fazer parecer que o Gerenciador de Tráfego está funcionando corretamente. No entanto, neste caso, o failover do ponto de extremidade não acontece e isso afeta a disponibilidade geral do aplicativo. É importante verificar se o perfil mostra um status Online em vez de Degradado. Um status Online indica que as verificações de integridade do Gerenciador de Tráfego estão funcionando corretamente.

Para obter mais informações sobre como solucionar problemas de verificações de integridade com falha, consulte Solução de problemas de status degradado no Gerenciador de Tráfego do Azure.

Habilitar ou desabilitar verificações de integridade

O Gerenciador de Tráfego do Azure também habilite que você configure as Verificações de Integridade do ponto de extremidade para serem habilitadas ou desabilitadas. Para desabilitar o monitoramento, escolha a opção para Sempre fornecer tráfego.

Há duas configurações disponíveis para Verificações de Integridade:

  1. Habilitar (verificações de integridade). O tráfego é fornecido ao ponto de extremidade com base na integridade. Esta é a configuração padrão.
  2. Sempre fornecer tráfego. Esta configuração desabilita as verificações de integridade.

Always Serve

Quando Sempre fornecer tráfego é selecionado, o monitoramento é ignorado e o tráfego é sempre enviado para um ponto de extremidade. O status de monitoramento do ponto de extremidade exibido é de Não monitorado.

Para habilitar o Always Serve:

  1. Selecione Pontos de extremidade na seção Configurações da folha de perfil do seu Gerenciador de Tráfego.
  2. Selecione o ponto de extremidade que você deseja configurar.
  3. Em Verificações de Integridade, escolha Sempre fornecer tráfego.
  4. Selecione Salvar.

Consulte o seguinte exemplo:

Captura de tela de verificações de integridade do ponto de extremidade.

Observação

  • As Verificações de Integridade não podem ser desabilitadas em perfis aninhados do Gerenciador de Tráfego.
  • Um ponto de extremidade deve ser habilitado para configurar verificações de integridade.
  • A habilitação e desabilitação de um ponto de extremidade não redefinem a configuração de Verificações de Integridade.
  • Os pontos de extremidade que são configurados para sempre fornecer tráfego são cobrados por verificações básicas de integridade.

Perguntas frequentes

Próximas etapas