Solucionando problemas de estado degradado no Gerenciador de tráfego do AzureTroubleshooting degraded state on Azure Traffic Manager

Este artigo descreve como solucionar problemas de um perfil do Gerenciador de tráfego do Azure que está mostrando um status degradado.This article describes how to troubleshoot an Azure Traffic Manager profile that is showing a degraded status. Como uma primeira etapa na solução de problemas de um estado degradado do Gerenciador de tráfego do Azure é habilitar o log de diagnóstico.As a first step in troubleshooting a Azure Traffic Manager degraded state is to enable diagnostic logging. Consulte Habilitar logs de diagnóstico para obter mais informações.Refer to Enable diagnostic logs for more information. Para este cenário, considere que você configurou um perfil do Gerenciador de tráfego apontando para alguns dos seus serviços hospedados do cloudapp.net.For this scenario, consider that you have configured a Traffic Manager profile pointing to some of your cloudapp.net hosted services. 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:If the health of your Traffic Manager displays a Degraded status, then the status of one or more endpoints may be Degraded:

status de ponto de extremidade degradado

Se a integridade do seu Gerenciador de tráfego exibir um status inativo , ambos os pontos de extremidade poderão ser desabilitados:If the health of your Traffic Manager displays an Inactive status, then both end points may be Disabled:

Status do Gerenciador de tráfego inativo

Entendendo as investigações do Gerenciador de tráfegoUnderstanding Traffic Manager probes

  • O Gerenciador de tráfego considera um ponto de extremidade como ONLINE somente quando a investigação recebe uma resposta HTTP 200 do caminho de investigação.Traffic Manager considers an endpoint to be ONLINE only when the probe receives an HTTP 200 response back from the probe path. Se seu aplicativo retornar qualquer outro código de resposta HTTP, você deverá adicionar esse código de resposta aos intervalos de código de status esperados do seu perfil do Gerenciador de tráfego.If you application returns any other HTTP response code you should add that response code to Expected status code ranges of your Traffic Manager profile.
  • Uma resposta de redirecionamento de 30 vezes é tratada como falha, a menos que você tenha especificado 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.A 30x redirect response is treated as failure unless you have specified this as a valid response code in Expected status code ranges of your Traffic Manager profile. O Gerenciador de tráfego não investiga o destino de redirecionamento.Traffic Manager does not probe the redirection target.
  • Para investigações HTTPs, os erros de certificado são ignorados.For HTTPs probes, certificate errors are ignored.
  • O conteúdo real do caminho de investigação não importa, desde que um 200 seja retornado.The actual content of the probe path doesn't matter, as long as a 200 is returned. Investigar uma URL para algum conteúdo estático como "/favicon.ico" é uma técnica comum.Probing a URL to some static content like "/favicon.ico" is a common technique. O conteúdo dinâmico, como as páginas ASP, nem sempre pode retornar 200, mesmo quando o aplicativo está íntegro.Dynamic content, like the ASP pages, may not always return 200, even when the application is healthy.
  • Uma prática recomendada é definir o caminho de investigação para algo que tenha lógica suficiente para determinar se o site está ativo ou inativo.A best practice is to set the probe path to something that has enough logic to determine that the site is up or down. No exemplo anterior, ao definir o caminho para "/favicon.ico", você está testando apenas que w3wp. exe está respondendo.In the previous example, by setting the path to "/favicon.ico", you are only testing that w3wp.exe is responding. Essa investigação não pode indicar que seu aplicativo Web está íntegro.This probe may not indicate that your web application is healthy. Uma opção melhor seria definir um caminho para algo como "/Probe.aspx" que tem lógica para determinar a integridade do site.A better option would be to set a path to a something such as "/Probe.aspx" that has logic to determine the health of the site. Por exemplo, você pode usar contadores de desempenho para utilização da CPU ou medir o número de solicitações com falha.For example, you could use performance counters to CPU utilization or measure the number of failed requests. Ou você pode tentar acessar os recursos do banco de dados ou o estado da sessão para certificar-se de que o aplicativo Web está funcionando.Or you could attempt to access database resources or session state to make sure that the web application is working.
  • 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 roteará o tráfego para todos os pontos de extremidade.If all endpoints in a profile are degraded, then Traffic Manager treats all endpoints as healthy and routes traffic to all endpoints. Esse comportamento garante que os problemas com o mecanismo de investigação não resultem em uma interrupção completa do seu serviço.This behavior ensures that problems with the probing mechanism do not result in a complete outage of your service.

Resolução de problemasTroubleshooting

Para solucionar uma falha de investigação, você precisa de uma ferramenta que mostra o retorno do código de status HTTP da URL de investigação.To troubleshoot a probe failure, you need a tool that shows the HTTP status code return from the probe URL. Há muitas ferramentas disponíveis que mostram a resposta HTTP bruta.There are many tools available that show you the raw HTTP response.

Além disso, você pode usar a guia rede das ferramentas de depuração F12 no Internet Explorer para exibir as respostas HTTP.Also, you can use the Network tab of the F12 Debugging Tools in Internet Explorer to view the HTTP responses.

Para este exemplo, queremos ver a resposta de nossa URL de investigação: http://watestsdp2008r2.cloudapp.net:80/Probe.For this example we want to see the response from our probe URL: http://watestsdp2008r2.cloudapp.net:80/Probe. O exemplo do PowerShell a seguir ilustra o problema.The following PowerShell example illustrates the problem.

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

Exemplo de saída:Example output:

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

Observe que recebemos uma resposta de redirecionamento.Notice that we received a redirect response. Como mencionado anteriormente, qualquer StatusCode diferente de 200 é considerado uma falha.As stated previously, any StatusCode other than 200 is considered a failure. O Gerenciador de tráfego altera o status do ponto de extremidade para offline.Traffic Manager changes the endpoint status to Offline. Para resolver o problema, verifique a configuração do site para garantir que o StatusCode apropriado possa ser retornado do caminho de investigação.To resolve the problem, check the website configuration to ensure that the proper StatusCode can be returned from the probe path. Reconfigure a investigação do Traffic Manager para apontar para um caminho que retorna um 200.Reconfigure the Traffic Manager probe to point to a path that returns a 200.

Se sua investigação estiver usando o protocolo HTTPS, talvez seja necessário desabilitar a verificação de certificado para evitar erros de SSL/TLS durante o teste.If your probe is using the HTTPS protocol, you may need to disable certificate checking to avoid SSL/TLS errors during your test. As instruções do PowerShell a seguir desabilitam a validação de certificado para a sessão atual do PowerShell:The following PowerShell statements disable certificate validation for the current PowerShell session:

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

Próximos PassosNext Steps

Sobre métodos de roteamento de tráfego do Traffic ManagerAbout Traffic Manager traffic routing methods

O que é o Gerenciador de tráfegoWhat is Traffic Manager

Serviços CloudCloud Services

Serviço de Aplicações do AzureAzure App Service

Operações do Gestor de Tráfego (Referência da API REST)Operations on Traffic Manager (REST API Reference)

Cmdlets do Gerenciador de tráfego do AzureAzure Traffic Manager Cmdlets