# Замедление индексирования документов в связи с ошибками в Logstash

**URL:** <https://discuss.elastic.co/t/logstash/239096>\
**Category:** Вопросы на русском языке\
**Created:** [June 29, 2020, 11:03am UTC](https://discuss.elastic.co/t/logstash/239096 "2020-06-29T11:03:58Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sergei\_Frolov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sergei_frolov/32/47922_2.png) [@Sergei\_Frolov](https://discuss.elastic.co/u/Sergei_Frolov)\
**Post date:** [June 29, 2020, 11:03am UTC](https://discuss.elastic.co/t/logstash/239096/1 "2020-06-29T11:03:58Z")

</div>

Добрый день! Имею связку `filebeat -> kafka <- logstash -> elasticsearch`

Появилась проблема связанная с изменением типа поля, что вызывало такую запись в логе Logstash и отбрасывание документа:

`"status"=>400, "error"=>{"type"=>"mapper_parsing_exception", "reason"=>"failed to parse field [header.HTTP_CM_DEVICE_TIME] of type [date] in document with id 'AWSk_3IBRp2XS7BSwTDG'. Preview of field's value: '2020-06-29T1:34:45.661+03:00'"`

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

`"ignore_malformed": true`

Но вопрос в другом. Есть и нормальные документы с нормальным значением - которые не отбрасываются, а индексируются.

То есть проблемное поле есть только у примерно 50% документов.

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

Очень интересно было бы узнать почему происходит такое замедление индексирования ввиду отбрасываемых по причине сбойного поля документов?

И второй вопрос: как это побороть? Стоит ли делать несколько машин с Logstash и ставить их всех в одинаковый `group_id`, подключая все к одному и тому же топику kafka и с output в один и тот же индекс elasticsearch? Есть ли в таком случае вероятность дупликации данных?

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [June 29, 2020, 1:00pm UTC](https://discuss.elastic.co/t/logstash/239096/2 "2020-06-29T13:00:18Z")

</div>

> почему происходит такое замедление индексирования ввиду отбрасываемых по причине сбойного поля документов?

Неправильный формат обрабатывается с помощью механизма exception (исключений). И в java он был разработан.... для исключительных ситуаций. На создание exception требуется больше времении, чем на индексацию небольшого документа - поэтому и замедление.

> И второй вопрос: как это побороть?

Добавить в logstash проверку на неправильное поле и удалить это поле перед посылкой записи в elasticsearch.

---

<div class="post-metadata">

**Author:** ![Sergei\_Frolov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sergei_frolov/32/47922_2.png) [@Sergei\_Frolov](https://discuss.elastic.co/u/Sergei_Frolov)\
**Post date:** [June 29, 2020, 2:36pm UTC](https://discuss.elastic.co/t/logstash/239096/3 "2020-06-29T14:36:31Z")

</div>

Игорь, спасибо за ответ!

> Добавить в logstash проверку на неправильное поле и удалить это поле перед посылкой записи в elasticsearch.

дело в том что каждое поле не получится контролировать - разрабы могут добавлять их рандомно в любое время, менять их типы 🙂

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [June 29, 2020, 2:44pm UTC](https://discuss.elastic.co/t/logstash/239096/4 "2020-06-29T14:44:00Z")

</div>

Поставить [dynamic](https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic.html) в `strict`, контролировать mapping и не пущать!

---

<div class="post-metadata">

**Author:** ![Sergei\_Frolov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sergei_frolov/32/47922_2.png) [@Sergei\_Frolov](https://discuss.elastic.co/u/Sergei_Frolov)\
**Post date:** [June 29, 2020, 4:42pm UTC](https://discuss.elastic.co/t/logstash/239096/5 "2020-06-29T16:42:32Z")

</div>

Спасибо за ответы, Игорь! Прошу прощения за свою навязчивость - но уже если этого не избежать и всегда происходит внезапно (маппинг уже пишется постфактум, да и под многие поля вообще не пишется) - поможет ли три логстеша на трех разных нодах с одним `group_id` (будут забирать из одного топика кафки) которые будут писать в один индекс - ускорить индексирование нормальных документов, если рядом идет много отбрасываемых?

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [June 29, 2020, 5:39pm UTC](https://discuss.elastic.co/t/logstash/239096/6 "2020-06-29T17:39:45Z")

</div>

> [@Sergei\_Frolov](#):
>
> но уже если этого не избежать

Вы всегда можете это избежать, поставив dynamic в false. Тогда внезапные новые поля просто не будут индексироваться.

> [@Sergei\_Frolov](#):
>
> поможет ли три логстеша на трех разных нодах с одним `group_id`

Не знаю, надо смотреть на нагрузку. Я не уверен, что проблема в логстеше (или только в логстеше), и, даже если Вам удасться его правильно настроить, я не знаю, разрешите-ли вы эту проблему или просто переместите ее на elasticsearch. От ошибок нагрузка нарастает и там и там. Elasticsearch тратит время на формирование сообщения и logstash на его обработку. Кстати, вы `dead_letter_queue` на logstash случайно не включили?

---

<div class="post-metadata">

**Author:** ![Sergei\_Frolov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sergei_frolov/32/47922_2.png) [@Sergei\_Frolov](https://discuss.elastic.co/u/Sergei_Frolov)\
**Post date:** [June 29, 2020, 6:21pm UTC](https://discuss.elastic.co/t/logstash/239096/7 "2020-06-29T18:21:23Z")

</div>

DLQ мне кажется совершенно бесполезным механизмом и я всегда его избегаю 🙂

Стоит включить?

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [June 30, 2020, 12:05pm UTC](https://discuss.elastic.co/t/logstash/239096/8 "2020-06-30T12:05:23Z")

</div>

> [@Sergei\_Frolov](#):
>
> Стоит включить?

Нет. Но если бы он был влючен, стоило-бы выключить.

---

<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 28, 2020, 12:05pm UTC](https://discuss.elastic.co/t/logstash/239096/9 "2020-07-28T12:05:27Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
