Способ хороший, однако должен заметить, что приведённая конфигурация fluent-bit может терять чанки. Как я понял, пайплайн работает так: из файла читаются чанки и поднимаются в память. После успешного чтения в DB записывается новая позиция. Далее чанк обрабатывается парсерами, фильтрами и направляется в output. Всё это время чанк держится в памяти. Однако если в output отправить не удалось, то информация об этом не будет никуда сохранена. А если процесс перезапустится, так и не успев отправить этот чанк, то чанк будет потерян: перечитываться заново чанк не будет (т.к. в базе уже записана новая позиция), а сам чанк был в памяти, и после рестарта процесса не сохранился.Чтобы избежать потери логов, нужно настроить filesystem storage и бесконечные ретраи в output. Тогда после чтения чанк сразу будет записываться на диск, и только потом будет производиться его обработка. Если процесс рестартится, то он перечитывает все сохранённые чанки и продолжает попытку их обработки и отправки. А бесконечные ретраи нужны чтобы эти чанки не дропались после N-ого неуспешного ретрая отправки.
|