Trajanje: 4 dana
Cilj: praktična implementacija sustava monitoringa, vizualizacije i alertinga te dugotrajne pohrane podataka (VictoriaMetrics) uz objašnjenje koncepata i detelja rada i neprekidne hands on labove. Prikazani su slučajevi nadzora standardnih servera ( putem node exportera), aplikacija ( npr apache2), mreže (konverzijom SNMP-a u prometheus format), vanjskih servisa ( npr. monitoriranje odziva web sitea) kao i podova i servisa u Kubernetes clusteru.
Obrađeno je korištenje gotovih dashboarda kao i izrada vlastitih/prilagodba postojećih. Ovdje se ulazi u detalje rada i procesiranje vraćenih podataka a kako bi se mogli prikazati na željeni način na jednom od panela (transformacije, višestruki upiti itd). Pored integracije s prometheusom, obrađuje se integracija s ostalim izvorima ( SQL, JSON kroz HTTP). Također, obrađuje se integracija nadzora logova u Grafanu putem Loki servisa i eksport logova sa servera u Loki.
Sadržaj:
Prometheus – koncepti i prikupljanje metrika
- Standardizacija metrika
- Definiranje metrika raznolikih entiteta (hostovi, aplikacije, Kubernetes, …) na konzistentan način putem standardnih tipova ( counter, gauge, histogram…)
- Labeliranje metrika za označavanje izvora metrike
- Ograničenja s količinom labela
- Exporteri i scraping:
- Izlaganje metrika u standardnom (prometheus) formatu od strane agenata ( “exporter”) ili samih instrumentiranih servisa.
- Primjeri exportera : Node Exporter (za OS/hardver), Kubernetes Exporter (za metrike klastera) , specijalizirani exporteri ( blacbox, cloudprober) – nadzor mreže i servisa, SNMP exporter – “konverzija” SNMPa u prometheus format
- principi rada exportera: “lokalno” očitanje specifične vrijednosti (npr. zauzeće diska) ili očitanje metriku drugim protokolom i prevođenje u prometheus format ( npr SNMP exporter).
- “scraping” – periodički dohvat metrika putem HTTP(S) protokola od strane Prometheus servera
- instalacija node exportera ( ostali exporteri naknadno)
- Metrike i labele:
- exporter labele: slanje metrike specifičnog entiteta sa trenutnom vrijednosti te labelama koje identificiraju entitet
- labele dodane od Prometheusa: Prometheus server dodaje svoje standardne labele (npr. instance, job za identifikaciju izvora scrapinga) i konfigurirane dodatne labele ( npr za oznaku site-a itd)
- PromQL (Prometheus Query Language):
- Prometheus scrape-a više exportera, dobiva metrike s labelama i pohranjuje ih
- dohvaćanje, agregacija, filtriranje i analiza metrika i rezultata korištenjem upitnog promql jezika u prometheusu bez Grafane
- tipovi upita: instant vector vs range vector upiti, vector vs matrix rezultati
- tipovi upita ovisno o api endpointovi:
- /api/v1/query: “egzaktni” podaci, analiza vraćenih podataka
- /api/v1/query_range upit: interpolirani podaci, kroz vrijeme, analiza vraćenih podataka
- obrada podataka ugrađenim funkcijama, detalji i višestruki primjeri
Grafana: Vizualizacija, Analiza i Alerting
- Koncepti: izvori podataka, dashboardovi s panelima, standardizacija sučelja i komunikacije panela ( time picker, varijable), aleritng
- Fleksibilnost izvora podataka
- Spajanje na Prometheus uz PromQL.
- Mogućnost spajanja na ostale izvore (npr. mysql i sl. ), uz korištenje njihov nativnog upitnog jezik.
- Dugoročna pohrana i korištenje VictoriaMetrics umjesto Prometheus-a
- interni time series database TSDB u Prometheusu: mogućnosti i ograničenja
- dugoročna pohrana podataka i njihov dohvat: metode i principi
- VictoriaMetrics
- Koncepti: Zamjena za Prometheus TSDB: high-performance baza podataka (TSDB) kao remote storage zamjena za Prometheus, omogućujući ugrađenu dugoročnu pohranu Potpuna kompatibilnost s PromQL-om – Grafana i dalje šalje Prometheus upite
- Implementacija
- Vizualizacija:
- Kreiranje nadzornih ploča (dashboarda) s panelima (vizualizacijama), minimalni inicijalni primjer
- Uvoz gotovih, standardnih nadzornih ploča (npr. za Node Exporter)
- Kreiranje vlastitih dashboarda s panelima, detalji
- Korištenje dashboard varijabli za povezivanje/osvježavanje panela: tipovi varijabli i njigovo korištenje; višestruki primjeri
- Query: korištenje makro varijabli (npr za rate/irate promql funkcije), analiza upita i odgovora
- Tipovi panela: Time Series, State Timeline, Stat & Gauge, Table, Geomap, …
- Transformacije (Client-side processing): obrada podataka u browseru nakon što stignu iz jednog ili više izvora za potrebe prilagodbe kod vizualizacija
- Interrni detalji rada potrebni za razumijevanje vizaulizacija: data frames, fields, labels, values…
- Mogućnosti kod transformacija
- Višestruki primjeri
- Expressions ( server side processing)
- Implementacija, konfiguracija i vizualizacija podataka iz ostalih prometheus exportera
- cloudprober
- jednostavan nadzor putem icmp-a
- nadzor rada web sitea; histogram metrike i heatmap vizualizacija
- ostale mogućnosti
- snmp exporter: principi rada; nadzor mreže kroz prometheus/grafanu
- cloudprober
- Korištenje ostalih “metričkih” izvora podataka
- JSON formatirani podaci putem http/s-a: instalacija ( Plugin) , spajanje, koriištenje
- praćenje već postojećih metrika izloženih u JSON formatu
- prilagodba JSON formata za mapiranje u željenu metriku
- prilagodba nestandardnih vanjskih podataka preko custom servera i konverzije u JSON
- praćenje već postojećih metrika izloženih u JSON formatu
- SQL
- spajanje, korištenje, makro varijable
- Testdata: statički podaci
- Kreiranje vizualizacija povezivanjem upita s više izvora; primjer: geomap vizualizacija
- JSON formatirani podaci putem http/s-a: instalacija ( Plugin) , spajanje, koriištenje
- Korištenje “nemetričkih” izvora podataka: logovi
- Loki: pandan grafani za logove
- instalacija, konfiguracija
- instalacija i konfiguracija promtail klijenta za eksport logova na loki
- Grafana: integracija s Lokijem
- Kreiranje dashboarda s panaelima za praćenje hosta s i panela s logovima
- Loki: pandan grafani za logove
- Implementacija top-down rješenja
- Korištenje linkova i varijabli na panelima za prikaz specifičnijih dashboarda
- Monitoring Kubernetes clustera
- Principi rada
- Instalacija putem operatora, selekcija komponenti, konfiguracija
- Korištenje gotovih dashboardova za nadzor statusa clustera
- Alerting:
- Opcije: centralizirani alerting u Grafani / korištenje Alertmanagera
- Definiranje i konfiguracija notifikacijskog kanala ( contact point)
- Definiranje Notification policies
- Postavljanje alerata i pragova, rutiranje putem notifikacija ili direktno na Contact point
- Testiranje i praćenje alerata
- Administracija:
- Dodjela prava: Users, Teams, Service accounts; Roles; Folders: Permissions: koncepti i implementacija