Kiek pažįstate Loki, „Grafana“ gimtąjį žurnalo rinkėją?
sobes.tech AI
Atsakymas iš AI
Loki yra gerai žinomas. Tai horizontaliai mastelį didinantis, aukšto prieinamumo logų surinkimo sistema, kurią sukūrė Grafana Labs. Pagrindinė savybė — indeksuoti tik metaduomenis (žymenis), o ne visą logų turinį, kas žymiai sumažina saugojimo ir indeksavimo išlaidas.
Loki architektūra apima keletą pagrindinių komponentų:
- Distributor: Priima įeinančius logus, juos validuoja, šarduoja ir nukreipia į Ingester.
- Ingester: Atsakingas už logų įrašymą į ilgalaikį saugojimą (pvz., S3, GCS, MinIO arba vietinį saugojimą) ir paskutinių duomenų kaupimą atmintyje, kad pagreitintų užklausas.
- Querier/Query-Frontend: Apdoroja logų skaitymo užklausas. Querier gali užklausti duomenis tiek iš Ingesters (naujausiems logams), tiek iš ilgalaikio saugojimo. Query-Frontend gali talpinti rezultatus ir suskaidyti sudėtingus užklausimus į mažesnius.
- Compactor: Naudojamas Parquet ar panašių saugyklų atveju, smulkias logų dalis sujungia į didesnes, optimizuodamas skaitymą.
Loki naudoja Prometheus panašią žymių sistemą logų indeksavimui. Užklausos vykdomos LogQL kalba, kuri yra sintaksiškai panaši į PromQL ir leidžia filtruoti logus pagal žymes ir turinį, taip pat atlikti agregacijas.
Gausi integracija su Grafana, Loki veikia kaip duomenų šaltinis. Logai lengvai susiejami su Prometheus metrikomis naudojant tas pačias žymes.
LogQL pavyzdžiai:
// Pasirinkti visus logus iš "production" namespace
{namespace="production"}
// Pasirinkti logus iš "production" namespace, kuriuose yra žodis "error"
{namespace="production"} |= "error"
// Suskaičiuoti log įrašų skaičių per paskutinę valandą, grupuojant pagal konteinerį
sum by (container) (count_over_time({namespace="production"}[1h]))
Loki naudojamas Kubernetes klasteriuose su agentais, tokiais kaip Promtail (daemonset) arba Fluentd/Fluent Bit output plugin, surenkant logus ir siunčiant juos į Loki. S3 suderinamas saugojimas naudojamas kaip backend.
Loki privalumai:
- Taupymas dėl tik metaduomenų indeksavimo.
- Aukštas mastelis.
- Paprastas diegimas ir valdymas, palyginti su sudėtingesnėmis sistemomis (pvz., ELK).
- Tvirta integracija su Grafana/Prometheus ekosistema.
Trūkumai:
- Paieška tik pagal pilną tekstą logų viduje, be pažangių paieškos galimybių (kaip Elasticsearch).
- Priklausomybė nuo žymių kokybės ir nuoseklumo efektyviam indeksavimui ir paieškai.
Apskritai, Loki yra puikus sprendimas centralizuotam logų rinkimui, kai reikalingas mastelis ir integracija su Grafana, o pilno teksto paieška kiekviename lauke nėra kritiškai svarbi.