Späť na blog
2026-06-04Monitoring

Logging stack s Loki

OpenShift Logging 5.x prešlo z Elasticsearch na Loki.

OpenShift Logging historicky používal EFK stack (Elasticsearch, Fluentd, Kibana). Od verzie 5.7 je odporúčaný backend Loki (LokiStack CR) a collector je Vector, nie Fluentd. Elasticsearch cesta je oficiálne deprecated a v 6.x sa odstráni.

Loki funguje inak než Elasticsearch – indexuje iba labely, nie plný text logov. Search je pomalší, ale storage a RAM footprint sú násobne menšie. Pre klaster s 1 TB denných logov ušetríš gigabajty RAM a desiatky CPU. Query jazyk LogQL je podobný PromQL, čo dev tímom uľahčí prechod.

LokiStack CR spravuje celý deployment. Definuje storage backend (S3, Azure Blob, GCS, alebo interná ODF cez ObjectBucketClaim), size (1x.demo, 1x.extra-small, 1x.small, 1x.medium – reálne cca 1 TB/deň) a tenants. OpenShift automaticky vytvorí tri tenants: `application`, `infrastructure`, `audit`.

Vector je novší log collector v Rust. Nižšie využitie CPU/RAM než Fluentd, lepšia backpressure a transformácie cez VRL (Vector Remap Language). Zbiera logy z `/var/log/pods`, obohatí ich Kubernetes metadatami (pod, namespace, container, labels) a pošle do Loki cez HTTP push API.

Query cez konzolu funguje v novom Logs view (Observe → Logs). Filtre podľa namespace, pod, severity, plus voľný LogQL. Pre programový prístup použi loki-gateway Route s bearer tokenom. RBAC je per tenant – developer vidí iba `application` logy zo svojich projektov, cluster-admin všetko vrátane `audit`.