Hur du använder CloudWatch för att övervaka och hantera dina AWS-resurser

By rik

AWS CloudWatch är en integrerad tjänst i Amazons molnecosystem, avsedd för att logga och övervaka alla andra tjänster inom AWS. Denna tjänst samlar in och analyserar mätvärden och loggfiler, vilket möjliggör uppsättning av larm för olika händelser som härleds från dessa data.

Med CloudWatch erhåller du en helhetsbild av applikationers prestanda, resursanvändning och tjänsters operativa status. Tjänsten underlättar även upptäckt av avvikande beteenden i dina miljöer, möjliggör automatiska åtgärder, hjälper till med felsökning och ger insikter baserade på loggar för att genomföra förbättringar av system och verksamhet.

Genom att övervaka loggar kan du upptäcka potentiella säkerhetshot och sårbarheter. Övervakning av misstänkt och ovanlig aktivitet möjliggör snabba åtgärder för att förebygga framtida attacker.

Logghantering och systemövervakning är ofta ett krav för att uppfylla regulatoriska standarder. Med hjälp av AWS CloudWatch kan dessa krav uppfyllas.

Dessa är några av de direkta fördelarna med AWS CloudWatch. Låt oss undersöka hur du kan börja använda den.

Konfigurera AWS CloudWatch för din tjänst

Källa: aws.amazon.com

Installationen kan vara antingen enkel och snabb eller ett projekt som kräver veckor av finjustering av logg- och övervakningssystemets alla aspekter, vilket i princip är en kontinuerlig förbättringsprocess.

I korthet, så här kan du komma igång:

  • Förutsatt att du redan har ett AWS-konto, aktivera CloudWatch genom att gå till CloudWatch-konsolen och klicka på ”Kom igång”-knappen.
  • Skapa en logggrupp för att samla in loggar för din tjänst. En logggrupp organiserar loggströmmar och delar samma inställningar för lagring, övervakning och åtkomst. Du skapar en logggrupp genom att klicka på ”Skapa logggrupp”-knappen i CloudWatch-konsolen.
  • Skapa en loggström för att begränsa logghändelser till en specifik källa (tjänst). Du skapar en loggström genom att klicka på ”Skapa loggström”-knappen i CloudWatch-konsolen.
  • Om du planerar att samla in loggar från EC2-instanser, installera CloudWatch-agenten. Agenten är en applikation som körs på dina instanser och skickar loggdata till CloudWatch. Installation kan ske via AWS Systems Manager eller ett skript på dina instanser.
  • Definiera ett metriskt filter för att extrahera mätvärden från loggar baserat på ett angivet mönster. Detta görs genom att klicka på ”Skapa metriskt filter”-knappen i CloudWatch-konsolen.
  • Samla och visualisera all data på ett ställe – skapa en instrumentpanel. En instrumentpanel är en samling widgets som visar mätvärden och annan relevant data. Du skapar en instrumentpanel genom att klicka på ”Skapa instrumentpanel”-knappen i CloudWatch-konsolen.

Övervakning med AWS CloudWatch

Som tidigare nämnts kan AWS CloudWatch användas för att övervaka alla tjänster i Amazon Cloud. För att ge en mer detaljerad bild av hur detta kan se ut, här är en beskrivning av övervakning för några av de vanligaste AWS-tjänsterna:

Källa: docs.aws.amazon.com

EC2-instanser

Du kan övervaka EC2-instanser genom att samla in mätvärden som CPU-användning, nätverkstrafik, diskanvändning och minnesanvändning. Du kan även övervaka status på instanserna och få meddelanden när instanser stoppas eller avslutas.

För att övervaka EC2-instanser, installera CloudWatch-agenten och konfigurera den för att skicka mätvärden till CloudWatch. Sedan kan du skapa larm som aktiveras när mätvärden överstiger bestämda tröskelvärden.

RDS-databaser

Övervakning av Amazon RDS-databaser sker genom att samla in mätvärden som CPU-användning, minnesanvändning och diskanvändning. Det är även möjligt att övervaka statusen på databaserna och få meddelanden när de stoppas, pausas eller avslutas.

För att övervaka RDS-databaser, aktivera utökad övervakning och konfigurera den för att skicka mätvärden till CloudWatch. Du kan sedan skapa larm som varnar dig när värden går utanför det normala intervallet.

Lambda funktioner

AWS Lambda-funktioner kan övervakas genom att samla in mätvärden som antal anrop, varaktighet och felfrekvens. Det är även möjligt att övervaka statusen på funktionerna och få meddelanden när de misslyckas.

För att övervaka Lambda-funktioner aktiverar du CloudWatch-loggar och konfigurerar funktionerna för att skicka loggar till CloudWatch. Därefter kan du skapa metriska filter för att extrahera mätvärden och vidta åtgärder baserat på dessa.

Elastiska lastbalanserare

Övervakning av elastiska lastbalanserare utförs genom att samla in mätvärden som antal förfrågningar, latens och HTTP-svarskoder. Det är även möjligt att övervaka statusen på lastbalanserarna och få meddelanden när de misslyckas.

För att övervaka lastbalanserare, aktivera åtkomstloggar och konfigurera dem för att skicka loggar till CloudWatch. Därefter kan du skapa metriska filter för att extrahera mätvärden och konfigurera larm när måtten avviker från normala värden.

Automatisk skalningsgrupper

Automatiska skalningsgrupper övervakas genom att samla in mätvärden som gruppstorlek, CPU-användning och nätverkstrafik. Det är även möjligt att övervaka statusen på grupper och få meddelanden när grupper skalas upp eller ner.

För att övervaka automatiska skalningsgrupper, aktivera detaljerad övervakning och konfigurera den för att skicka mätvärden till CloudWatch. Du kan sedan skapa larm som varnar dig när mätvärden överstiger vissa tröskelvärden.

Elastiska bönstjälkapplikationer

AWS Elastic Beanstalk-applikationer kan övervakas genom att samla in mätvärden som CPU-användning och antal förfrågningar. Det är även möjligt att övervaka statusen på applikationerna och få meddelanden när de misslyckas.

För att övervaka Elastic Beanstalk-applikationer aktiverar du utökad hälsorapportering och konfigurerar den för att skicka mätvärden till CloudWatch. Därefter kan du skapa larm som varnar dig när värden går utanför de fördefinierade gränserna.

Hantera CloudWatch-larm

CloudWatch-larm finns tillgängliga för nyckelmått och varje tjänst. Dessa kan konfigureras i förväg, baserat på bästa praxis, för att underlätta felsökning när problem uppstår.

Genom att effektivt hantera larm får du varningar om kritiska problem och kan vidta lämpliga åtgärder för att upprätthålla hälsan och prestandan för dina AWS-resurser och applikationer.

Källa: aws.amazon.com

#1. Ställa in larm för ett mått

För att ställa in ett larm, välj först det mått du vill övervaka. Skapa sedan ett larm baserat på det måttet genom att ange ett tröskelvärde och en jämförelseoperator.

Du kan till exempel skapa ett larm som utlöses när CPU-användningen överstiger 80 % i mer än 5 minuter. När du har skapat ett larm, konfigurera åtgärder som ska vidtas när larmet utlöses, som till exempel att skicka ett e-postmeddelande, ett SMS-meddelande eller till och med skala upp dina systemresurser.

#2. Konfigurera larmåtgärder

När du konfigurerar larmåtgärder kan du välja mellan en mängd olika alternativ, som att skicka meddelanden till ett SNS-ämne, utlösa en AWS Lambda-funktion (som i sin tur kan utföra önskad åtgärd via ett Python-skript), stoppa eller avsluta en EC2-instans.

Du kan även konfigurera flera åtgärder för varje larm och därigenom vidta olika åtgärder beroende på larmets allvarlighetsgrad. Till exempel att skicka ett e-postmeddelande för ett mindre larm, men avsluta en instans för ett kritiskt larm.

#3. Larm bästa praxis

Det är alltid bra att följa bästa praxis för att säkerställa att larm är effektiva och pålitliga. Några bästa metoder inkluderar:

  • Att ställa in lämpliga tröskelvärden baserat på historisk data,
  • Att använda flera mätvärden parallellt för att upptäcka problem,
  • Att testa larmen regelbundet för att säkerställa att de fungerar korrekt.

Undvik att skapa för många larm, eftersom det kan leda till larmtrötthet, överbelastning av övervakningssystemet och göra det svårt att identifiera verkligt kritiska problem.

Om du upplever problem med CloudWatch-larm finns det flera felsökningssteg du kan vidta:

  • Kontrollera larmhistoriken för att se om några åtgärder vidtogs när larmet utlöstes.
  • Kontrollera mätdata för att se om det finns några anomalier eller toppar som kan ha utlöst larmet.
  • Om problemen kvarstår, justera larmtröskeln eller lägg till fler mätvärden till larmet för att förbättra dess noggrannhet.

Analysera och visualisera mätvärden med CloudWatch Dashboards

Källa: docs.aws.amazon.com

Att analysera och visualisera mätvärden via instrumentpaneler ger dig tydliga insikter om hälsan och prestandan hos dina AWS-resurser och applikationer. CloudWatch-instrumentpaneler ger en anpassningsbar vy av dina mätvärden.

Du kan placera diagram, grafer och andra visualiseringar som visar trender över tid och framhäver eventuella problem. Målet är att abstrahera data från loggfilerna och presentera den viktiga informationen i ett mer lättläst och användarvänligt format för alla som behöver övervaka systemets status.

För att skapa en CloudWatch-instrumentpanel kan du använda CloudWatch-konsolen eller API. Lägg sedan till widgets som visar mätvärden som du vill ha synliga. Du kan även lägga till text och bilder för att ge sammanhang eller ytterligare information.

När du har skapat en instrumentpanel kan du anpassa den efter dina specifika behov. Ändra storlek på och ordna om widgets, ändra tidsintervallet för datan som visas och lägg till kommentarer för att markera viktiga händelser eller ändringar. Du kan även dela din instrumentpanel med andra användare.

Slutligen kan du enkelt distribuera samma instrumentpanel över flera AWS-konton och miljöer.

Samla in och analysera loggar

Analys av loggar sker vanligtvis med hjälp av funktionen Logs Insights i CloudWatch.

När du har samlat in loggdata i CloudWatch Logs kan du börja använda Logs Insights. Denna funktion låter dig fråga och visualisera loggdata med hjälp av ett enkelt men kraftfullt frågespråk. Det påminner om SQL Selects-språket, men är inte identiskt. Resultaten är dock likartade.

Du kan använda Insights för att söka efter specifika logghändelser, filtrera loggdata baserat på specifika kriterier och skapa visualiseringar som diagram och tabeller. Detta ger värdefulla insikter i beteendet hos dina applikationer och din infrastruktur, som kan användas för att felsöka problem, optimera prestanda eller förbättra säkerheten.

Läs även: Så här använder du AWS-logginsikter för att söka efter mätvärden i Dashboard från AWS Services-loggar

Automatisera uppgifter med CloudWatch Events

Med tillräcklig loggdatainformation i CloudWatch kan du utlösa åtgärder baserat på händelser som inträffar i dina AWS-resurser och applikationer. CloudWatch Events tillhandahåller ett sätt att schemalägga och automatisera uppgifter, som att starta eller stoppa EC2-instanser baserat på deras användningsmönster (t.ex. stoppa instansen under natten och starta om under arbetsdagen).

För att automatisera uppgifter med CloudWatch Events skapar du en regel som anger det händelsemönster som ska matchas och vilken åtgärd som ska vidtas när händelsen inträffar. Du kan göra det med CloudWatch-konsolen eller API:et. Konfigurera sedan ett eller flera mål för regeln, som en AWS Lambda-funktion, ett SNS-ämne eller en EC2-instans.

CloudWatch Events stöder ett brett utbud av händelsekällor, som AWS-tjänster, anpassade applikationer och tredjepartstjänster. Använd CloudWatch Events för att automatisera uppgifter som resurskalning, säkerhetskopiering eller svar på säkerhetsincidenter.

Genom att automatisera uppgifter minskar du manuellt ingrepp i systemet och säkerställer att dina AWS-resurser och applikationer alltid körs optimalt.

Avancerade CloudWatch-funktioner

Det finns flera avancerade CloudWatch-funktioner som kan konfigureras för att få djupare insikter i dina AWS-resurser. Logs Insights är redan nämnt. Här är några andra viktiga avancerade funktioner:

  • CloudWatch Contributor Insights identifierar de främsta bidragsgivarna till din resursanvändning (t.ex. EC2-instanser eller Lambda-funktioner). Du kan använda Contributor Insights för att identifiera de mest resurskrävande operationerna och optimera resurserna därefter.
  • CloudWatch Anomaly Detection använder maskininlärningsalgoritmer för att automatiskt upptäcka avvikande beteende i dina mätvärden. Använd anomalidetektering för att identifiera ovanliga toppar eller dalar och vidta åtgärder för att åtgärda dem.
  • CloudWatch Synthetics skapar ”kanariefåglar” som simulerar användarbeteende, och det kan testa tillgängligheten och prestandan för dina applikationer. Använd Synthetics för att proaktivt utforska och upptäcka problem innan dina användare gör det.
  • CloudWatch Logs Insights Query Acceleration ökar hastigheten på dina loggfrågor med upp till 10x. Använd Query Acceleration för att snabbt och effektivt analysera stora volymer loggdata.

Integrera CloudWatch med AWS Services

Källa: aws.amazon.com

När du bygger ett AWS-system är integrationen med CloudWatch en högsta prioritet. Med denna djupa integration kan du samla in och övervaka mätvärden och loggar över alla dina tjänster eller systemkomponenter. Det är också lätt att installera och använda, och integrationen är inbyggd i de flesta AWS-tjänster. Det finns få ursäkter för att inte använda denna fördel för ditt AWS-molnsystem.

Du får en helhetsbild av dina AWS-resurser och applikationer samt förmågan att övervaka deras hälsa, prestanda och tillgänglighet. Sedan kan du använda all insamlad data för att konfigurera larm och automatisera uppgifter baserat på händelser i din AWS-miljö.

Slutord

AWS CloudWatch är en omfattande molntjänst som kan täcka alla behov av loggning, övervakning och visualisering av systemstatus för ditt projekt.

Att inkludera sådana komponenter i din arkitektur är hur du proaktivt hanterar dina system och säkerställer deras tillförlitlighet. Det är rekommenderat att börja bygga ett robust övervakningssystem från första början, snarare än att prioritera det senare. Du kommer att uppskatta det i längden.

Se även de bästa AWS-övervakningsverktygen.