Logstash - Введение

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

Logstash написан на языке программирования JRuby, который работает на JVM, поэтому вы можете запускать Logstash на разных платформах. Он собирает различные типы данных, такие как журналы, пакеты, события, транзакции, данные временных меток и т. Д., Практически из любого типа источника. Источником данных могут быть данные из социальных сетей, электронная коммерция, новостные статьи, CRM, игровые данные, веб-тренды, финансовые данные, Интернет вещей, мобильные устройства и т. Д.

Общие функции Logstash

Общие особенности Logstash следующие:

  • Logstash может собирать данные из разных источников и отправлять их нескольким адресатам.

  • Logstash может обрабатывать все типы данных журналов, такие как журналы Apache, журналы событий Windows, данные по сетевым протоколам, данные из стандартного ввода и многие другие.

  • Logstash также может обрабатывать HTTP-запросы и данные ответов.

  • Logstash предоставляет множество фильтров, которые помогают пользователю находить больший смысл в данных, анализируя и преобразовывая их.

  • Logstash также можно использовать для обработки данных датчиков в Интернете вещей.

  • Logstash имеет открытый исходный код и доступен по лицензии Apache версии 2.0.

Ключевые концепции Logstash

Ключевые концепции Logstash следующие:

Объект события

Это главный объект в Logstash, который инкапсулирует поток данных в конвейере Logstash. Logstash использует этот объект для хранения входных данных и добавления дополнительных полей, созданных на этапе фильтрации.

Logstash предлагает разработчикам Event API для управления событиями. В этом руководстве это событие упоминается под различными именами, такими как событие данных журнала, событие журнала, данные журнала, входные данные журнала, выходные данные журнала и т. Д.

Трубопровод

Он состоит из этапов потока данных в Logstash от ввода до вывода. Входные данные вводятся в конвейер и обрабатываются в виде события. Затем отправляет в место назначения вывода в желаемом формате пользователя или конечной системы.

Ввод

Это первый этап конвейера Logstash, который используется для получения данных в Logstash для дальнейшей обработки. Logstash предлагает различные плагины для получения данных с разных платформ. Некоторые из наиболее часто используемых плагинов - File, Syslog, Redis и Beats.

Фильтр

Это средний этап Logstash, на котором происходит фактическая обработка событий. Разработчик может использовать предопределенные шаблоны регулярных выражений от Logstash для создания последовательностей для различения полей в событиях и критериев для принятых событий ввода.

Logstash предлагает различные плагины, которые помогают разработчику анализировать и преобразовывать события в желаемую структуру. Некоторые из наиболее часто используемых плагинов фильтров - Grok, Mutate, Drop, Clone и Geoip.

Вывод

Это последний этап конвейера Logstash, на котором выходные события могут быть отформатированы в структуру, требуемую системами назначения. Наконец, он отправляет выходное событие после полной обработки в пункт назначения с помощью подключаемых модулей. Некоторые из наиболее часто используемых плагинов - Elasticsearch, File, Graphite, Statsd и т. Д.

Преимущества Logstash

Следующие пункты объясняют различные преимущества Logstash.

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

  • Logstash поддерживает множество веб-серверов и источников данных для извлечения данных журналов.

  • Logstash предоставляет несколько плагинов для анализа и преобразования данных журнала в любой желаемый пользователем формат.

  • Logstash централизован, что упрощает обработку и сбор данных с разных серверов.

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

  • Logstash использует протокол HTTP, который позволяет пользователю обновлять версии Elasticsearch без необходимости обновлять Logstash на этапе блокировки.

Недостатки Logstash

Следующие пункты объясняют различные недостатки Logstash.

  • Logstash использует http, что отрицательно сказывается на обработке данных журнала.

  • Работа с Logstash иногда может быть немного сложной, так как для этого требуется хорошее понимание и анализ входных данных журнала.

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

В следующей главе мы поймем, что такое стек ELK и как он помогает Logstash.