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

2
Bill Goldberg 15 Апр 2019 в 20:10

2 ответа

Лучший ответ

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

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

Плюсы:

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

Минусы:

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

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

Плюсы:

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

Минусы:

  • Еще один компонент для управления в вашей архитектуре приложения
  • Требуются дополнительные системные ресурсы (обычно выполняется очень легкая обработка)
3
Furhan S. 17 Апр 2019 в 06:22

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

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