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
  • 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
    • SQL
      • spajanje, korištenje, makro varijable
    • Testdata: statički podaci
    • Kreiranje vizualizacija povezivanjem upita s više izvora; primjer: geomap vizualizacija
  • 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
  • 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