Jak jste obeznámen s Loki, nativním sběračem logů od Grafana?
sobes.tech AI
Odpověď od AI
Loki je dobře známý. Je to horizontálně škálovatelný, vysoce dostupný systém agregace logů, který vyvíjí Grafana Labs. Klíčovou vlastností je indexování pouze metadat (štítků), nikoli celého obsahu logů, což výrazně snižuje náklady na ukládání a indexování.
Architektura Loki zahrnuje několik hlavních komponent:
- Distributor: Přijímá příchozí logy, validuje je, sharduje a přeposílá do Ingesteru.
- Ingester: Zodpovídá za zápis logů do dlouhodobého úložiště (například S3, GCS, MinIO nebo lokální úložiště) a cache posledních dat v paměti pro urychlení dotazů.
- Querier/Query-Frontend: Zpracovává požadavky na čtení logů. Querier může dotazovat data jak od Ingesters (pro nedávné logy), tak z dlouhodobého úložiště. Query-Frontend může cachovat výsledky a rozdělovat složité dotazy na menší části.
- Compactor: U úložišť jako Parquet, zhutňuje malé části logů do větších pro optimalizaci čtení.
Loki používá systém štítků podobný Prometheus pro indexaci logů. Dotazy jsou prováděny v jazyce LogQL, který je syntakticky podobný PromQL a umožňuje filtrovat logy podle štítků a obsahu, stejně jako provádět agregace.
Integrace s Grafana je velmi těsná, Loki funguje jako datasource. Logy jsou snadno spojitelné s metrikami z Prometheus pomocí stejných štítků.
Příklady použití LogQL:
// Vybrat všechny logy z namespace "production"
{namespace="production"}
// Vybrat logy z namespace "production", obsahující slovo "error"
{namespace="production"} |= "error"
// Spočítat počet logových záznamů za poslední hodinu, seskupených podle kontejneru
sum by (container) (count_over_time({namespace="production"}[1h]))
Loki používáme v Kubernetes clusterech s agenty typu Promtail (daemonset) nebo Fluentd/Fluent Bit output pluginem pro sběr logů a jejich odeslání do Loki. S3-kompatibilní úložiště je používáno jako backend.
Výhody Loki:
- Úspornost díky indexování pouze metadat.
- Vysoká škálovatelnost.
- Jednoduchost nasazení a provozu ve srovnání s těžšími systémy (například ELK).
- Těsná integrace s ekosystémem Grafana/Prometheus.
Nevýhody:
- Vyhledávání pouze podle plnotextového shody uvnitř logů bez pokročilých vyhledávacích funkcí (jako Elasticsearch).
- Závislost na kvalitě a konzistenci štítků pro efektivní indexaci a vyhledávání.
Celkově je Loki skvělým řešením pro centralizovaný sběr logů, když je potřeba škálovatelnost a integrace s Grafana, a plnotextové vyhledávání v každém poli logu není kritickým požadavkem.