Filebeat vs Непосредственно отправляет логи в logstash из приложения - PullRequest
0 голосов
/ 15 апреля 2019

Я планирую создать централизованную систему ведения журналов для одного из наших проектов, которая состоит из нескольких компонентов, написанных на Java, Python и Scala. Я хочу собирать журналы из разных компонентов (REST Server, Spark Jobs, Airflow server) для регистрации и индексации в Elastic search. Я мог видеть, что есть прямые библиотеки в обоих Python & Java модулях журналирования, чтобы загружать журналы напрямую в logstash из приложения. И я мог видеть filebeat, который можно настроить на серверах для отправки журналов в logstash из файлов. В чем преимущество того, что filebeat лучше, чем отправка журналов напрямую в logstash. Какова лучшая практика?

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Вот несколько плюсов и минусов обоих подходов:

Журналы приложений => Logstash

Плюсы:

  • Меньшие компоненты для управления и прямой конвейер

Минусы:

  • Застой на Logstash или его сбой, может отрицательно повлиять на ваше приложение
  • Для внесения изменений в место назначения журнала может потребоваться повторное развертывание или перезапуск приложения

Журналы приложений => Filebeat => Logstash

Плюсы:

  • Filebeat - это легкая утилита, которая позволяет вам отделить обработку журналов от логики приложения
  • Смена места назначения журнала очень проста и изначально поддерживает балансировку нагрузки между несколькими экземплярами мест назначения logstash
  • Журналы могут быть дополнены дополнительными полями, или вы можете выполнить условную обработку журналов, просто изменив конфигурации файловых битов, например, отправлять журналы для клиента A в Logstash A
  • Журналы буферизуются локально и будут надежно перенесены в Logstash, даже если процесс logstash перезапускается или становится недоступным в течение определенного времени (при условии, что ваши файлы журналов остаются на диске для использования в filebeat и имеют соответствующие настройки)

Минусы:

  • Еще один компонент для управления в вашей архитектуре приложения
  • Требуются дополнительные системные ресурсы (обычно выполняется очень легкая обработка)
0 голосов
/ 16 апреля 2019

Filebeat и другие биты могут напрямую отправлять сообщение в ES, но при использовании logstash есть дополнительные преимущества.

  1. Вы можете использовать фильтры в logstash на основе входных данных.
  2. Он поддерживает фильтр Grok и другие плагины фильтров, такие как CSV, XML и многие другие.
  3. Поддерживает несколько кодеков
  4. вы можете использовать logstash в качестве единой точки для управления всеми конвейерами
  5. logstash можно отслеживать через графический интерфейс Kibana.
  6. Управление Logstash легко и может быть выполнено через графический интерфейс Kibana.
  7. Filebeat поддерживает только файлы в качестве входных данных, но logstash поддерживает большой массив для типов ввода
...