Resolução de problemas do estado degradado no Gestor de Tráfego do Azure

Este artigo descreve como solucionar problemas de um perfil do Gerenciador de Tráfego do Azure que está mostrando um status degradado. Como primeira etapa na solução de problemas de um estado degradado do Gerenciador de Tráfego do Azure, é habilitar o registro em log. Consulte Habilitar logs de recursos para obter mais informações. Para esse cenário, considere que você configure um perfil do Gerenciador de Tráfego apontando para alguns dos seus cloudapp.net serviços hospedados. Se a integridade do seu Gerenciador de Tráfego exibir um status Degradado , o status de um ou mais pontos de extremidade poderá ser Degradado:

Estado do ponto final degradado

Se a integridade do seu Gerenciador de Tráfego exibir um status Inativo , ambos os pontos finais poderão estar desativados:

Estado inativo do Gestor de Tráfego

Noções básicas sobre as sondas do Gerenciador de Tráfego

  • O Gerenciador de Tráfego considera um ponto de extremidade como ONLINE somente quando o teste recebe uma resposta HTTP 200 de volta do caminho do teste. Se o seu aplicativo retornar qualquer outro código de resposta HTTP, você deverá adicionar esse código de resposta aos intervalos de códigos de status esperados do seu perfil do Gerenciador de Tráfego.
  • Uma resposta de redirecionamento de 30x é tratada como falha, a menos que você especifique isso como um código de resposta válido em Intervalos de códigos de status esperados do seu perfil do Gerenciador de Tráfego. O Gerenciador de Tráfego não investiga o destino de redirecionamento.
  • Para testes HTTPs, os erros de certificado são ignorados.
  • O conteúdo real do caminho da sonda não importa, desde que um 200 seja retornado. Investigar um URL para algum conteúdo estático como "/favicon.ico" é uma técnica comum. O conteúdo dinâmico, como as páginas ASP, nem sempre retorna 200, mesmo quando o aplicativo está íntegro.
  • Uma prática recomendada é definir o caminho da sonda para algo que tenha lógica suficiente para determinar que o site está para cima ou para baixo. No exemplo anterior, definindo o caminho para "/favicon.ico", você está testando apenas se w3wp.exe está respondendo. Essa sonda pode não indicar que seu aplicativo Web está íntegro. Uma opção melhor seria definir um caminho para algo como "/Probe.aspx" que tenha lógica para determinar a integridade do site. Por exemplo, você pode usar contadores de desempenho para a utilização da CPU ou medir o número de solicitações com falha. Ou você pode tentar acessar recursos de banco de dados ou estado da sessão para certificar-se de que o aplicativo Web está funcionando.
  • Se todos os pontos de extremidade em um perfil estiverem degradados, o Gerenciador de Tráfego tratará todos os pontos de extremidade como íntegros e encaminhará o tráfego para todos os pontos de extremidade. Esse comportamento garante que problemas com o mecanismo de sondagem não resultem em uma interrupção completa do seu serviço.

Resolução de Problemas

Para solucionar problemas de uma falha de teste, você precisa de uma ferramenta que mostre o retorno do código de status HTTP da URL da sonda. Há muitas ferramentas disponíveis que mostram a resposta HTTP bruta.

Além disso, você pode usar a guia Rede das Ferramentas de Depuração F12 no Internet Explorer para exibir as respostas HTTP.

Para este exemplo, queremos ver a resposta do nosso URL de teste: http://watestsdp2008r2.cloudapp.net:80/Probe. O exemplo do PowerShell a seguir ilustra o problema.

Invoke-WebRequest 'http://watestsdp2008r2.cloudapp.net/Probe' -MaximumRedirection 0 -ErrorAction SilentlyContinue | Select-Object StatusCode,StatusDescription

Saída de exemplo:

StatusCode StatusDescription
---------- -----------------
        301 Moved Permanently

Observe que recebemos uma resposta de redirecionamento. Como dito anteriormente, qualquer StatusCode diferente de 200 é considerado uma falha. O Gerenciador de Tráfego altera o status do ponto de extremidade para Offline. Para resolver o problema, verifique a configuração do site para garantir que o StatusCode adequado possa ser retornado do caminho da sonda. Reconfigure a sonda do Gerenciador de Tráfego para apontar para um caminho que retorna um 200.

Se sua sonda estiver usando o protocolo HTTPS, talvez seja necessário desativar a verificação de certificado para evitar erros SSL/TLS durante o teste. As seguintes instruções do PowerShell desabilitam a validação de certificado para a sessão atual do PowerShell:

add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
    public bool CheckValidationResult(
    ServicePoint srvPoint, X509Certificate certificate,
    WebRequest request, int certificateProblem) {
    return true;
    }
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

Passos Seguintes

Sobre os métodos de roteamento de tráfego do Gerenciador de Tráfego

O que é o Traffic Manager

Serviços Cloud

Serviço de Aplicações do Azure

Operações do Gestor de Tráfego (Referência da API REST)

Azure Traffic Manager Cmdlets