# Проблема с multiline filter

**URL:** https://discuss.elastic.co/t/multiline-filter/27770
**Category:** Вопросы на русском языке
**Created:** [August 20, 2015, 3:11pm UTC](https://discuss.elastic.co/t/multiline-filter/27770 "2015-08-20T15:11:07Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![y3g0r](https://avatars.discourse-cdn.com/v4/letter/y/c77e96/32.png) [@y3g0r](https://discuss.elastic.co/u/y3g0r)
#### Post date: [August 20, 2015, 3:11pm UTC](https://discuss.elastic.co/t/multiline-filter/27770/1 "2015-08-20T15:11:07Z")

</div>

Всем привет.

Мне нужно организовать сбор логов с продакшена и вопрос по оптимальной инфраструктуре ELK stack я задам в другом топике.  
Здесь про проблемы с многострочным фильтром.  
И сразу картинки:

 ![](https://us1.discourse-cdn.com/elastic/original/2X/c/c077c471687bc095362c5a755cc1b6b91c585692.png)  
 ![](https://us1.discourse-cdn.com/elastic/original/2X/0/002a651b2940fd273a53cc3837daa58a3f4e8603.png)  
 ![](https://us1.discourse-cdn.com/elastic/original/2X/1/1448db73584611c44d39ab5828fc70fbf26f9265.png)  
В целом система состоит из следующих ключевых узлов:

1. Логи приложения (в данном случае один, dialer.log)
2. Logstash-forwarder (конфиг ниже)
3. Logstash-shipper (Выбрасываем пустые ивенты, достаем имя файла из полного имени файла, кладем ивент в очередь redis и в файл для протокола)
4. Redis (конвеер ивентов перед парсером)
5. Logstash-parser (читает ивент из очереди, записывает @timestamp в received\_at, собирает все строки многострочных ивентов, парсит ивент в гроке, заменяет timestamp ивента ловализированной версией из лога, заливает ивенты в elasticsearch)

Вот все настройки:  
[http://pastebin.com/VwL3uJj4](http://pastebin.com/VwL3uJj4)

Проблема проявляется уже при обработке одного единственного файла с многострочными ивентами. Как можно видеть на скриншотах, в файл fromshipper.log идет лог ивентов, которые выходят из logstash-shipper instance (в формате \<время\_попадания\_в\_logstash-shipper\> \<неудачная попытка вывести id ивента\> \<строки лога\>). Как мы видим в Kibana, между двумя частями лога (вторая часть которого с \_grok\_parse\_failure) нет ни паузы, ни других ивентов из других файлов (это начинается когда собираються логи из нескольких файлов).

При попытке залить сразу несколько файлов ситуация еще больше усугубляется. Частота лог-ивентов на продакшене в моем случае без труда может достигать 5 млн лог-ивентов в час. Как справиться с таким наплывом, я не представляю. Увеличение таймаута в multiline фильтре погоды не делает. Обработка событий только замедляется. Через некоторое время redis съедает всю оперативку, весь swap и падает. Уменьшение timeout способствует увеличению разорваных ивентов.

Подскажите в чем может быть проблема? Может быть это ES? Может не правильно составлены config файлы? В общем, любые советы приветствуются.

С уважением,  
Егор

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 6, 2017, 1:51pm UTC](https://discuss.elastic.co/t/multiline-filter/27770/2 "2017-07-06T13:51:25Z")

</div>


