Работа с конечными точками

Конечная точка — это элемент конвейера, который отвечает за отправку событий. Тип конечной точки зависит от пункта назначения, в который пересылаются события. На диаграмме конфигурации конвейера конечная точка имеет один вход и не имеет выходов.

В системе доступны следующие типы конечных точек:

  • Хранилище событий;

  • Внешняя система.

Добавление конечной точки

Чтобы добавить конечную точку на конфигурацию конвейера:

  1. Перейдите в раздел Ресурсы → Коллекторы. Система отобразит сведения об имеющихся коллекторах, в том числе их текущий статус (включен/выключен).

  2. Нажмите на строку коллектора в списке. Система отобразит в правой части экрана карточку этого коллектора с подробной информацией о нем.

  3. Перейдите на вкладку Конвейеры в карточке коллектора. Система отобразит список конвейеров коллектора.

  4. Нажмите на стрелку (chevron down) в строке конвейера. Отобразится карточка конвейера.

  5. Нажмите на кнопку Конфигурация конвейера в нижней части карточки. Отобразится диаграмма конфигурации конвейера.

  6. Удостоверьтесь, что в выпадающем списке Версия на панели инструментов в окне конфигурации конвейера выбран вариант Черновик.

  7. Нажмите на кнопку Добавить элемент и выберите из выпадающего списка пункт Конечная точка. Отобразится окно добавления конечной точки.

  8. При необходимости выберите шаблон для автоматического заполнения полей конечной точки. По умолчанию выбран вариант Без шаблона.

  9. Заполните поля (набор и содержание полей могут отличаться в зависимости от типа точки):

    • Название конечной точки.

    • Тип конечной точки.

    • Формат конечной точки.

  10. Установите флажок Сохранить как шаблон, если настройку конечной точки необходимо сохранить в качестве шаблона для дальнейшего использования.

  11. Нажмите Добавить. Новая конечная точка отобразится на схеме.

Изменение конечной точки

Чтобы изменить конечную точку:

  1. Перейдите в раздел Ресурсы → Коллекторы. Система отобразит сведения об имеющихся коллекторах, в том числе их текущий статус (включен/выключен).

  2. Нажмите на строку коллектора в списке. Система отобразит в правой части экрана карточку этого коллектора с подробной информацией о нем.

  3. Перейдите на вкладку Конвейеры в карточке коллектора. Система отобразит список конвейеров коллектора.

  4. Нажмите на стрелку (chevron down) в строке конвейера. Отобразится карточка конвейера.

  5. Нажмите на кнопку Конфигурация конвейера в нижней части карточки. Отобразится диаграмма конфигурации конвейера.

  6. Удостоверьтесь, что в выпадающем списке Версия на панели инструментов в окне конфигурации конвейера выбран вариант Черновик.

  7. Откройте окно настроек конечной точки одним из следующих способов:

    • Выберите опцию Изменить в выпадающем меню Действия (more vertical) справа от названия конечной точки.

    • Дважды нажмите на конечную точку на схеме конвейера.

  8. Внесите изменения в требуемые поля.

  9. Нажмите на кнопку Сохранить. Измененные данные конечной точки будут сохранены.

Удаление конечной точки

Чтобы удалить конечную точку:

  1. Перейдите в раздел Ресурсы → Коллекторы. Система отобразит сведения об имеющихся коллекторах, в том числе их текущий статус (включен/выключен).

  2. Нажмите на строку коллектора в списке. Система отобразит в правой части экрана карточку этого коллектора с подробной информацией о нем.

  3. Перейдите на вкладку Конвейеры в карточке коллектора. Система отобразит список конвейеров коллектора.

  4. Нажмите на стрелку (chevron down) в строке конвейера. Отобразится карточка конвейера.

  5. Нажмите на кнопку Конфигурация конвейера в нижней части карточки. Отобразится диаграмма конфигурации конвейера.

  6. Удостоверьтесь, что в выпадающем списке Версия на панели инструментов в окне конфигурации конвейера выбран вариант Черновик.

  7. Выберите опцию Удалить в выпадающем меню Действия (more vertical), расположенном справа от названия конечной точки. Система запросит подтверждение удаления конечной точки.

  8. Нажмите на кнопку Удалить. Конечная точка будет удалена с конфигурации конвейера.

Параметры конечных точек

Конечная точка Хранилище событий

При создании конечной точки типа Хранилище событий требуется задать следующие параметры:

  1. Хранилище событий: выбор хранилища событий, в которое будут передаваться события.

  2. Режим отладки: включение режима отладки. В режиме отладки, поля, которые не соответствуют модели события выбранного хранилища, будут принудительно заполнены значениями по умолчанию, при этом в лог будет записано сообщение о наличии проблем в полях исходного события.

Перед тем как переслать события в хранилище, система автоматически производит их нормализацию. С помощью функции compact удаляются пустые поля, если они присутствуют в данных:

Example 1. Код VRL
. = compact(.) ?? .

Конечная точка Внешняя система

При создании конечной точки типа Внешняя система требуется выбрать Тип внешней системы и задать параметры, зависящие от выбранного типа.

Blackhole

Конечная точка Blackhole предназначена для отбрасывания поступающих событий. Ее рекомендуется использовать для отладки конвейера, когда не нужно сохранять обработанные события в хранилище или отправлять их во внешнюю систему.

Параметры конечной точки Blackhole:

  1. Интервал запроса (опционально): время в секундах между записями активности конечной точки в логи коллектора.

  2. Количество событий (опционально): максимальное количество событий в секунду, которые могут обрабатываться конечной точкой.

  3. Использовать расширенные настройки: настройка буферизации.

HTTP

Конечная точка HTTP предназначена для подключения к внешнему серверу по HTTP-протоколу и отправки событий на этот сервер. Отправка событий происходит за счет выполнения HTTP-запросов, посылаемых от конечной точки к серверу.

Параметры конечной точки HTTP:

  1. Префикс (опционально): строка, с которой начинается полезная нагрузка (payload) в теле HTTP-запроса.

  2. Суффикс (опционально): строка, которой заканчивается полезная нагрузка (payload) в теле HTTP-запроса.

  3. Адрес: адрес внешней системы в формате URL- или IP-адреса с указанием порта. Например: https://hostname:6000 или 1.0.0.0:6000.

  4. Тип аутентификации (опционально): выбор типа аутентификации на HTTP-сервере:

    • Базовая: выберите секрет типа Учетные данные, хранящий имя пользователя и пароль для авторизации.

      Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.

    • Токен: выберите секрет типа Токен, хранящий токен для авторизации.

      Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.

  5. Тип сжатия: выбор типа сжатия данных:

    • NONE — без сжатия. Данный тип выбран по умолчанию.

    • GZIP.

    • SNAPPY.

    • ZLIB.

    • ZSTD.

  6. Формат событий: формат передачи событий во внешнюю систему. Доступные форматы:

    • AVRO. При выборе этого формата требуется ввести схему AVRO в формате JSON. Например:

      { "type": "record", "name": "log", "fields": [{ "name": "msg", "type": "string" }] }
    • CSV. При выборе этого формата требуется ввести поля, которые требуется преобразовать в формат CSV. Например: dvendor, dproduct, msg.

      Преобразование в формат CSV не поддерживается для полей с типом Array или KeyValue. Значения этих полей передаваться не будут.
    • GELF.

    • JSON. Данный формат выбран по умолчанию.

    • LOGFMT.

    • NATIVE.

    • NATIVE_JSON.

    • PROTOBUF. При выборе этого формата требуется загрузить файл с описанием протокола Protocol Buffers (Protobuf). Подробную информацию о структуре файла можно найти в официальной документации Protocol Buffers.

    • RAW_MESSAGE.

    • TEXT.

  7. HTTP-заголовки (опционально): заголовки HTTP-запроса. Заголовки позволяют уточнить HTTP-запрос и определяют, какие данные требуется передавать в запросе.

    Об HTTP-заголовках

    HTTP-заголовок — это строка в HTTP-запросе, состоящая из пары "имя: значение". Он используется для уточнения запроса или описания содержимого сообщения. Формат заголовка определяется стандартом RFC 822.

    HTTP-заголовки делятся на следующие категории:

    • Основные заголовки (General Headers) — применяются во всех сообщениях клиента и сервера.

    • Заголовки запроса (Request Headers) — используются только в запросах клиента.

    • Заголовки ответа (Response Headers) — используются только в ответах от сервера.

    • Заголовки сущности (Entity Headers) — применяются к содержимому сообщения.

    Полный список HTTP-заголовков можно найти в MDN Web Docs.

    Пример HTTP-заголовка

    Для отправки данных на сервер порциями по 512 байт, в HTTP-запросе необходимо указать заголовок Content-Length. Значение этого заголовка должно соответствовать максимальному размеру поступающих данных в байтах, в данном случае это будет 512.

    Чтобы задать заголовок, нажмите на кнопку Добавить. Отобразится строка добавления заголовка. Введите заголовок и его значение. Для одного заголовка можно задать несколько значений.

    Чтобы удалить заголовок, нажмите на кнопку trash в строке нужного заголовка.

  8. Метод запроса (опционально): выбор метода отправляемых HTTP-запросов:

    • DELETE — удаляет данные с сервера.

    • GET — запрашивает данные с сервера с полным HTTP-ответом.

    • HEAD — запрашивает данные с сервера без тела HTTP-ответа.

    • PATCH — используется для частичного изменения ресурса.

    • POST — отправляет данные на сервер.

    • PUT — заменяет данные на сервере данными из HTTP-запроса.

    • OPTIONS — запрашивает список методов, разрешенных на сервере.

    • TRACE — выполняет подключение к серверу и запрашивает от него ответ.

  9. Адрес HTTP-прокси (опционально): полный адрес для подключения к HTTP-прокси в виде URI. Применяется, если HTTP-сервер использует прокси.

  10. Включить TLS: включение TLS-сертификата.

  11. Использовать расширенные настройки: настройка буферизации.

Kafka

  1. Адрес: IP-адреса серверов с портами для подключения к кластеру Kafka. Адреса вводятся через запятую. Например: 1.0.0.0:9092,1.0.0.1:9092.

  2. Название топика: название топика кластера Kafka, в который будут записываться передаваемые события.

  3. Формат событий: формат передачи событий во внешнюю систему. Доступные форматы:

    • AVRO. При выборе этого формата требуется ввести схему AVRO в формате JSON. Например:

      { "type": "record", "name": "log", "fields": [{ "name": "msg", "type": "string" }] }
    • CSV. При выборе этого формата требуется ввести поля, которые требуется преобразовать в формат CSV. Например: dvendor, dproduct, msg.

      Преобразование в формат CSV не поддерживается для полей с типом Array или KeyValue. Значения этих полей передаваться не будут.
    • GELF.

    • JSON. Данный формат выбран по умолчанию.

    • LOGFMT.

    • NATIVE.

    • NATIVE_JSON.

    • PROTOBUF. При выборе этого формата требуется загрузить файл с описанием протокола Protocol Buffers (Protobuf). Подробную информацию о структуре файла можно найти в официальной документации Protocol Buffers.

    • RAW_MESSAGE.

    • TEXT.

  4. Включить TLS: включение TLS-сертификата.

  5. Использовать расширенные настройки: настройка буферизации.

Socket

  1. Адрес: адрес внешней системы в формате URL- или IP-адреса с указанием порта. Например: https://hostname:6000 или 1.0.0.0:6000.

  2. Протокол: выбор протокола передачи событий. Доступные протоколы:

  3. Формат событий: формат передачи событий во внешнюю систему. Доступные форматы:

    • AVRO. При выборе этого формата требуется ввести схему AVRO в формате JSON. Например:

      { "type": "record", "name": "log", "fields": [{ "name": "msg", "type": "string" }] }
    • CSV. При выборе этого формата требуется ввести поля, которые требуется преобразовать в формат CSV. Например: dvendor, dproduct, msg.

      Преобразование в формат CSV не поддерживается для полей с типом Array или KeyValue. Значения этих полей передаваться не будут.
    • GELF.

    • JSON. Данный формат выбран по умолчанию.

    • LOGFMT.

    • NATIVE.

    • NATIVE_JSON.

    • PROTOBUF. При выборе этого формата требуется загрузить файл с описанием протокола Protocol Buffers (Protobuf). Подробную информацию о структуре файла можно найти в официальной документации Protocol Buffers.

    • RAW_MESSAGE.

    • TEXT.

  4. Включить TLS: включение TLS-сертификата.

  5. Использовать расширенные настройки: настройка буферизации.

Vector

  1. Адрес: адрес внешней системы в формате URL- или IP-адреса с указанием порта. Например: https://hostname:6000 или 1.0.0.0:6000.

  2. Включить TLS: включение TLS-сертификата.

  3. Использовать расширенные настройки: настройка буферизации.

Включение TLS-сертификата

Для внешних систем HTTP, Kafka, Socket и Vector становится доступен переключатель Включить TLS, позволяющий настроить шифрование TLS.

При включении переключателя необходимо:

  1. Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.

    Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.

  2. При необходимости выбрать секрет типа Корневой сертификат, хранящий данные корневого сертификата.

    Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.

Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.

Расширенные настройки

Для всех внешних систем доступен переключатель Использовать расширенные настройки, позволяющий настроить буферизацию в конечной точке. Буфер используется для накопления событий, когда они не могут быть направлены конечной точкой во внешнюю систему (например, когда события направляются во внешнюю систему быстрее, чем она может их обработать). События находятся в буфере до тех пор, пока их не удастся успешно отправить.

При включении переключателя необходимо:

  1. Выбрать тип буфера:

    • RAM — для накопления событий используется оперативная память. Тип буфера RAM установлен по умолчанию.

      Для этого типа характерны высокая скорость буферизации, но низкая степень сохранности данных в случае сбоев системы. Тип буфера RAM рекомендуется использовать, когда требуется обеспечить максимальную производительность буферизации.

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

    • HDD — для накопления событий используется дисковое пространство.

      Для этого типа характерны низкая скорость буферизации, но высокая степень сохранности данных за счет их хранения в дисковом пространстве. Тип буфера HDD рекомендуется использовать, когда требуется обеспечить сохранность передаваемых данных.

      При выборе этого типа требуется указать размер буфера в байтах. Минимальный размер буфера — приблизительно 256 МБ (268435488 байт).

  2. Выбрать поведение буфера при его заполнении:

    • Ожидание — поступление событий будет прекращено до освобождения места в буфере. Режим ожидания установлен по умолчанию.

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

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