Problemen oplossen met verminderde beschikbaarheid in Azure Traffic Manager
In dit artikel wordt beschreven hoe u problemen met een Azure Traffic Manager-profiel oplost met een gedegradeerde status. Als eerste stap bij het oplossen van problemen met een gedegradeerde status van Azure Traffic Manager is het inschakelen van logboekregistratie. Raadpleeg Resourcelogboeken inschakelen voor meer informatie. Houd er voor dit scenario rekening mee dat u een Traffic Manager-profiel configureert dat verwijst naar enkele van uw cloudapp.net gehoste services. Als de status van traffic manager een gedegradeerde status weergeeft, kan de status van een of meer eindpunten worden gedegradeerd:
Als de status van Traffic Manager een inactieve status weergeeft, zijn beide eindpunten mogelijk uitgeschakeld:
Traffic Manager-tests begrijpen
- Traffic Manager beschouwt een eindpunt alleen online als de test een HTTP 200-antwoord terugkrijgt van het testpad. Als uw toepassing een andere HTTP-antwoordcode retourneert, moet u die antwoordcode toevoegen aan de verwachte statuscodebereiken van uw Traffic Manager-profiel.
- Een 30x-omleidingsreactie wordt behandeld als een fout, tenzij u dit opgeeft als een geldige antwoordcode in de bereiken van de verwachte statuscode van uw Traffic Manager-profiel. Traffic Manager test het omleidingsdoel niet.
- Voor HTTPs-tests worden certificaatfouten genegeerd.
- De werkelijke inhoud van het testpad maakt niet uit, zolang er 200 wordt geretourneerd. Het testen van een URL naar bepaalde statische inhoud, zoals '/favicon.ico', is een veelgebruikte techniek. Dynamische inhoud, zoals de ASP-pagina's, retourneert mogelijk niet altijd 200, zelfs niet als de toepassing in orde is.
- Een best practice is om het testpad in te stellen op iets dat voldoende logica heeft om te bepalen of de site omhoog of omlaag is. In het vorige voorbeeld, door het pad in te stellen op '/favicon.ico', test u alleen of w3wp.exe reageert. Deze test geeft mogelijk niet aan dat uw webtoepassing in orde is. Een betere optie is het instellen van een pad naar een iets zoals '/Probe.aspx' dat logica heeft om de status van de site te bepalen. U kunt bijvoorbeeld prestatiemeteritems gebruiken voor het CPU-gebruik of het aantal mislukte aanvragen meten. U kunt ook proberen toegang te krijgen tot databasebronnen of sessiestatus om ervoor te zorgen dat de webtoepassing werkt.
- Als alle eindpunten in een profiel worden gedegradeerd, behandelt Traffic Manager alle eindpunten als in orde en routeert verkeer naar alle eindpunten. Dit gedrag zorgt ervoor dat problemen met het testmechanisme niet leiden tot een volledige storing van uw service.
Probleemoplossing
Als u een testfout wilt oplossen, hebt u een hulpprogramma nodig waarmee de HTTP-statuscode wordt weergegeven die wordt geretourneerd door de test-URL. Er zijn veel hulpprogramma's beschikbaar waarmee u het onbewerkte HTTP-antwoord kunt zien.
U kunt ook het tabblad Netwerk van de F12-hulpprogramma's voor foutopsporing in Internet Explorer gebruiken om de HTTP-antwoorden weer te geven.
In dit voorbeeld willen we het antwoord van onze test-URL zien: http://watestsdp2008r2.cloudapp.net:80/Probe. In het volgende PowerShell-voorbeeld ziet u het probleem.
Invoke-WebRequest 'http://watestsdp2008r2.cloudapp.net/Probe' -MaximumRedirection 0 -ErrorAction SilentlyContinue | Select-Object StatusCode,StatusDescription
Voorbeelduitvoer:
StatusCode StatusDescription
---------- -----------------
301 Moved Permanently
U ziet dat we een omleidingsantwoord hebben ontvangen. Zoals eerder vermeld, wordt elke andere statuscode dan 200 beschouwd als een fout. Traffic Manager wijzigt de eindpuntstatus in Offline. Als u het probleem wilt oplossen, controleert u de websiteconfiguratie om ervoor te zorgen dat de juiste StatusCode kan worden geretourneerd vanuit het testpad. Configureer de Traffic Manager-test opnieuw om te verwijzen naar een pad dat een 200 retourneert.
Als uw test gebruikmaakt van het HTTPS-protocol, moet u mogelijk certificaatcontrole uitschakelen om SSL/TLS-fouten tijdens uw test te voorkomen. Met de volgende PowerShell-instructies wordt certificaatvalidatie uitgeschakeld voor de huidige PowerShell-sessie:
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
Volgende stappen
Verkeersrouteringsmethoden voor Traffic Manager
Bewerkingen op Traffic Manager (REST API-referentiemateriaal)