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

Ресивер JDBC предоставляет возможность подключить нестандартный источник, хранящий события в СУБД, следующими способами:

  1. Custom unix timestamp based

  2. Custom datetime based

  3. Custom ID based

Различие этих вариантов заключается в поле и типе, на основе которого запрашиваются и упорядочиваются события.

Таблица 1. Варианты подключения нестандартного источника событий ресивера JDBC
Вариант подключенияНаименова-ние (namespace)ТипПредставле-ниеСтол-бецОбработка

Custom unix timestamp based

custom-jdbc-unix-ts

Numeric

ALERTIX_TS_VIEW

ts

Сообщения запрашиваются из БД и упорядочиваются по времени, которое должно содержаться в поле ts. Время должно представлять собой числовую метку (Posix-формат) без миллисекунд (10 разрядов)

Custom datetime based

custom-jdbc-dt

Timestamp

ALERTIX_DT_VIEW

ts

Сообщения запрашиваются из БД и упорядочиваются по времени, которое должно содержаться в поле ts. Время должно представлять собой тип datetime/timestamp или строку, отличную от временной метки типа int.

Custom ID based

custom-jdbc-id

Numeric

ALERTIX_ID_VIEW

id

Сообщения запрашиваются из БД и упорядочиваются по идентификатору, который должен содержаться в поле id в числовом виде

Для подключения источника должны быть выполнены следующие условия:

  1. Собираемые события могут быть упорядочены либо по временной метке (int/timestamp), либо по уникальному числовому идентификатору.

  2. БД по умолчанию, из представления которой будут запрашиваться события, называется ALERTIX.

  3. В этой БД создано представление с наименованиями ALERTIX_TS_VIEW/ALERTIX_DT_VIEW/ ALERTIX_ID_VIEW (в зависимости от способа упорядочивания событий), содержащие все необходимые для дальнейшей обработки поля и поля для выборки (упорядочивания) событий ts и id соответственно.

После выбора варианта подключения и появления потока сообщений в ресивере, они будут представляться в словарной форме с набором полей, зависящих от выбранного варианта. Для записи событий в конкретный индекс дата-кластера префиксами alertix или logstash, необходимо указать наименование источника данных. Префикс alertix- выбирается, если событие будет содержать поле [@metadata][production] со значением "true". В противном случае в качестве префикса имени будет выбираться logstash-.

Наименование источника указывается в поле [@metadata][namespace], значения по умолчанию при выборе каждого варианта приведены в таблице выше.

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

image
Рисунок 1.

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

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

{
  if [@metadata][namespace] == 'custom-jdbc-id' {

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

  }
}

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

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

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

или

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

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