Добавление нестандартного источника Beats

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

Управление конфигурацией агента осуществляется на странице Обслуживание > Агенты. Выберите Alertix Агенты > Посмотреть. Отобразится список подключенных к Платформе узлов.

image
Рисунок 1.

Откроется общий список установленных агентов, входящих в состав Платформы Alertix. С помощью фильтра "Система" настраивается отображение данных в таблице по выбранному типу операционной системы.

Для управления конфигурацией агента нажмите кнопку pencil blue напротив его имени. См. подробнее пункт Управление конфигурацией агентов Alertix.

В платформе выделен единый пайплайн для записи событий в Opensearch.

Пример конфигурации Filebeat для передачи сообщений в Платформу:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    -/logs/dns/dns_filter.log
  tags: ["linux-dns"]
  fields:
    logstash:
        source: "linux-dns"
        namespace: "linux-dns"
- type: log
  enabled: true
  paths:
    - /logs/dhcp/dhcp.log
  tags: ["linux-dhcpd"]
  fields:
    logstash:
        source: "linux-dhcpd"
        namespace: "linux-dhcpd"

Подход к выделению из общего потока требуемых событий для всех агентов принципиально одинаков. Сначала нужно выделить события из потока конкретного типа агента: winlogbeat или filebeat. Затем из этого потока выделяются события для дальнейшей обработки по какому-то критерию, самым простым из которых является тегирование нового источника на агенте и выборка для обработки только тех событий, которые имеют заданный тег.

Например, в конфигурацию агента с filebeat добавим сбор файлового журнала /var/log/someapp.log с тегом "someapp":

filebeat.inputs:
- type: log
  enabled: true
  paths:
    -/var/log/someapp.log
  tags: ["someapp"]

После внесения необходимых изменений нажмите кнопку "Сохранить".

Затем вернитесь в окно управления конфигурацией ресивера Beats и нажмите кнопку pencil grey в строке таблицы с установленными ресиверами. Для осуществления дальнейшей обработки данных выполните выгрузку текущей конфигурации фильтра post_filter - "Выгрузка post_filter".

image
Рисунок 2.

Затем опишите требуемые преобразования в терминах фильтров logstash в конфигурационном файле postfilter, обрамив соответствующим условным выражением.

Например, для обработки потока от источника someapp, условное выражение должно выглядеть следующим образом:

if [@metadata][beat] == 'filebeat' {
  if 'someapp' in [tags] {

    # Обработка событий:
    # - выделение значимых полей
    # - приведение к заданной схеме данных
    # - дополнительное обогащение при необходимости

    mutate {
      add_field => {
        "[@metadata][namespace]" => "someapp"
        "[@metadata][production]" => true
      }
    }
  }
}

После редактирования выполните загрузку измененной конфигурации фильтра post_filter - "Загрузка post_filter".

Обратите внимание на необходимость заполнения поля [@metadata][namespace], по умолчанию оно отсутствует и устанавливается в обработчиках событий от конкретных источников.

Результирующее наименование индекса будет иметь следующий формат:

alertix-<namespace>-<version>-<date>

или

logstash-<namespace>-<version>-<date>

date представлено в формате ГГГГ.ММ.ДД.