Övervaka programmets hälsotillstånd för tillförlitlighet

Övervakning och diagnostik är avgörande för tillgänglighet och återhämtning. Om något misslyckas måste du veta att det misslyckades,när det misslyckades och varför.

Övervakning är inte samma sak som felidentifiering. Programmet kan till exempel identifiera ett tillfälligt fel och försöka igen för att undvika driftstopp. Men den bör också logga återförsöksåtgärden så att du kan övervaka felfrekvensen för att få en övergripande bild av programmets hälsotillstånd.

Huvudpunkter

  • Definiera aviseringar som är användbara och effektivt prioriterade.
  • Skapa aviseringar som söker efter tjänster som närmar sig sina gränser och kvoter.
  • Använd programinstrumentation för att identifiera och lösa prestandaavvikelser.
  • Spåra förloppet för långvariga processer.
  • Felsök problem för att få en övergripande vy över programmets hälsotillstånd.

Aviseringar

Aviseringar är meddelanden om systemhälsoproblem som påträffas under övervakningen. Aviseringar ger endast värde om de är användbara och effektivt prioriterade av jourtekniker genom definierade operativa procedurer. Presentera telemetridata på en instrumentpanel eller i e-postaviseringsformat som gör det enkelt för en operatör att snabbt se problem eller trender.

Aviseringar på tjänstnivå

Använd Azure Service Health för att svara på händelser på servicenivå. Azure Service Health ger en vy över hälsotillståndet för Azure-tjänster och Azure-regioner. Det utfärdar kommunikation som påverkar följande tjänster:

  • Avbrott
  • Planerade underhållsaktiviteter
  • Andra hälsorekommendationer

Azure Service Health ska konfigureras för att operationalisera Service Health händelser. Men Service Health bör inte användas för att identifiera problem på grund av associerade svarstider. Det finns ett minutmål på tjänstnivå (SLO) för automatiserade problem, men många problem kräver manuell tolkning för att definiera 5 en rotorsaksanalys (RCA). Aviseringar bör i stället användas för att ge användbar information för att tolka problem som har identifierats och visats via hälsomodellen, för att informera om ett driftsvar.

Mer information finns i Azure Service Health.

Aviseringar på resursnivå

Använd Azure Resource Health för att svara på händelser på resursnivå. Azure Resource Health innehåller information om hälsotillståndet för enskilda resurser, till exempel en specifik virtuell dator, och är mycket användbart när du diagnostiserar otillgängliga resurser.

Azure Resource Health ska konfigureras för specifika resursgrupper och resurstyper. Dessa aviseringar bör justeras för att maximera förhållandet mellan signal och brus. Distribuera till exempel bara ett meddelande när en resurs blir skadad enligt programhälsomodellen eller på grund av en händelse som initierats av Azure-plattformen. Det är viktigt att överväga tillfälliga problem när du anger ett lämpligt tröskelvärde för otillgängliga resurser. Du kan till exempel konfigurera en avisering för en virtuell dator med ett tröskelvärde på minut för 1 otillgänglighet innan en avisering utlöses.

Mer information finns i Azure Resource Health.

Instrumentpaneler

Du kan också få en fullständig stackvy över programtillståndet med hjälp av Azure-instrumentpaneler för att skapa en kombinerad vy över övervakningsdiagram från följande:

  • Application Insights
  • Log Analytics
  • Azure Monitor mått
  • Service Health

Exempel

Här är några exempel på hur du skapar och frågar efter aviseringar:

  • HealthAlert:Ett exempel på hur du skapar logganeringar för hälsoaktivitet på resursnivå. I exemplet används Azure Resource Manager för att skapa aviseringar.
  • GraphAlertsPsSample:En uppsättning PowerShell-kommandon som frågar efter aviseringar som genereras mot din prenumeration.

Azure-prenumeration och tjänstbegränsningar

Azure-prenumerationer har begränsningar för vissa resurstyper, till exempel antal resursgrupper, kärnor och lagringskonton. För att säkerställa att ditt program inte körs mot Azure-prenumerationsgränser kan du skapa aviseringar som söker efter tjänster som närmar sig sina gränser och kvoter.

Åtgärda följande prenumerationsgränser med aviseringar.

Enskilda tjänster

Enskilda Azure-tjänster har förbrukningsgränser för:

  • Storage
  • Dataflöde
  • Antal anslutningar
  • Förfrågningar per sekund

Programmet misslyckas om det försöker använda resurser utanför dessa gränser, vilket resulterar i tjänstbegränsning och möjlig avbrottstid.

Beroende på den specifika tjänsten och dina programkrav kan du ofta hålla dig under dessa gränser genom att skala upp (till exempel välja en annan prisnivå) eller skala ut (lägga till nya instanser).

Skalbarhets- och prestandamål för Azure Storage

Azure tillåter ett maximalt antal lagringskonton per prenumeration. Om ditt program kräver fler lagringskonton än vad som för närvarande är tillgängligt i din prenumeration skapar du en ny prenumeration med extra lagringskonton. Mer information finns i Azure-prenumeration och tjänstbegränsningar, kvoter och begränsningar.

Skalbarhetsmål för virtuella datordiskar

En virtuell IaaS-dator (infrastruktur som en tjänst) i Azure stöder anslutning av många datadiskar, beroende på flera faktorer, inklusive storleken på den virtuella datorn och typen av lagringskonto. Om ditt program överskrider skalbarhetsmålen för virtuella datordiskar etablerar du ytterligare lagringskonton och skapar de virtuella datordiskarna där. Mer information finns i Skalbarhets- och prestandamål för VM-diskar.

Storlek för virtuell dator

Om de virtuella datorernas faktiska processor, minne, disk och I/O närmar sig gränserna för storleken på den virtuella datorn kan det uppstå kapacitetsproblem i programmet. Åtgärda problemen genom att öka storleken på den virtuella datorn.

Om din arbetsbelastning varierar över tid bör du överväga att använda VM-skalningsuppsättningar för att automatiskt skala antalet virtuella instanser. Annars måste du manuellt öka eller minska antalet virtuella datorer.

Azure SQL Database

Om din Azure SQL Database inte är tillräcklig för att hantera programmets DTU-krav (Database Transaction Unit) begränsas din dataanvändning. Mer information om hur du väljer rätt tjänstplan finns i Azure SQL Database köpmodeller.

Instrumentation

Instrumentera program för att mäta kundupplevelsen. Effektiv instrumentation är viktig för att identifiera och lösa prestandaavvikelser som kan påverka kundupplevelsen och programmets tillgänglighet. För att skapa en robust programhälsomodell är det viktigt att du får insyn i drifttillståndet för kritiska interna beroenden, till exempel en delad NVA- eller Express Route-anslutning.

System för automatisk redundans och återställning efter fel är beroende av att övervakning och instrumentation fungerar korrekt. Instrumentpaneler som visualiserar systemhälsa och operatörsaviseringar är också beroende av korrekt övervakning och instrumentation. Om de här elementen misslyckas, kritisk information missas eller felaktiga data rapporteras kanske inte en operatör inser att systemet är felaktigt eller inte fungerar. Se till att du inkluderar övervakningssystem i testplanen.

Instrumentera program för att spåra anrop till beroende tjänster. Beroendespårning och mätning av varaktigheten eller statusen för beroendeanrop är också viktigt för att mäta programmets övergripande hälsa. Den bör användas för att informera om en hälsomodell för programmet.

Microsoft rekommenderar att du samlar in och lagrar loggar och viktiga mått för kritiska komponenter.

Tillhandahålla omfattande instrumentation:

  • För fel som är sannolika men ännu inte har inträffat: ange tillräckligt med data för att fastställa orsaken, åtgärda situationen och se till att systemet förblir tillgängligt.
  • För fel som redan har inträffat: programmet ska returnera ett lämpligt felmeddelande till användaren, men bör försöka fortsätta köras trots begränsad funktionalitet.

Övervakningssystem bör samla in omfattande information så att program kan återställas effektivt och, om det behövs, designers och utvecklare kan ändra systemet för att förhindra att situationen upprepas.

Långvariga arbetsflödesfel

Långvariga arbetsflöden innehåller ofta flera steg som var och en ska vara oberoende.

Spåra förloppet för långvariga processer för att minimera sannolikheten att hela arbetsflödet behöver återställas eller att flera kompenserande transaktioner måste köras.

Tips

Övervaka och hantera förloppet för långvariga arbetsflöden genom att implementera ett mönster som Scheduler Agent Supervisor.

Analys och diagnos

Analysera data som kombineras i dessa datalager för att felsöka problem och få en övergripande vy över programmets hälsotillstånd. I allmänhet kan du söka efter och analysera data i Application Insightsoch Log Analytics med hjälp av Kusto-frågor, eller visa förkonfigurerade grafer med hjälp av hanteringslösningar. Använd Azure Advisor att visa rekommendationer med fokus på återhämtning och prestanda.

Gå tillbaka till huvudartikeln: Övervakning

Nästa steg