Альтернативы: Loki, Grafana и когда что
ELK — не единственный путь; у Grafana Loki другой подход к индексации, и иногда он выгоднее.
Grafana Loki — система логирования, которая индексирует только метки (labels) логов, а не их содержимое, что делает её дешевле в хранении, но компромиссной в полнотекстовом поиске.
Главное отличие подхода
Elasticsearch индексирует всё содержимое каждого лога — отсюда мощный полнотекстовый поиск, но и высокая стоимость хранения и вычислений (инвертированный индекс по всему тексту велик). Loki переворачивает идею: он индексирует только небольшой набор меток ({app="checkout", level="error"}), а само тело лога хранит сжатым и не индексирует. Поиск по тексту внутри выбранного по меткам потока делается перебором на лету.
Elasticsearch: индексирует ВЕСЬ текст
дорого хранить, но любой полнотекст быстр
Loki: индексирует только МЕТКИ {app, level}
дёшево хранить, текст ищется перебором
внутри отобранного по меткам потокаLoki + Grafana как стек
Loki создан Grafana Labs и идеально стыкуется с Grafana и Prometheus: те же метки, тот же интерфейс. Сборщик у Loki — Promtail (или тот же Fluent Bit). Получается «лёгкий» стек логов, естественный для тех, у кого мониторинг уже на Prometheus+Grafana (наш отдельный учебник): логи и метрики смотрятся в одном Grafana-дашборде с общими метками.
Сравнение по сути
| Критерий | ELK | Loki |
| Индексация | весь текст | только метки |
| Полнотекст. поиск | мощный, быстрый | перебор, медленнее на больших объёмах |
| Стоимость хранения | выше | ниже |
| Аналитика/дашборды | богатые (Kibana) | проще (Grafana) |
| Экосистема | самостоятельная | Prometheus + Grafana |
Как работает под капотом: цена индекса
Корень различий — что вы платите за инвертированный индекс. ELK строит его по всем токенам всех логов: дорого по диску и CPU при записи, зато запрос «найди слово X где угодно» мгновенен. Loki строит индекс только по меткам: дёшево, но запрос «найди слово X» вынужден прочитать и просканировать все логи подходящих по меткам потоков за период. Поэтому Loki блистает, когда вы хорошо разметили логи метками и обычно знаете, где искать (сервис, уровень), и проседает на «полнотекстовом поиске по всему сразу».
Другие альтернативы
Кратко: облачные (Datadog, Splunk, Grafana Cloud) — не надо эксплуатировать самим, но дорого по подписке; ClickHouse — колоночная БД, в которую всё чаще складывают логи ради дешёвой аналитики на огромных объёмах; Vector — современный сборщик/конвейер (альтернатива Logstash/Fluentd). Рынок широк, ELK — не догма.
Когда что выбирать
- ELK/OpenSearch — нужен мощный полнотекстовый поиск и богатая аналитика по содержимому логов, ищете «иголку в стоге» по произвольному тексту, готовы платить за хранение.
- Loki — уже живёте в Prometheus+Grafana, логи хорошо размечаются метками, важна дешевизна хранения, полнотекст по всему массиву не критичен.
Как не ошибиться с выбором
Выбор системы логирования стоит делать не по моде, а по нескольким честным вопросам о вашем профиле. Насколько часто вам нужен полнотекстовый поиск по произвольному содержимому, а не по заранее известным меткам? Какой у вас объём логов и насколько критична стоимость хранения? Есть ли у вас уже мониторинг на Prometheus+Grafana, в который логи органично впишутся? Какая экспертиза у команды — кто будет это эксплуатировать? Ответы обычно довольно быстро склоняют чашу: команда с богатым полнотекстовым поиском и аналитикой и без привязки к Grafana тяготеет к ELK; команда, живущая в Grafana, с дисциплинированной разметкой логов метками и чувствительная к цене — к Loki.
Важно и то, что выбор не обязан быть единственным и вечным. Многие зрелые организации используют несколько систем одновременно: ELK для логов, требующих мощного поиска и SIEM, Loki для объёмных инфраструктурных логов, где хватает поиска по меткам, и облачный сервис для команд, не желающих эксплуатировать стек самим. Системы логирования — это инструменты под задачи, а не религия; навык инженера эксплуатации не в верности одному стеку, а в умении подобрать подходящий под конкретный профиль логов и осознанно взвесить компромиссы каждого.
Частые ошибки
- Брать ELK по инерции. Если у вас мониторинг на Grafana и небольшие, хорошо размеченные логи, Loki может быть в разы дешевле при том же удобстве.
- Брать Loki ради полнотекста. Если ключевая задача — искать произвольный текст по всему объёму, Loki будет медленным; это сценарий ELK.
- Игнорировать стоимость хранения. На больших объёмах разница в цене индексации между подходами — это реальные деньги; считайте её до выбора.
Итоги
- Loki индексирует только метки (дёшево, но полнотекст — перебором), ELK индексирует весь текст (дорого, но поиск мощный).
- Loki естественен в экосистеме Prometheus+Grafana; ELK самодостаточен с Kibana.
- Есть и другие пути: облачные сервисы, ClickHouse для аналитики, Vector как сборщик.
- Выбор — про баланс «мощь полнотекстового поиска» против «стоимость хранения» под ваш профиль логов.