Övervakning av webbprogram i Azure

Azure App Service
Azure Log Analytics
Azure Monitor

Det här scenariot hanterar de övervakningstjänster som du kan använda och beskriver en dataflödesmodell för användning med flera datakällor. När det gäller övervakning fungerar många verktyg och tjänster med Azure-distributioner. I det här scenariot väljer vi lättillgängliga tjänster just för att de är lätta att använda. Andra övervakningsalternativ beskrivs senare i den här artikeln.

Arkitektur

Ladda ned en Visio-fil med den här arkitekturen.

Dataflöde

I det här scenariot används en hanterad Azure-miljö som värd för ett program och en datanivå. Data flödar genom scenariot på följande sätt:

  1. En användare interagerar med programmet.
  2. Webbläsaren och apptjänsten genererar telemetri.
  3. Application Insights samlar in och analyserar programhälsa, prestanda och användningsdata.
  4. Utvecklare och administratörer kan granska information om hälsa, prestanda och användning.
  5. Azure SQL Database genererar telemetri.
  6. Azure Monitor samlar in och analyserar infrastrukturmått och kvoter.
  7. Log Analytics samlar in och analyserar loggar och mått.
  8. Utvecklare och administratörer kan granska information om hälsa, prestanda och användning.

Komponenter

  • Azure App Service är en PaaS-tjänst för att skapa och hantera appar på hanterade virtuella datorer. De underliggande beräkningsinfrastrukturer som dina appar körs på hanteras åt dig. App Service tillhandahåller övervakning av resursanvändningskvoter och appmått, loggning av diagnostikinformation och aviseringar baserat på mått. Ännu bättre är att du kan använda Application Insights för att skapa tillgänglighetstester för att testa ditt program från olika regioner.
  • Application Insights är en utökningsbar tjänst för programprestandahantering (APM) för utvecklare och har stöd för flera plattformar. Den övervakar programmet, identifierar programavvikelser, till exempel dåliga prestanda och fel, och skickar telemetri till Azure-portalen. Application Insights kan också användas för loggning, distribuerad spårning och anpassade programmått.
  • Azure Monitor tillhandahåller infrastrukturmått och loggar på basnivå för de flesta tjänster i Azure. Du kan interagera med måtten på flera sätt, till exempel genom att kartlägga dem i Azure-portalen, komma åt dem via REST-API:et eller köra frågor mot dem med Hjälp av PowerShell eller CLI. Azure Monitor erbjuder även sina data direkt till Log Analytics och andra tjänster, där du kan fråga och kombinera dem med data från andra källor lokalt eller i molnet.
  • Log Analytics hjälper till att korrelera användnings- och prestandadata som samlas in av Application Insights med konfigurations- och prestandadata för de Azure-resurser som stöder appen. Det här scenariot använder Azure Log Analytics-agenten för att skicka SQL Server-granskningsloggar till Log Analytics. Du kan skriva frågor och visa data på Log Analytics-bladet i Azure-portalen.

Information om scenario

PaaS-erbjudanden (Plattform som en tjänst) i Azure hanterar beräkningsresurser åt dig och påverkar hur du övervakar distributioner. Azure innehåller flera övervakningstjänster som var och en utför en specifik roll. Tillsammans ger dessa tjänster en omfattande lösning för att samla in, analysera och agera på telemetri från dina program och de Azure-resurser som de använder.

Det här scenariot hanterar de övervakningstjänster som du kan använda och beskriver en dataflödesmodell för användning med flera datakällor. När det gäller övervakning fungerar många verktyg och tjänster med Azure-distributioner. I det här scenariot väljer vi lättillgängliga tjänster just för att de är lätta att använda. Andra övervakningsalternativ beskrivs senare i den här artikeln.

Potentiella användningsfall

Andra relevanta användningsfall är:

  • Instrumentering av ett webbprogram för övervakning av telemetri.
  • Samla in klientdels- och serverdelstelemetri för ett program som distribueras i Azure.
  • Övervaka mått och kvoter som är associerade med tjänster i Azure.

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

Driftsäkerhet

Driftskvalitet omfattar de driftsprocesser som distribuerar ett program och håller det igång i produktion. Mer information finns i Översikt över grundpelare för driftskvalitet.

Övervakning

En rekommenderad metod är att lägga till Application Insights i koden under utvecklingen med hjälp av Application Insights SDK:er och anpassa per program. Dessa SDK:er med öppen källkod är tillgängliga för de flesta programramverk. Om du vill utöka och kontrollera de data som du samlar in kan du införliva användningen av SDK:erna både för testning och produktionsdistributioner i utvecklingsprocessen. Huvudkravet är att appen ska ha en direkt eller indirekt siktlinje för Application Insights-inmatningsslutpunkten med en Internetuppkopplad adress. Du kan sedan lägga till telemetri eller utöka en befintlig telemetrisamling.

Körningsövervakning är ett annat enkelt sätt att komma igång på. Telemetrin som samlas in måste styras via konfigurationsfiler. Du kan till exempel inkludera körningsmetoder som gör det möjligt för verktyg som Application Insights Status Monitor att distribuera SDK:erna till rätt mapp och lägga till rätt konfigurationer för att börja övervaka.

Precis som Application Insights tillhandahåller Log Analytics verktyg för att analysera data mellan källor, skapa komplexa frågor och skicka proaktiva aviseringar under angivna villkor. Du kan också visa telemetri i Azure-portalen. Log Analytics tillför värde till befintliga övervakningstjänster som Azure Monitor och kan även övervaka lokala miljöer.

Både Application Insights och Log Analytics använder Azure Log Analytics Query Language. Du kan också använda frågor mellan resurser för att analysera telemetrin som samlas in av Application Insights och Log Analytics i en enda fråga.

Azure Monitor, Application Insights och Log Analytics skickar alla aviseringar. Till exempel Azure Monitor-aviseringar om mått på plattformsnivå, till exempel CPU-användning, medan Application Insights aviserar om mått på programnivå, till exempel serversvarstid. Azure Monitor-aviseringar om nya händelser i Azure-aktivitetsloggen, medan Log Analytics kan utfärda aviseringar om mått eller händelsedata för de tjänster som har konfigurerats för att använda den. Enhetliga aviseringar i Azure Monitor är en ny enhetlig aviseringsupplevelse i Azure som använder en annan taxonomi.

Alternativ

Den här artikeln beskriver praktiskt tillgängliga övervakningsalternativ med populära funktioner, men du har många alternativ, inklusive alternativet att skapa egna loggningsmekanismer. En rekommenderad metod är att lägga till övervakningstjänster när du skapar nivåer i en lösning. Här är några möjliga tillägg och alternativ:

Mer information finns i Övervakning för DevOps i Azure Well-Architected Framework.

Skalbarhet och tillgänglighet

Det här scenariot fokuserar på PaaS-lösningar för övervakning till stor del eftersom de enkelt hanterar tillgänglighet och skalbarhet åt dig och backas upp av serviceavtal (SLA). App Services tillhandahåller till exempel ett garanterat serviceavtal för dess tillgänglighet.

Application Insights har gränser för hur många begäranden som kan bearbetas per sekund. Om du överskrider gränsen för begäran kan det uppstå meddelandebegränsning. För att förhindra begränsning implementerar du filtrering eller sampling för att minska datahastigheten

Överväganden för hög tillgänglighet för den app som du kör är dock utvecklarens ansvar. Information om skalning finns till exempel i skalbarhetsöverväganden i den grundläggande referensarkitekturen för webbprogram. När en app har distribuerats kan du konfigurera tester för att övervaka dess tillgänglighet med hjälp av Application Insights.

Säkerhet

Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.

Krav på känslig information och efterlevnad påverkar datainsamling, kvarhållning och lagring. Läs mer om hur Application Insights och Log Analytics hanterar telemetri.

Följande säkerhetsöverväganden kan också gälla:

  • Utveckla en plan för att hantera personlig information om utvecklare får samla in sina egna data eller utöka befintlig telemetri.
  • Överväg datakvarhållning. Application Insights behåller till exempel telemetridata i 90 dagar. Arkivera data som du vill ha åtkomst till under längre perioder med hjälp av Microsoft Power BI, kontinuerlig export eller REST-API:et. Lagringspriser gäller.
  • Begränsa åtkomsten till Azure-resurser för att styra åtkomsten till data och vem som kan visa telemetri från ett visst program. Information om hur du låser åtkomsten till övervakningstelemetri finns i Resurser, roller och åtkomstkontroll i Application Insights.
  • Fundera på om du vill styra läs-/skrivåtkomst i programkod för att förhindra användare från att lägga till versions- eller taggmarkörer som begränsar datainmatning från programmet. Med Application Insights finns det ingen kontroll över enskilda dataobjekt när de har skickats till en resurs, så om en användare har åtkomst till data har de åtkomst till alla data i en enskild resurs.
  • Lägg till styrningsmekanismer för att framtvinga princip- eller kostnadskontroller över Azure-resurser om det behövs. Du kan till exempel använda Log Analytics för säkerhetsrelaterad övervakning, till exempel principer och rollbaserad åtkomstkontroll, eller använda Azure Policy för att skapa, tilldela och hantera principdefinitioner.
  • Om du vill övervaka potentiella säkerhetsproblem och få en central vy över säkerhetstillståndet för dina Azure-resurser bör du överväga att använda Microsoft Defender för molnet.

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.

Övervakningsavgifter kan läggas till snabbt. Överväg att prissätta i förväg, förstå vad du övervakar och kontrollera de associerade avgifterna för varje tjänst. Azure Monitor tillhandahåller grundläggande mått utan kostnad, medan övervakningskostnaderna för Application Insights och Log Analytics baseras på mängden data som matas in och antalet tester som du kör.

Använd priskalkylatorn för att beräkna kostnader för att komma igång. Ändra de olika prisalternativen så att de matchar den förväntade distributionen.

Telemetri från Application Insights skickas till Azure-portalen under felsökningen och när du har publicerat din app. I testsyfte och för att undvika avgifter instrumenteras en begränsad mängd telemetri. Om du vill lägga till fler indikatorer kan du höja telemetrigränsen. Mer detaljerad kontroll finns i Sampling i Application Insights.

Efter distributionen kan du titta på en Live Metrics Stream med prestandaindikatorer. Dessa data lagras inte – du visar realtidsmått – men telemetrin kan samlas in och analyseras senare. Det kostar ingenting för Live Stream-data.

Log Analytics faktureras per gigabyte (GB) data som matas in i tjänsten. De första 5 GB data som matas in till Azure Log Analytics-tjänsten varje månad erbjuds kostnadsfritt och data behålls utan kostnad under de första 31 dagarna på Log Analytics-arbetsytan.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg

Kolla in de här resurserna som hjälper dig att komma igång med din egen övervakningslösning: