Как стать автором
Обновить

Комментарии 11

Спасибо за статью. Можно ли как то управлять временем хранения логов?

Наверное надо уточнить что для SSD нужно /loki/api/v1/push проксировать на write ноды. Всё остальное на read.

По поводу retention. Я настроил lifecycle policy на AWS S3 так как я могу его там настроить в зависимости от tenant. Это мне чем то грозит? Кроме запросов в никуда?

Loki поддерживает 2 вида ретеншена - через table manager и через компактор. Ретеншн через table manager полагается на lifecycle policy в S3. Поэтому это обязательно (но при условии что включен непосресдтвенно ретеншн через table_manager). Это нужно для того, чтобы правильно очищались индексы. Иначе Loki может считать что чанки есть (потому что индекс на них ссылается), а по факту их нет - и может выливаться в ошибки при запросах.

Более гибким является настройка ретеншена через компактор - она так же позволяет настраивать его для отдельных тенантов. При этом выставлять в таком случае какие-либо полиси в бакете лучше не стоит - точно так же - чревато потерей данных. Поэтому, если честно, я не вижу причин не использовать ретеншн через компактор.

Резюмируя, настраивать ретеншн нужно через один из двух механизмов - table manager или compactor. При этом для первого нужны lifecycle policy в S3 бакете. Полиси без настройки ретеншена могут привести к ошибкам в запросах.

Спасибо. Поиграемся.

Задача сбора логов
Каждая система, будь то syslog, Elasticsearch, или системы, которые построены на ClickHouse — даже сама Grafana Loki — отвечают на эти вопросы по-разному.

А вы точно настоящий строитель? syslog - стандарт для передачи, обработки и хранения логов, Elasticsearch - поисковый движок(слово search в названии не смущает?) ClickHouse -DBMS, Loki - агрегатор.
Дальше статью не читал.

чукча - не читать, чукча - писатель комментариев

Чем лучше принимать с "железок" сообщения syslog (UDP/514) с целью положить их в Loki ?

Их можно форвардить напрямую в промтейл - https://grafana.com/docs/loki/latest/clients/promtail/configuration/#syslog, если я правильно понял вопрос.

Да, это больше, чем нужно. Проблему можно решить через дедупликацию данных. Для этого есть компонент-компактор. Работает так:

Вот эта часть вызывает вопросы, в документации не нашел примеров

Так же наткнулся на коммент в issue

The compactor (as of the time of this message) does not touch chunks at all and does no de-duplication.

Правда в несколько другом контексте дедупликации

Вопрос

Дистрибьютор отправляет чанки сразу в несколько инджесторов. Теперь в storage будет храниться в три раза больше данных

Это действительно так?

Есть ли пример конфига с которым эта проблема решается через compactor?

Спасибо большое за ваш комментарий! 

Действительно, после глубокого изучения признаю, что тут была отражена не совсем корректная информация. В самом деле, компактор не занимается дедупликацией данных в S3. Этим занимаются сами инджестеры с использованием кешей (https://grafana.com/docs/loki/latest/operations/storage/boltdb-shipper/#write-deduplication-disabled).

Судя по всему данные действительно пишутся в нескольких копиях в S3 и дедуплицириуются уже только на квериерах - ссылка1 и ссылка2, сравнивая таймстемпы и тексты логов.

В статью также внес изменения. Еще раз спсаибо за замечание!

P.S. Прошу прощения, что только сейчас отвечаю — пропустил изначально.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий