FIlebeat-Redis-Logstash: быстрый Filebeat и медленный Logstah, многопоточность logstash?

Я столкнулся с проблемой задержки с logstash.

На самом деле у меня есть стек ELK, построенный следующим образом:

  • У меня есть несколько веб-фронтов на AWS EC2 в группе автоматического масштабирования AWS.
  • У меня установлен filebeat на каждом фронте
  • filebeat читает файлы журналов и отправляет сообщения в кластер Redis (aws elasticache Redis, главный и подчиненный узел, режим кластера отключен)
  • У меня есть logstash, установленный на EC2 c4.large, который читает журналы из redis (pop) и индексирует их в кластере Elasticseach.
  • Мой elasticsearch состоит из трех EC2 c4.xlarge
  • logstash также читает журналы elb из s3 и индексирует их в кластере elasticsearch.

Эта проблема :

  • У меня действительно нет большого использования процессора, ни в моем экземпляре logstash, ни в моем кластере elasticsearch.
  • filebeat правильно читает и отправляет логи
  • Вначале все работало нормально, но по мере роста журналов filebeat продолжает отправлять журналы очень быстро, но logstash становится очень медленным.

Результат :

  • В kibana я вижу журналы файлов с задержкой, растущей со временем (журналы теперь опаздывают более чем на 2 часа)
  • Я не вижу журналы s3 elb с декабря 2016 года. Я проверил, logstash извлекает их из s3 каждые 60 секунд, но, похоже, также не индексирует их, и ошибки нет.

Подводя итог, мой logstash работает очень медленно, я не могу вовремя просмотреть все свои журналы, я даже увеличил размер logstash до более крупного экземпляра (c4.2xlarge), но это ничего не изменило. Я настроил ввод logstash redis с 8 потоками, но никаких изменений.

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

Спасибо


person nixmind    schedule 09.01.2017    source источник


Ответы (1)


Я обнаружил проблему с задержкой в ​​журналах. Я использовал multine в своей настройке фильтра, и при этом logstash установил количество рабочих конвейеров равным 1. Поэтому я убираю его там и делаю многострочную обработку в своей конфигурации источника файлового бита. Я также обновляю свой экземпляр logstash с c4.large до c4.xlarge, чтобы иметь высокую производительность сети, и устанавливаю количество рабочих конвейеров на 6 (c4.xlarge имеет 4 vpcu), а мой elasticsearch worker до 6 тоже.

Теперь я могу иметь свои журналы в кибане в режиме реального времени.

Я использую logstash 2.2.4 в Debian Jessie и настроил параметры в /etc/default/logstash.,

Итак, что я должен посоветовать здесь, так это избегать make multiline в процессе конвейера и делать это как можно ближе к соответствующему. Также настройте рабочую конфигурацию соответствующим образом, чтобы справиться с ростом журналов.

Я считаю, что на этот вопрос дан ответ, поскольку моей основной проблемой здесь была задержка, и я открою еще одну отдельную проблему для проблемы с плагином logstash s3.

person nixmind    schedule 13.01.2017