Механизм сбора и обработки данных

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

Конфигурационные файлы составляются в формате JSON. Типичная конфигурация logstash представляет из себя несколько входящих потоков информации (input), несколько фильтров для этой информации (filter) и несколько исходящих потоков (output). Выглядит это как один конфигурационный файл, который в простейшем варианте выглядит вот так:

input {
}
filter {
}
output {
}

Каждый ресивер имеет несколько основных частей:

  1. Input. Здесь описываются варианты приема/получения событий для парсинга. Logstash поддерживает ряд подключаемых модулей ввода для TCP / UDP, файлов, системного журнала, журналов событий Microsoft Windows, stdin, HTTP и т.д. Плагин ввода отправляет события фильтру.

  2. Pre_filter. Первичный фильтр, который можно менять через интерфейс для каждого ресивера. Здесь можно описывать, например, фильтрацию событий, которые нет смысла сохранять в Opensearch.

  3. Filter. Последовательность основных фильтров. Их нельзя менять через интерфейс, в них происходит парсинг событий в зависимости от источника данных.

  4. Post_filter. Фильтр для дополнительной обработки событий после основного парсинга, здесь можно, например, обрабатывать пользовательские источники данных (custom). Можно менять через интерфейс для каждого ресивера.

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

  6. Output. Запись итоговых событий в Opensearch, а также запись метрик работы ресивера.