Sobes.tech
Middle

Koliko ste upoznati sa Loki, nativnim kolektorom logova od Grafana?

sobes.tech АИ

Одговор од АИ

Loki je dobro poznat. To je horizontalno skalabilan, visoko dostupan sistem za agregaciju logova, koji je razvio Grafana Labs. Ključna osobina je indeksiranje ne celog sadržaja logova, već samo metapodataka (štitova), što značajno smanjuje troškove skladištenja i indeksiranja.

Arhitektura Loki uključuje nekoliko glavnih komponenti:

  • Distributor: Prima dolazne logove, validira ih, šarda ih i preusmerava u Ingester.
  • Ingester: Odgovoran je za zapisivanje logova u dugotrajno skladište (kao S3, GCS, MinIO ili lokalno skladište) i kešira poslednje podatke u memoriji za ubrzanje upita.
  • Querier/Query-Frontend: Obradjuje zahteve za čitanje logova. Querier može da zahteva podatke i od Ingesters (za nedavne logove), kao i iz dugotrajnog skladišta. Query-Frontend može keširati rezultate i razbijati složene zahteve na manje delove.
  • Compactor: Za skladišta poput Parquet, zgušnjava male delove logova u veće radi optimizacije čitanja.

Loki koristi sistem oznaka sličan Prometheus za indeksiranje logova. Zahtevi se izvršavaju na jeziku LogQL, koji je sintaktički sličan PromQL i omogućava filtriranje logova po oznakama i sadržaju, kao i izvođenje agregacija.

Integracija sa Grafana je veoma uska, Loki funkcioniše kao datasource. Logovi se lako povezuju sa metrima iz Prometheus pomoću istih oznaka.

Primeri korišćenja LogQL:

// Izabrati sve logove iz namespace "production"
{namespace="production"}

// Izabrati logove iz namespace "production" koji sadrže reč "error"
{namespace="production"} |= "error"

// Prebrojati broj log unosa u poslednjem satu, grupisano po kontejneru
sum by (container) (count_over_time({namespace="production"}[1h]))

Koristimo Loki u Kubernetes klasterima sa agentima tipa Promtail (daemonset) ili Fluentd/Fluent Bit output plugin za prikupljanje logova i slanje u Loki. S3-kompatibilno skladište se koristi kao backend.

Prednosti Loki:

  • Ekonomičnost zahvaljujući indeksiranju samo metapodataka.
  • Visoka skalabilnost.
  • Jednostavnost implementacije i održavanja u poređenju sa težim sistemima (npr. ELK).
  • Tanka integracija sa ekosistemom Grafana/Prometheus.

Nedostaci:

  • Pretraživanje samo po puntextualnom poklapanju unutar logova bez naprednih mogućnosti pretraživanja (kao Elasticsearch).
  • Zavisnost od kvaliteta i konzistentnosti oznaka za efikasno indeksiranje i pretraživanje.

U celini, Loki je odličan izbor za centralizovano prikupljanje logova, kada postoji potreba za skalabilnošću i integracijom sa Grafana, a puntextualno pretraživanje po svakom polju loga nije kritički zahtev.