AWS CloudWatch este un serviciu nativ al ecosistemului Amazon Cloud care înregistrează și monitorizează toate celelalte servicii din Amazon Cloud. Colectează și urmărește valorile sau fișierele jurnal și setează alarme pentru diferite activități extrase din acestea.
Puteți obține vizibilitate la nivel de sistem asupra performanței aplicațiilor, a utilizării resurselor și a sănătății operaționale a serviciilor. De asemenea, puteți utiliza AWS CloudWatch pentru a detecta comportamentul anormal în mediile dvs., pentru a efectua acțiuni automate, pentru a depana probleme și pentru a descoperi informații din jurnalele pentru a lua măsuri pentru a vă schimba sistemul sau operațiunile în mai bine.
Monitorizarea jurnalelor dvs. ajută la detectarea amenințărilor de securitate și la identificarea potențialelor vulnerabilități. Prin monitorizarea activităților suspecte și a comportamentului neobișnuit, puteți răspunde la activități suspecte și puteți lua măsuri pentru a preveni viitoarele atacuri.
De asemenea, menținerea jurnalelor și monitorizarea sistemelor este, de cele mai multe ori, o activitate obligatorie în scopuri de conformitate. Folosind AWS CloudWatch, îndepliniți aceste cerințe.
Toate acestea sunt beneficii directe pe care le obțineți din utilizarea AWS CloudWatch. Deci, să vedem cum să începem cu toate acestea.
Cuprins
Configurarea AWS CloudWatch pentru serviciul dvs
Sursa: aws.amazon.com
Configurarea poate fi simplă și simplă sau puteți petrece săptămâni pentru a regla toate aspectele sau proprietățile sistemului dvs. de înregistrare și monitorizare și încă nu este complet finalizată (numind-o practic un proces de îmbunătățire viu).
Dar, pe scurt, așa puteți începe:
Monitorizare cu AWS CloudWatch
După cum sa spus deja, puteți monitoriza orice serviciu în Amazon Cloud folosind AWS Cloudwatch. Pentru a oferi o idee mai detaliată despre cum poate arăta o astfel de monitorizare, iată cum să o faceți pentru cele mai comune servicii AWS pe care cel mai probabil le utilizați în sistemul dvs.
Sursa: docs.aws.amazon.com
Instanțe EC2
Puteți monitoriza instanțele EC2 culegând valori precum utilizarea CPU, traficul de rețea, utilizarea discului și utilizarea memoriei. De asemenea, puteți monitoriza starea instanțelor dvs. EC2 și puteți primi notificări când instanțele se opresc sau se încheie.
Pentru a monitoriza instanțele EC2, instalați agentul CloudWatch pe instanțele dvs. și configurați-l pentru a trimite valori către CloudWatch. Ca pas următor, puteți crea apoi alarme pentru a vă alerta atunci când valorile depășesc anumite praguri.
Baze de date RDS
Puteți monitoriza bazele de date Amazon RDS prin colectarea unor valori precum utilizarea CPU, utilizarea memoriei sau utilizarea discului a bazei de date. De asemenea, puteți monitoriza starea bazelor de date și puteți primi notificări atunci când bazele de date sunt oprite, întrerupte sau terminate.
Pentru a monitoriza bazele de date RDS, activați monitorizarea îmbunătățită și configurați-o pentru a trimite valori către CloudWatch. Din nou, puteți crea apoi alarme pentru a vă alerta când valorile sunt dezactivate.
Funcții Lambda
Puteți monitoriza funcțiile AWS Lambda prin colectarea de valori, cum ar fi numărul de invocari lambda, durata și rata de eroare. De asemenea, puteți monitoriza starea funcțiilor dvs. și puteți primi notificări atunci când funcțiile eșuează.
Pentru a monitoriza funcțiile Lambda, trebuie să activați CloudWatch Logs și să configurați funcțiile pentru a trimite jurnalele către CloudWatch. Puteți crea apoi filtre de valori pentru a extrage valori din jurnale și pentru a lua acțiuni pe baza informațiilor extrase din jurnalele.
Echilibratoare elastice de sarcină
Monitorizarea Elastic Load Balancers se face prin colectarea de valori precum numărul de solicitări, latența și codurile de răspuns HTTP. De asemenea, puteți monitoriza starea echilibratorilor de încărcare și puteți primi notificări atunci când echilibratorii de încărcare eșuează.
Pentru a monitoriza echilibratoarele de încărcare, trebuie să activați jurnalele de acces și să configurați echilibratoarele de încărcare pentru a trimite jurnalele către CloudWatch. Puteți crea apoi filtre de valori pentru a extrage valori din jurnalele dvs. și pentru a crea alarme ori de câte ori valorile nu sunt în starea dvs. de sănătate definită.
Grupuri de scalare automată
Puteți monitoriza Auto Scaling Groups prin colectarea dimensiunii grupului, utilizarea CPU și traficul de rețea. De asemenea, puteți monitoriza starea grupurilor dvs. și puteți primi notificări atunci când grupurile cresc sau scad.
Pentru a monitoriza Auto Scaling Groups, trebuie să activați monitorizarea detaliată și să o configurați pentru a trimite valori către CloudWatch. Puteți crea apoi alarme pentru a vă alerta atunci când valorile depășesc anumite praguri.
Aplicații elastice Beanstalk
Puteți monitoriza aplicațiile AWS Elastic Beanstalk culegând valori precum utilizarea CPU și numărul de solicitări. De asemenea, puteți monitoriza starea aplicațiilor dvs. și puteți primi notificări atunci când aplicațiile eșuează.
Pentru a monitoriza aplicațiile Elastic Beanstalk, trebuie să activați raportarea îmbunătățită a stării de sănătate și să o configurați pentru a trimite valori către CloudWatch. Puteți crea apoi alarme pentru a vă alerta atunci când valorile sunt în afara pragurilor predefinite.
Gestionarea alarmelor CloudWatch
Există alarme CloudWatch disponibile pentru valorile cheie și pentru fiecare serviciu. Acestea pot fi configurate în avans, urmând cele mai bune practici și, cu ajutorul lor, remediază problemele pe măsură ce apar.
Prin gestionarea eficientă a alarmelor, sunteți alertat cu privire la problemele critice și puteți lua măsurile adecvate pentru a menține sănătatea și performanța resurselor și aplicațiilor dvs. AWS.
Sursa: aws.amazon.com
#1. Configurarea alarmelor pentru o metrică
Pentru a configura alarme, mai întâi, selectați valoarea pe care doriți să o monitorizați. Apoi creați o alarmă pe baza acelei valori, specificând o valoare de prag și un operator de comparare.
De exemplu, puteți crea o alarmă care se declanșează atunci când utilizarea procesorului depășește 80% pentru mai mult de 5 minute. După ce ați creat o alarmă, configurați acțiunile pe care să le întreprindeți atunci când declanșează alarma. De exemplu, trimiterea unui e-mail către o anumită listă de destinatari, trimiterea unei notificări prin SMS sau chiar extinderea resurselor sistemului.
#2. Configurarea acțiunilor de alarmă
Când configurați acțiunile de alarmă, este posibil să alegeți dintr-o varietate de opțiuni, inclusiv trimiterea de notificări la un subiect SNS, declanșarea unei funcții AWS Lambda (care, la rândul său, poate face tot ce doriți ca funcția să facă în scriptul dvs. Python), oprirea sau terminarea unei instanțe EC2.
De asemenea, puteți configura mai multe acțiuni pentru fiecare alarmă și prin aceasta, luați acțiuni diferite în funcție de gravitatea alarmei. De exemplu, trimiterea unei notificări prin e-mail pentru o alarmă minoră, dar terminarea unei instanțe pentru o alarmă critică.
#3. Cele mai bune practici de alarmă
Este întotdeauna bine să urmați cele mai bune practici pentru a vă asigura că alarmele sunt eficiente și fiabile. Unele dintre cele mai bune practici includ:
- Stabilirea pragurilor adecvate pe baza datelor istorice,
- folosind mai multe valori în paralel pentru a detecta probleme,
- testați-vă alarmele în mod regulat pentru a vă asigura că funcționează corect.
Evitați să creați prea multe alarme, deoarece acest lucru poate duce la oboseală de alertă, aglomerarea sistemului de monitorizare și îngreunarea identificării efective a problemelor cu adevărat critice.
Dacă întâmpinați probleme cu alarmele CloudWatch, există mai mulți pași de depanare pe care îi puteți lua:
- Verificați istoricul alarmelor pentru a vedea dacă au fost întreprinse acțiuni atunci când alarma a fost declanșată.
- Verificați datele de măsurare pentru a vedea dacă există anomalii sau vârfuri care ar fi putut declanșa alarma.
- Dacă problemele persistă, puteți încerca să ajustați pragul de alarmă sau să adăugați valori suplimentare la alarmă pentru a îmbunătăți acuratețea acesteia.
Analizarea și vizualizarea valorilor cu tablourile de bord CloudWatch
Sursa: docs.aws.amazon.com
Analizarea și vizualizarea valorilor prin intermediul tablourilor de bord vă oferă perspective lizibile asupra stării de sănătate și a performanței resurselor și aplicațiilor dvs. AWS. Tablourile de bord CloudWatch oferă o vizualizare personalizabilă a valorilor dvs.
Puteți plasa acolo diverse diagrame, grafice și alte vizualizări care arată tendințele de-a lungul timpului și evidențiază orice probleme pe care le-ar putea avea sistemul. Scopul final este acela de a putea extrage din fișierele jurnal de date și de a avea informațiile importante într-un format mult mai ușor de citit și mai ușor de utilizat pentru oricine dorește să verifice și să monitorizeze starea sistemului.
Pentru a crea un tablou de bord CloudWatch, puteți utiliza consola CloudWatch sau API-ul CloudWatch. Apoi doar adăugați widget-uri în tabloul de bord care afișează valorile pe care doriți să le aveți vizibile pe tabloul de bord. De asemenea, puteți adăuga text și imagini pentru a oferi context sau informații suplimentare.
După ce ați creat un tablou de bord, îl puteți personaliza pentru a răspunde nevoilor dvs. specifice. Puteți redimensiona și rearanja widget-urile, puteți modifica intervalul de timp al datelor afișate și puteți adăuga adnotări pentru a evidenția evenimente sau modificări importante. De asemenea, puteți partaja tabloul de bord cu alți utilizatori, permițându-le să vadă aceleași valori și vizualizări.
În cele din urmă, puteți implementa cu ușurință același tablou de bord într-o varietate de conturi și medii AWS.
Colectarea și analizarea jurnalelor
Analizarea jurnalelor înseamnă, de obicei, utilizarea caracteristicii Logs Insights din CloudWatch.
După ce ați colectat date de jurnal în CloudWatch Logs, puteți începe să utilizați Logs Insights. CloudWatch Logs Insights vă permite să interogați și să vizualizați datele din jurnal folosind un limbaj de interogare simplu, dar puternic. Este foarte asemănător cu limbajul de selectare SQL, deși nu este chiar același. Rezultatele sunt însă foarte asemănătoare.
Puteți utiliza Perspective pentru a căuta anumite evenimente din jurnal, pentru a filtra datele din jurnal pe baza unor criterii specifice și pentru a crea vizualizări, cum ar fi diagrame și tabele. Cu aceasta, obțineți încă o perspectivă valoroasă asupra comportamentului aplicațiilor și infrastructurii dvs., care poate fi folosită pentru a depana probleme, a optimiza performanța sau a îmbunătăți securitatea.
Citiți și: Cum să utilizați AWS Logs Insights pentru a interoga valorile tabloului de bord din AWS Services Logs
Automatizarea sarcinilor cu CloudWatch Events
Dacă aveți suficiente informații despre datele de jurnal în CloudWatch, le puteți utiliza pentru a declanșa acțiuni bazate pe evenimente care au loc în resursele și aplicațiile dvs. AWS. CloudWatch Events oferă o modalitate de a programa și automatiza sarcini, de exemplu, pornirea sau oprirea instanțelor EC2 ori de câte ori utilizarea instanței iese din zona de utilizare normală (de exemplu, oprirea instanței în timpul nopții și repornirea în timpul zilei lucrătoare).
Pentru a automatiza sarcinile cu CloudWatch Events, creați o regulă care specifică tiparul de eveniment care să se potrivească și acțiunea de întreprins atunci când are loc evenimentul. Puteți face acest lucru folosind consola CloudWatch sau API-ul CloudWatch Events. Apoi configurați una sau mai multe ținte pentru regulă, cum ar fi o funcție AWS Lambda, un subiect SNS sau o instanță EC2.
CloudWatch Events acceptă o gamă largă de surse de evenimente, cum ar fi servicii AWS, aplicații personalizate și servicii terțe. Așadar, utilizați CloudWatch Events pentru a automatiza sarcinile ori de câte ori aveți nevoie de scalare a resurselor, de declanșare backup sau de a răspunde la incidente de securitate.
Prin automatizarea sarcinilor, reduceți intervenția manuală în sistemul dvs. și vă asigurați că resursele și aplicațiile dvs. AWS rulează întotdeauna la niveluri optime.
Funcții avansate CloudWatch
Există mai multe funcții avansate CloudWatch care pot fi configurate pentru a obține informații mai profunde asupra resurselor dvs. AWS. Una dintre ele este statisticile Logs deja menționate. Iată câteva dintre celelalte caracteristici avansate cheie:
- CloudWatch Contributor Insights poate identifica cei mai importanți contribuitori la utilizarea resurselor dvs. (de exemplu, instanțe EC2 sau funcții Lambda). Puteți utiliza Contributor Insights pentru a identifica operațiunile care consumă cele mai multe resurse și pentru a optimiza resursele în consecință.
- CloudWatch Anomaly Detection folosește algoritmi de învățare automată pentru a detecta automat comportamentul anormal în valorile dvs. Utilizați Detectarea anomaliilor pentru a identifica vârfurile sau scăderile neobișnuite ale valorilor dvs. și luați măsuri pentru a le rezolva.
- CloudWatch Synthetics creează canari care simulează comportamentul utilizatorului și poate testa disponibilitatea și performanța aplicațiilor dvs. Utilizați Sintetice pentru a explora și detecta în mod proactiv problemele înainte ca utilizatorii dvs. de afaceri să o facă.
- CloudWatch Logs Insights Query Acceleration va accelera interogările dvs. de jurnal de până la 10 ori. Puteți utiliza Query Acceleration pentru a analiza volume mari de date de jurnal rapid și eficient.
Integrarea CloudWatch cu serviciile AWS
Sursa: aws.amazon.com
Când construiți un sistem AWS, integrarea Clodwatch este întotdeauna o prioritate de top pe lista dvs. Numai cu această integrare profundă puteți colecta și monitoriza valorile și jurnalele pentru toate serviciile sau componentele sistemului. De asemenea, este ușor de configurat și utilizat, iar integrarea este nativă pentru majoritatea serviciilor AWS. Deci, există foarte puține scuze pentru a nu folosi acest beneficiu pentru sistemul dvs. de cloud AWS.
Veți obține o imagine completă a resurselor și aplicațiilor dvs. AWS și abilitatea de a le monitoriza starea de sănătate, performanța și disponibilitatea. Apoi, după ce toate informațiile sunt colectate, trebuie doar să utilizați datele deja existente pentru a configura alarme și a automatiza sarcinile pe baza evenimentelor care au loc în mediul dvs. AWS.
Cuvinte finale
AWS CloudWatch este un serviciu cloud cuprinzător capabil să acopere toate nevoile de înregistrare, monitorizare și vizualizare a stării sistemului pentru proiectul dvs.
Includerea unor astfel de componente în arhitectura dvs. este exact modul în care vă gestionați în mod proactiv sistemele și asigurați fiabilitatea acestora. Aș spune că nici măcar nu-i acordați prioritate pentru fazele ulterioare, ci începeți să construiți sistemul robust de monitorizare de la Sprint 1. O veți aprecia mai târziu.
Apoi, consultați cele mai bune instrumente de monitorizare AWS.