Kui hästi te tunnete Loki, Grafana sisseehitatud logi kogijat?
sobes.tech AI
Vastus AI-lt
Loki on hästi tuntud. See on horisontaalselt skaleeritav, kõrge kättesaadavusega logide kogumise süsteem, mille on välja töötanud Grafana Labs. Põhijoonus on metaandmete (siltide) indeksimine, mitte kogu logi sisu, mis oluliselt vähendab salvestamise ja indekseerimise kulusid.
Loki arhitektuur hõlmab mitmeid põhikomponente:
- Distributor: Võtab vastu sisenevad logid, valideerib need, jagab ja suunab Ingesterile.
- Ingester: Vastutab logide salvestamise eest pikaajaliseks säilitamiseks (näiteks S3, GCS, MinIO või kohalik salvestus) ning viimaste andmete vahemälusse salvestamise eest, et kiirendada päringuid.
- Querier/Query-Frontend: Töötleb logide lugemise päringuid. Querier võib nõuda andmeid nii Ingestersilt (uusimate logide jaoks) kui ka pikaajalisest salvestusest. Query-Frontend võib tulemusi vahemällu salvestada ja keerulisi päringuid väiksemateks osadeks jagada.
- Compactor: Kasutatakse Parquet või sarnaste salvestuslahenduste puhul, tihendab väiksed logitükid suuremateks, et optimeerida lugemist.
Loki kasutab Prometheus-sarnast märgistussüsteemi logide indekseerimiseks. Päringud teostatakse LogQL keeles, mis on sünaksiselt sarnane PromQL-ile ning võimaldab filtreerida logisid märgistuste ja sisu järgi ning teha agregatsioone.
Tihe integratsioon Grafanaga, Loki toimib andmeallikana. Logisid saab hõlpsasti ühendada Prometheuse metrikatega, kasutades samu märgistusi.
LogQL näited:
// Valige kõik logid namespace'ist "production"
{namespace="production"}
// Valige logid namespace'ist "production", mis sisaldavad sõna "error"
{namespace="production"} |= "error"
// Loendage logi kirjeid viimase tunni jooksul, grupeerituna konteinerite kaupa
sum by (container) (count_over_time({namespace="production"}[1h]))
Loki kasutatakse Kubernetes klastrites Promtaili (daemonset) või Fluentd/Fluent Bit väljundpluginaga logide kogumiseks ja Loki'le saatmiseks. S3 ühilduv salvestus on kasutusel taustsüsteemina.
Loki eelised:
- Ekonomiline, kuna indekseerib ainult metadatasid.
- Kõrge skaleeritavus.
- Lihtne paigaldada ja hallata võrreldes raskemate süsteemidega (näiteks ELK).
- Tihe integratsioon Grafana/Prometheus ökosüsteemiga.
Miinused:
- Otsing ainult kogu teksti vastavuse järgi logide sees, ilma arenenud otsinguvõimalusteta (nagu Elasticsearch).
- Sõltuvus märgistuste kvaliteedist ja järjepidevusest tõhusa indekseerimise ja otsingu jaoks.
Kokkuvõttes on Loki suurepärane lahendus keskse logide kogumise jaoks, kui on vaja skaleeritavust ja integratsiooni Grafana'ga, ning kogu teksti otsing iga logi välja jaoks ei ole kriitiline nõue.