Cik labi pazīstat Loki, Grafana iebūvēto žurnālu vācēju?
sobes.tech AI
Atbilde no AI
Loki ir labi pazīstams. Tas ir horizontāli mērogojams, augstas pieejamības logu apkopošanas sistēma, ko izstrādājusi Grafana Labs. Galvenā īpašība — indeksēt tikai metadatus (zīmes), nevis visu logu saturu, kas ievērojami samazina uzglabāšanas un indeksēšanas izmaksas.
Loki arhitektūra ietver vairākas galvenās sastāvdaļas:
- Distributor: Pieņem ienākošos logus, tos validē, sadala un nosūta uz Ingester.
- Ingester: Atbild par logu ierakstīšanu ilgtermiņa glabāšanā (piemēram, S3, GCS, MinIO vai vietējā glabātuvē) un pēdējo datu kešošanu atmiņā, lai paātrinātu vaicājumus.
- Querier/Query-Frontend: Apstrādā logu lasīšanas pieprasījumus. Querier var pieprasīt datus gan no Ingesters (jaunākajiem logiem), gan no ilgtermiņa glabāšanas. Query-Frontend var kešot rezultātus un sadalīt sarežģītus pieprasījumus mazākās daļās.
- Compactor: Parquet vai līdzīgu glabātuves gadījumā, saspiež mazus logu fragmentus lielākos, optimizējot lasīšanu.
Loki izmanto Prometheus līdzīgu zīmju sistēmu logu indeksēšanai. Pieprasījumi tiek veikti LogQL valodā, kas ir sintaktiski līdzīga PromQL un ļauj filtrēt logus pēc zīmēm un saturu, kā arī veikt agregācijas.
Intgrācija ar Grafana ir ļoti cieša, Loki darbojas kā datu avots. Logi ir viegli sasaistāmi ar Prometheus metrikiem, izmantojot tās pašas zīmes.
LogQL piemēri:
// Izvēlēties visus logus no "production" namespaces
{namespace="production"}
// Izvēlēties logus no "production" namespaces, kas satur vārdu "error"
{namespace="production"} |= "error"
// Saskaitīt log ierakstu skaitu pēdējās stundas laikā, grupējot pēc konteineriem
sum by (container) (count_over_time({namespace="production"}[1h]))
Loki tiek izmantots Kubernetes klasteros ar agentiem, piemēram, Promtail (daemonset) vai Fluentd/Fluent Bit output plugin, logu vākšanai un sūtīšanai uz Loki. S3 saderīgs glabātuves kā backend.
Loki priekšrocības:
- Taupība, indeksējot tikai metadatus.
- Augsta mērogojamība.
- Vienkārša uzstādīšana un ekspluatācija salīdzinājumā ar smagākām sistēmām (piemēram, ELK).
- Tuva integrācija ar Grafana/Prometheus ekosistēmu.
Trūkumi:
- Meklēšana tikai pēc pilnīga teksta atbilstības logu iekšienē, bez attīstītām meklēšanas iespējām (kā Elasticsearch).
- Atkarība no zīmju kvalitātes un konsekvences efektīvai indeksēšanai un meklēšanai.
Kopumā Loki ir lieliska risinājums centralizētai logu vākšanai, kad ir nepieciešama mērogojamība un integrācija ar Grafana, un pilna teksta meklēšana katrā loga laukā nav kritisks prasība.