spremljanjeopaznostinfrastruktura v oblakudevopssečnjametrike
Spremljanje na podlagi dnevnikov v primerjavi s spremljanjem na podlagi meritev
Spremljanje na podlagi dnevnikov zajema podrobne zapise dogodkov za poglobljeno odpravljanje težav, medtem ko spremljanje na podlagi metrik sledi numeričnim podatkovnim točkam skozi čas za vpogled v delovanje v realnem času. Oba pristopa služita različnim namenom v sodobnih skladih opazovanja in večina ekip ima koristi od njune skupne uporabe, namesto da bi izbrala enega ali drugega.
Poudarki
Dnevniki ohranjajo kontekst dogodkov za forenzično preiskavo, medtem ko metrike povzemajo stanje sistema za hitre poizvedbe.
Metrike omogočajo skoraj takojšnje opozarjanje na podlagi pragov, medtem ko opozarjanje dnevnika zahteva razčlenjevanje in ujemanje vzorcev.
Stroški shranjevanja dnevnikov se prilagajajo količini dogodkov in njihovi podrobnosti, medtem ko shranjevanje metrik ostaja kompaktno in predvidljivo.
Kombinacija obeh pristopov zagotavlja popolno sliko opazovalnosti, ki jo zahtevajo sodobni porazdeljeni sistemi.
Kaj je Spremljanje na podlagi dnevnikov?
Zapisuje diskretne dogodke s kontekstualnimi podrobnostmi, kar omogoča forenzično analizo in preiskavo vzrokov v porazdeljenih sistemih.
Dnevniki so strukturirani ali nestrukturirani časovno žigosani zapisi dogodkov, ki jih ustvarijo aplikacije, strežniki in komponente infrastrukture.
Vsak vnos v dnevnik običajno vsebuje časovni žig, stopnjo resnosti, identifikator vira in opisno sporočilo o tem, kaj se je zgodilo.
Orodja, kot so ELK Stack (Elasticsearch, Logstash, Kibana), Splunk in Loki, se pogosto uporabljajo za združevanje in iskanje podatkov dnevnika.
Spremljanje na podlagi dnevnikov je odlično pri odgovarjanju na vprašanje »zakaj se je to zgodilo«, ker ohranja celoten kontekst posameznih dogodkov.
Stroški shranjevanja dnevnikov so običajno višji od stroškov metrik, ker lahko vsak dogodek vsebuje na stotine bajtov podrobnih informacij.
Kaj je Spremljanje na podlagi meritev?
Zbira numerične časovne vrste podatkovnih točk za spremljanje zdravja sistema, trendov delovanja in izrabe virov v realnem času.
Metrike so numerične meritve, vzorčene v rednih intervalih, kot so odstotek uporabe procesorja, zakasnitev zahtev ali poraba pomnilnika.
Časovne podatkovne baze, kot so Prometheus, InfluxDB in Graphite, so namensko zasnovane za učinkovito shranjevanje in poizvedovanje metričnih podatkov.
Spremljanje na podlagi meritev odgovarja na vprašanje, »kaj se dogaja prav zdaj«, prek nadzornih plošč, opozoril in obvestil na podlagi pragov.
Posamezna metrična podatkovna točka je običajno veliko manjša od vnosa v dnevnik, pogosto le ime, časovni žig in vrednost.
Priljubljena orodja za vizualizacijo vključujejo Grafano, nadzorne plošče Datadog in prikaze meritev CloudWatch.
Agregacija, matematične funkcije, poizvedbe v časovnih oknih
Odzivni čas
Počasneje za obsežne poizvedbe
Skoraj takojšnje za poizvedbe na nadzorni plošči
Najboljše za odgovor
Zakaj je prišlo do tega specifičnega dogodka?
Kakšno je trenutno stanje sistema?
Pogosta orodja
ELK Stack, Splunk, Loki, Fluentd
Prometheus, Grafana, Datadog, CloudWatch
Zmožnost opozarjanja
Omejeno, pogosto zahteva pravila za razčlenjevanje dnevnikov
Izvorna opozorila o pragu in anomalijah
Podrobna primerjava
Granularnost podatkov in kontekst
Spremljanje na podlagi dnevnikov zajame vsak posamezen dogodek z okoliškim kontekstom, vključno z uporabniškimi ID-ji, koristnimi podatki zahtev, sledmi skladov napak in okoljskimi spremenljivkami. Zaradi tega so dnevniki neprecenljivi, ko morate natančno rekonstruirati, kaj se je zgodilo med določenim incidentom. Spremljanje na podlagi metrik pa povzame vedenje sistema v numerične vrednosti, pri čemer žrtvuje podrobnosti posameznih dogodkov za kompaktno, poizvedljivo obliko, ki dobro deluje v daljšem časovnem obdobju.
Zmogljivost in skalabilnost
Podatkovne baze meritev so optimizirane za visoko prepustnost pisanja in hitro združevanje, zato lahko platforme, kot je Prometheus, brez težav postrgajo podatke iz tisočev ciljev vsakih nekaj sekund. Sistemi beleženja zahtevajo več računskih stroškov, ker indeksirajo besedilo v prostem formatu in podpirajo kompleksne iskalne poizvedbe. Ko količina dnevnikov naraste na terabajte na dan, morajo ekipe pogosto vlagati v večplastno shranjevanje, strategije vzorčenja ali politike hrambe, da ohranijo stroške obvladljive.
Opozorila in vidnost v realnem času
Metrike so izjemno koristne pri opozarjanju v realnem času, saj je ocenjevanje numeričnega praga glede na časovno vrsto računsko preprosto. Nastavite lahko opozorila, kot je »CPU nad 90 % za 5 minut«, z minimalnimi stroški. Opozorila na podlagi dnevnika so mogoča, vendar običajno zahtevajo pravila razčlenjevanja ali mehanizme poizvedb dnevnika za zaznavanje vzorcev, kar povečuje zakasnitev in kompleksnost. Za takojšnja obvestila o zdravju sistema so metrike običajno hitrejša pot.
Odpravljanje napak in forenzična analiza
Ko se kaj pokvari, so inženirji pogosto najprej pogledajo dnevnike, saj ohranijo pripoved o tem, kaj se je zgodilo. En sam vnos v dnevnik lahko razkrije natančno sporočilo o napaki, prizadetega uporabnika in pot kode, ki je sprožila napako. Metrike vam lahko povedo, da so se stopnje napak ob 14:34 močno povečale, vendar le redko pojasnijo, zakaj. Zato zrele inženirske ekipe dnevnike obravnavajo kot orodje za preiskavo, metrike pa kot sistem zgodnjega opozarjanja.
Stroški in skladiščenje
Shranjevanje dnevnikov je običajno dražje od shranjevanja metrik, ker vsak vnos vsebuje več podatkov, obdobja hrambe pa so zaradi skladnosti s predpisi ali revizije pogosto daljša. Srednje velika aplikacija lahko dnevno ustvari milijone vrstic dnevnika, hkrati pa ustvari le nekaj sto edinstvenih nizov metrik. Številne organizacije za nadzor stroškov izvajajo vzorčenje dnevnikov, filtriranje pri viru ali večstopenjsko shranjevanje, medtem ko se hramba metrik običajno lahko podaljša na mesece ali leta.
Integracija v sodobni opazovalnosti
Trije stebri opazovanja so dnevniki, metrike in sledi, večina sistemov produkcijske ravni pa se zanaša na vse tri. Metrike zagotavljajo pregled zdravja na visoki ravni, dnevniki ponujajo poglobljene diagnostične podrobnosti, porazdeljene sledi pa povezujejo oboje s prikazom tokov zahtev med storitvami. Izbira med spremljanjem na podlagi dnevnikov in metrik je redko odločitev tipa »ali-ali«; namesto tega se ekipe odločijo, kako uravnotežiti naložbe v vsako od njih, glede na svoje operativne potrebe in proračun.
Prednosti in slabosti
Spremljanje na podlagi dnevnikov
Prednosti
+Bogate kontekstualne podrobnosti
+Odlično za odpravljanje napak
+Podpira iskanje po celotnem besedilu
+Zajame redke dogodke
Vse
−Višji stroški skladiščenja
−Počasnejša učinkovitost poizvedb
−Nastavitev kompleksnih opozoril
−Zahteva pravila razčlenjevanja
Spremljanje na podlagi meritev
Prednosti
+Hitro opozarjanje v realnem času
+Nizki stroški skladiščenja
+Enostavna nadzorna plošča
+Učinkovito združevanje
Vse
−Omejen kontekst dogodka
−Zgreši redke anomalije
−Zahteva vnaprej določene meritve
−Manj forenzičnih podrobnosti
Pogoste zablode
Mit
Za delovanje zanesljivega sistema potrebujete le eno vrsto spremljanja.
Resničnost
Večina produkcijskih sistemov ima koristi od obeh pristopov. Metrike z opozorili odkrijejo težave zgodaj, medtem ko dnevniki pomagajo inženirjem razumeti temeljni vzrok, ko je težava odkrita. Zanašanje samo na enega pušča slepe pege, ki lahko podaljšajo izpade.
Mit
Hlodi so vedno predragi za dolgoročno hrambo.
Resničnost
Čeprav je shranjevanje surovih dnevnikov lahko drago, pa strategije večplastnega shranjevanja, stiskanje in inteligentno vzorčenje omogočajo dolgoročno hrambo. Številni okviri za skladnost dejansko zahtevajo hrambo določenih dnevnikov več mesecev ali let, zato je upravljanje stroškov bolj povezano s strategijo kot z izogibanjem.
Mit
Metrike lahko nadomestijo dnevnike za odpravljanje napak.
Resničnost
Metrike vam povedo, da se je nekaj spremenilo, vendar le redko pojasnijo, zakaj. Pri preiskovanju določene uporabniške pritožbe ali redke napake so dnevniki običajno edini način za iskanje dejanskega vzroka. Metrike in dnevniki imajo pri odzivanju na incidente dopolnilno vlogo.
Mit
Več podatkov dnevnika vedno pomeni boljše spremljanje.
Resničnost
Prekomerno beleženje ustvarja šum, povečuje stroške in lahko dejansko upočasni odpravljanje težav. Učinkovito spremljanje na podlagi dnevnikov se osredotoča na zajemanje pomembnih dogodkov s strukturiranimi polji, namesto da bi vse možne podrobnosti zapisovali v nestrukturirano besedilo.
Mit
Spremljanje na podlagi meritev samodejno zazna vsako anomalijo.
Resničnost
Metrike zaznajo le tisto, kar eksplicitno merite. Če se pojavi nov način napake, ki ga nihče ni upošteval, ga bodo metrike sploh zgrešile. Dnevniki pa zajemajo nepričakovane dogodke, dokler jih aplikacija zapisuje.
Pogosto zastavljena vprašanja
Kakšna je glavna razlika med spremljanjem na podlagi dnevnikov in spremljanjem na podlagi meritev?
Spremljanje na podlagi dnevnikov beleži posamezne dogodke s podrobnim kontekstom, zaradi česar je idealno za odpravljanje napak in forenzično analizo. Spremljanje na podlagi metrik zbira numerične podatkovne točke skozi čas, zaradi česar je idealno za opozarjanje v realnem času in vizualizacijo trendov. Dnevniki odgovarjajo na »zakaj«, medtem ko metrike odgovarjajo na »kaj« in »koliko«.
Kaj je ceneje, spremljanje dnevnikov ali spremljanje metrik?
Spremljanje metrik je na splošno cenejše, ker je vsaka podatkovna točka majhna in kompaktna. Spremljanje dnevnikov je zaradi količine in podrobnosti vnosov v dnevnik dražje, zlasti pri velikih količinah. Vendar so stroški močno odvisni od politik hrambe, stopenj vnosa in cenovnega modela posameznega ponudnika.
Ali lahko izvajate opozarjanje z nadzorom na podlagi dnevnika?
Da, vendar je bolj zapleteno kot opozarjanje na podlagi metrik. Orodja, kot so Elasticsearch, Splunk in Loki, podpirajo pravila opozoril, ki se sprožijo, ko se pojavijo določeni vzorci dnevnika. Kompromis je večja zakasnitev in večji stroški obdelave v primerjavi z ocenjevanjem preprostega numeričnega praga.
Katera orodja so najboljša za spremljanje na podlagi dnevnikov?
Priljubljene izbire vključujejo ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Grafana Loki in Fluentd za zbiranje podatkov. Ponudniki storitev v oblaku ponujajo tudi upravljane storitve, kot so AWS CloudWatch Logs, Google Cloud Logging in Azure Monitor Logs za ekipe, ki raje ne upravljajo lastne infrastrukture.
Katera orodja so najboljša za spremljanje na podlagi meritev?
Prometheus je najpogosteje uporabljena odprtokodna možnost, pogosto v kombinaciji z Grafano za vizualizacijo. Komercialne platforme, kot so Datadog, New Relic in Dynatrace, ponujajo upravljano zbiranje meritev z vgrajenim opozarjanjem. Možnosti, ki so izvorno povezane z oblakom, vključujejo AWS CloudWatch Metrics in Google Cloud Monitoring.
Ali naj za odpravljanje napak v produkciji uporabljam dnevnike ali metrike?
Najprej uporabite metrike, da odkrijete, da je nekaj narobe, nato pa preklopite na dnevnike, da raziščete vzrok. Metrike zožijo časovno okno in prizadete sisteme, medtem ko dnevniki zagotavljajo podroben opis dogodkov, potreben za prepoznavanje temeljnega vzroka. Ta dvostopenjski pristop je standardna praksa v ekipah SRE in DevOps.
Kako dnevniki in metrike delujejo skupaj pri opazovanju?
Skupaj s porazdeljenimi sledmi tvorijo dva od treh stebrov opazovalnosti. Metrike vam dajejo sliko zdravja na visoki ravni, dnevniki zagotavljajo podrobne diagnostične podrobnosti, sledi pa povezujejo posamezne zahteve med storitvami. Večina sodobnih platform, kot so Datadog, Honeycomb in Grafana, integrira vse tri.
Kako dolgo naj hranim dnevnike v primerjavi z metrikami?
Običajna praksa je, da se metrike hranijo 13 mesecev ali dlje, ker je njihovo shranjevanje poceni in uporabno za načrtovanje zmogljivosti. Dnevniki se pogosto hranijo od 30 do 90 dni v vročem skladišču, starejši dnevniki pa se arhivirajo v hladnem skladišču ali objektnem skladišču, kot je S3, za potrebe skladnosti s predpisi ali občasnih preiskav.
Je strukturirano beleženje boljše od nestrukturiranega za spremljanje?
Strukturirano beleženje (običajno v formatu JSON) je bistveno boljše za spremljanje, ker omogoča zanesljivo razčlenjevanje, filtriranje in združevanje. Nestrukturirani dnevniki zahtevajo vzorce regularnih izrazov ali ročni pregled, kar upočasni tako opozarjanje kot odpravljanje napak. Večina sodobnih aplikacij privzeto oddaja strukturirane dnevnike.
Ali lahko spremljanje na podlagi metrik zazna težave, ki jih dnevniki spregledajo?
Da, še posebej pri postopnem zmanjševanju zmogljivosti ali nasičenosti virov. Počasno puščanje pomnilnika morda nikoli ne bo povzročilo vnosa v dnevnik, vendar se bo sčasoma jasno pokazalo v metrikah porabe pomnilnika. Metrike so tudi boljše za zaznavanje združenih vzorcev v tisočih zahtevah, kjer bi bili posamezni vnosi v dnevnik preveč hrupni za analizo.
Ocena
Spremljanje na podlagi dnevnikov izberite, kadar je vaša glavna potreba poglobljeno odpravljanje napak, revizijske sledi ali razumevanje konteksta določenih dogodkov. Spremljanje na podlagi meritev izberite, kadar potrebujete nadzorne plošče v realnem času, hitro opozarjanje in dolgoročno analizo trendov v velikem obsegu. V praksi najmočnejše strategije opazovanja združujejo oboje, pri čemer uporabljajo meritve za zgodnje odkrivanje in dnevnike za temeljito preiskavo.