Wiki
DevOps

Loki — что это простыми словами

Loki — Grafana-приложение для логов, как Prometheus для метрик. Индексирует только labels, а не содержимое. В 10 раз дешевле по storage vs Elasticsearch.

Loki — система агрегации логов от Grafana Labs, задуманная как "Prometheus для логов". Ключевая идея: индексировать только labels (job, instance, level), а не содержимое строк. Логи хранятся сжатыми чанками в S3/файлах, поиск — grep-стиль по chunk'ам.

Отличие от Elasticsearch: ES индексирует каждое слово каждой лог-строки → быстрый full-text search, но storage в 5-10 раз дороже (100 ГБ логов → 500 ГБ индексов). Loki хранит те же 100 ГБ, но full-text ищет через grep — медленнее на большом окне, но копеечная стоимость.

Использование: (1) Promtail / Grafana Alloy — агент на сервере, читает `journalctl` / файлы логов, шлёт в Loki. (2) Loki-сервер принимает и хранит. (3) Grafana Explore — интерфейс поиска через LogQL (SQL-подобный DSL: `{job="nginx"} |= "error" | rate[5m]`).

Практика: минимальный stack на VPS — Grafana + Prometheus + Loki + Promtail. Один VPS-M €12/мес держит логи 20 хостов + метрики. Готовый docker-compose — в `/docs/observability`.

Частые вопросы

Loki или ELK?
ELK (Elastic + Logstash + Kibana) — full-text search, но дорого и жрёт RAM. Loki — cheap, хорош для label-based фильтрации. Для 90 % — Loki.
Retention?
По умолчанию 7 дней. Настраивается через compactor.retention_enabled + retention_period. Для 30 дней логов 10 хостов — ~50 ГБ.

Смотрите также