Loki vs ELK: miért Loki-t választottunk 38 szerverre
Az ELK stack drágább, de több mindent tud. Mi a Loki-t választottuk — íme a számok és a trade-offok.
A log store nem arra való, hogy okos legyen — arra, hogy olcsón és gyorsan találjon.
Az ELK stack (Elasticsearch + Logstash + Kibana) iparági standard. De 38 szerverre, napi ~600 GB log-ra, a storage és memória költsége jelentős lett volna. A Loki másképp dolgozik: nem indexeli a log tartalmat, csak a label-eket (pl. app=api, env=prod, host=srv-12). A "grep-szerű" keresést aztán full-scan-nel végzi a címkézett adathalmazon. Lassabb, de 4–6x olcsóbb a tárolás.
A Loki mellett szóló érvek
- Tárolási költség: 4x olcsóbb — objektumtárolásra (S3-kompatibilis) megy
- Promtail agent könnyű — kevesebb memória és CPU a forrás szerveren
- Grafana natív integráció — nem kell külön Kibana-t húzni
- Egyszerűbb karbantartás — nincs ES shard rebalance dráma
- Kellő gyorsaság: a Loki query 95%-a 5 mp alatt visszajön, ha a címkék jók
Amit elveszítünk: a full-text search sebessége. Ha azt keresed, hogy "error user X", Loki egy full scan-t csinál, és 30 mp lehet. ELK-val 200 ms. De ezt a trade-off-ot elfogadtuk, mert a legtöbb debugging-unk címkézve van (app + env + host), és a teljes szöveges keresést csak ritkán használjuk.