Работа с точками входа

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

О точках входа

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

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

Некоторые точки входа, такие как Syslog, позволяют получать события только по портам из определенного диапазона, например, 30000—​32767. Однако, если нет возможности передавать события из внешней системы на порты из этого диапазона, вы можете настроить проксирование трафика через Ingress-контроллер. В таком случае информация о событиях будет перенаправляться из порта, на который она поступает, на порт, который будет использоваться в конвейере обработки событий.

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

Доступные операции над точкой входа:

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

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

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

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

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

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

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

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

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

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

  9. Введите название точки входа.

  10. Выберите тип точки входа и задайте ее параметры. Набор параметров точки входа зависит от выбранного типа.

    Каждая точка входа типа Database, размещенная на конвейере коллектора, использует 256 МБ оперативной памяти (RAM) из ресурсов коллектора. Если планируется размещение точек входа типа Database, необходимо учитывать их суммарное потребление памяти при распределении ресурсов коллектора.

  11. Если требуется отслеживать состояние источника данных, выберите политику аудита источников. В противном случае переведите переключатель Аудит в неактивное положение.

    По умолчанию выбрана системная Политика аудита источников по точке входа.

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

  13. Нажмите Добавить. Новая точка входа отобразится на диаграмме конфигурации.

Изменение точки входа

Чтобы изменить точку входа:

  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. Нажмите на кнопку Удалить. Точка входа будет удалена с конфигурации конвейера.

Настройка точки входа

Набор параметров точки входа отличается в зависимости от ее типа. В системе доступны следующие типы точек входа:

AMQP

При создании точки входа типа AMQP требуется указать значения следующих параметров:

  1. Адрес подключения: выбор секрета типа Строка подключения, хранящего URI-адрес сервера AMQP в формате: amqp://<user>:<password>@<host>:<port>/<vhost>?timeout=<seconds>.

    Например: amqp://user:password@127.0.0.1:5672/%2f?timeout=10.

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

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

    Например: event-consumer-group.

  3. Ключ exchange (опционально): ввод ключа exchange.

  4. Ключ смещения AMQP (опционально): ввод ключа смещения AMQP.

  5. Название очереди (опционально): ввод названия очереди.

  6. Ключ маршрутизации AMQP (опционально): ввод ключа маршрутизации AMQP.

  7. Разделитель (опционально): выбор способа разделения событий. Варианты: Символ, Новая строка, Подсчет октетов (RFC 6587).

  8. Настройки разделителя: зависят от выбранного типа разделителя. Включают в себя настройку символа разделителя и максимальной длины события.

    Максимальная длина (опционально): максимальная длина события, зависит от выбранного разделителя. Должно быть целым числом без знака, в диапазоне от 0 до 4294967295.

  9. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

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

Audit

Точка входа Audit собирает события сервиса аудита и доставляет их на конвейер для дальнейшей обработки и анализа.

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

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

При создании точки входа типа Audit требуется указать значения параметра Уровни угрозы. Доступные варианты:

  • Отладочный — уровень угрозы 1 (DEBUG);

  • Низкий — уровень угрозы 2 (LOW);

  • Средний — уровень угрозы 3 (MEDIUM);

  • Высокий — уровень угрозы 4 (HIGH);

  • Критический — уровень угрозы 5 (CRITICAL);

  • Фатальный — уровень угрозы 6 (FATAL);

  • Аварийный — уровень угрозы 7 (ACCIDENT).

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

Database

Каждая точка входа типа Database, размещенная на конвейере коллектора, использует 256 МБ оперативной памяти (RAM) из ресурсов коллектора. При размещении точек входа типа Database, необходимо учитывать их суммарное потребление памяти при распределении ресурсов коллектора.

При создании точки входа типа Database требуется указать значения следующих параметров:

  1. Драйвер базы данных: выбор драйвера БД. По умолчанию доступны предустановленные драйвера следующих баз данных:

    • ClickHouse;

    • PostgreSQL;

    • MS SQL;

    • MySQL;

    • Oracle DB.

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

  2. Адрес подключения: выбор секрета типа Строка подключения, хранящего URI-адрес для подключения к базе данных. Формат URI должен соответствовать требованиям выбранной базы данных:

    • PostgreSQL: jdbc:postgresql://[host][:<port>]/[database][?user=<user>&password=<password>&<parameters>]

      Здесь:

      • host — адрес подключения к БД в формате <хост>[:<порт>]. Например: localhost:5433.

      • database — имя БД.

      • user — учетные данные пользователя БД.

      • password — пароль пользователя БД.

      • parameters — дополнительные параметры для подключения к БД в формате <параметр>=<значение>. Параметры отделяются друг от друга символом &.

        Учетные данные, адрес подключения и имя БД можно задавать в виде параметров.

        Полный список параметров приведен в документации PostgreSQL.

      Примеры строки подключения:

      • jdbc:postgresql://localhost/testdb?user=user&password=secret&ssl=true

      • jdbc:postgresql://localhost:5432/testdb?user=user&password=password

    • ClickHouse: jdbc:clickhouse://[user@][host][/database][?parameters]

      Здесь:

      • user — учетные данные пользователя БД в формате <имя_пользователя>[:<пароль>]. Например: user:password.

      • host — адрес подключения к БД в формате <хост>[:<порт>]. Например: localhost:5433.

      • database — имя БД.

      • parameters — дополнительные параметры для подключения к БД в формате <параметр>=<значение>. Параметры отделяются друг от друга символом &.

        Учетные данные, адрес подключения и имя БД можно задавать в виде параметров.

        Параметры ClickHouse идентичны параметрам PostgreSQL. Полный список параметров приведен в документации PostgreSQL.

        При работе с БД ClickHouse в качестве точки входа следует соблюдать следующие рекомендации:

        • Не следует обращаться к базе данных system, поскольку она недоступна для чтения.

        • Рекомендуется использовать сжатие передаваемых данных алгоритмом gzip. Для этого используйте параметр compress_algorithm=gzip в строке подключения.

        Примеры строки подключения:

      • jdbc:clickhouse://user:password@localhost/database&compress_algorithm=gzip

      • jdbc:clickhouse://localhost/database?user=user&password=password&compress_algorithm=gzip

    • MS SQL: jdbc:sqlserver://[host][;parameters]

      Здесь:

      • host — адрес подключения к БД в формате <хост>[\<имя_экземпляра>][:<порт>]. Например: localhost\instance1:1433.

      • parameters — дополнительные параметры для подключения к БД в формате <параметр>=<значение>. Параметры отделяются друг от друга символом ;.

        Учетные данные пользователя и имя БД можно задавать в виде параметров.

        Полный список параметров приведен в документации драйвера JDBC для SQL Server.

      Примеры строки подключения:

      • jdbc:sqlserver://localhost;user=user;password=password

      • jdbc:sqlserver://localhost:1433;database=database

    • MySQL: jdbc:mysql://[user@][host][/database][?parameters]

      Здесь:

      • user — учетные данные пользователя БД в формате <имя_пользователя>[:<пароль>]. Например: user:password.

      • host — адрес подключения к БД в формате <хост>[:<порт>]. Например: localhost:3306.

      • database — имя БД.

      • parameters — дополнительные параметры для подключения к БД в формате <параметр>=<значение>. Параметры отделяются друг от друга символом &.

        Учетные данные, адрес подключения и имя БД можно задавать в виде параметров.

        Полный список параметров приведен в документации MySQL.

      Примеры строки подключения:

      • jdbc:mysql://user:password@localhost:3306/database

      • jdbc:mysql://localhost:3306/database?user=user&password=password

    • Oracle DB: jdbc:oracle:thin:@[[protocol:]//]host[/service][:server_mode][/instance][?parameters]

      Здесь:

      • protocol — протокол передачи данных. Например: tcp.

      • host — адрес подключения к БД в формате <хост>:[<порт>]. Например: localhost:1521.

      • service — имя сервиса для подключения к экземпляру БД.

      • server_mode — режим работы сервера БД. Доступные значения:

        • dedicated — выделенный сервер;

        • shared — общий сервер;

        • pooled — сервер, добавленный в пул.

      • instance — имя экземпляра БД.

      • parameters — дополнительные параметры для подключения к БД в формате <параметр>=<значение>. Параметры отделяются друг от друга символом &.

        Полный список параметров приведен в документации Oracle.

      Примеры строки подключения:

      • jdbc:oracle:thin:@tcp//localhost:1521/service

      • jdbc:oracle:thin:@tcp//localhost:1521/service/instance1

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

  3. SQL-запрос: ввод SQL-запроса для работы с базой данных.

    Пример SQL-запроса
    SELECT id, raw, collectorId FROM `default`.EventStorage_1072 limit 10;

    При написании SQL-запросов, которые объединяют несколько таблиц, избегайте одинаковых имен столбцов, чтобы предотвратить ошибки. Для этого:

    • Вместо SELECT * перечисляйте конкретные столбцы.

    • Используйте псевдонимы для столбцов с одинаковыми именами.

    Например, вместо запроса вида

    SELECT
        *
    FROM
        Database1.TableStart AS tableStart
    JOIN Database1.TableStop AS tableStop
    ON
        tableStart.id = tableStop.id
    WHERE
        tableStart.id > ?;

    используйте запрос

    SELECT
        tableStart.id AS tableStartId,
        /* псевдоним для столбца id в первой таблице */
        tableStart.AdminId,
        tableStart.StartTime,
        tableStop.id,
        tableStop.EndTime,
        tableStop.IsSuccessful
        /* перечислены конкретные столбцы */
    FROM
        Database1.TableStart AS tableStart
    JOIN Database1.TableStop AS tableStop
    ON
        tableStart.id = tableStop.id
    WHERE
        tableStart.id > ?;
  4. Поле идентификатора: добавление полей-идентификаторов для определения строки начала чтения при первом подключении к БД. Список полей представлен в виде таблицы со столбцом для указания ключа поля идентификатора и столбцом для задания его стартового значения.

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

    Интервал между инициациями SQL-запросов не охватывает время исполнения запросов, что может фактически продлить интервал между запусками.
  6. Максимальное количество строк (опционально): максимальное количество строк для чтения в ходе выполнения SQL-запроса.

Пример настройки точки входа Database

Представим, что в подключаемой базе данных имеется таблица событий events, из которой необходимо извлечь данные по столбцам id, timestamp и data.

После определения типа базы данных и конфигурации строки подключения, следующий шаг заключается в настройке идентификационных полей для отслеживания и выборки данных. В качестве таких полей можно использовать id и timestamp. Добавим их ключи в левый столбец таблицы Поле идентификатора.

Необходимо гарантировать, что значения всех полей, определенных в качестве идентификаторов в строке — таких как id, timestamp и любые другие участвующие поля — строго согласуются между собой, отражая уникальные данные одной записи в базе данных. Эти поля в совокупности формируют составной ключ, обеспечивая точную идентификацию записи в БД.

Предположим, что первые 50 записей не должны попасть в выборку. Учитывая, что идентификаторы (id) в базе данных присваиваются последовательно, установим для поля id в Поле идентификатора значение "51". Таким образом, извлечение данных начнется непосредственно с записи, имеющей id=51.

Если предположить, что запись с id=51 соответствует событию, произошедшему в "2024-01-01 00:00:00", это значение также указывается в качестве критерия выборки в Поле идентификатора для timestamp. Использование id в сочетании с timestamp в качестве начальных условий выборки формирует составной ключ, обеспечивающий уникальность каждой записи в базе данных.

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

В целях снижения нагрузки на коллектор можно ограничить считывание данных из БД порциями по 100 записей, используя в SQL-запросе оператор LIMIT. Например:

SELECT id, timestamp, data FROM events WHERE id > ? ORDER BY id ASC LIMIT 100;

Здесь ? — это параметр, который позволяет динамически подставлять значение идентификатора (id) последней обработанной записи в базе данных. Система хранит id последней обработанной записи и при последующем выполнении запроса адаптирует условие выборки, запуская процесс чтения данных не с фиксированной строки (в данном случае, не с 51), а с записи, следующей непосредственно за последней обработанной.

Предположим, новые данные поступают в рассматриваемую базу данных с периодичностью в 60 минут. Для оптимизации процесса извлечения данных рекомендуется настроить периодичность выполнения SQL-запросов, соответствующую этому интервалу. Оптимальным решением будет установка интервала в 3600 секунд (один час), что позволит системе регулярно обновлять данные без излишних запросов.

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

Таким образом, вышеприведенные настройки позволят считать из таблицы events в подключенной БД все события начиная с id=51 и timestamp=+`2024-01-01 00:00:00+` порциями по 100 записей. Порции записей будут направляться в точку входа раз в 3600 секунд.

Demo Logs

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

При создании точки входа типа Demo Logs требуется указать значения следующих параметров:

  1. Количество событий (опционально): количество событий для вывода. По умолчанию точка входа выводит логи непрерывно. Формат: целое число больше 0.

  2. Формат генерируемых событий: выбор формата, в котором будут генерироваться события. Варианты:

    • apache_common — общий журнал Apache;

    • apache_error — журнал ошибок Apache;

    • bsd_syslog — формат BSD syslog (RFC 3164);

    • json — логи HTTP-сервера в формате JSON;

    • shuffle — выбор событий из заданного списка;

    • syslog — формат syslog (RFC 5424).

  3. Интервал в секундах (опционально): время задержки между пакетами событий вывода. Формат ввода: число с точностью до трех знаков после запятой, начиная с 0. По умолчанию события отправляются каждую секунду.

  4. Список событий: отображается, если выбран формат shuffle.

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

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

    Примеры событий
    {"dvendor":"Microsoft","dhost":"host1","duser":"user1","sourceIp":"192.0.2.0"}
    
    {"dvendor":"Linux","dhost":"host1","duser":"user1","sourceIp":"198.51.100.0"}
    Экранировать символы в списке событий не требуется.

При выборе формата shuffle события передаются в виде строки. Чтобы обрабатывать эти события, преобразуйте их в нужный формат, например, с помощью функции .raw = parse_json!(.raw). Чтобы привести метку времени к ожидаемому типу и формату данных (2024-07-15T09:05:25.153815269Z), используйте функцию parse_timestamp:

.timestamp = parse_timestamp!(.timestamp, format: "%FT%T%.9fZ")

HTTP Client

Точка входа HTTP Client выполняет роль клиента во взаимодействии типа "клиент — сервер". Она позволяет подключаться к внешнему серверу по HTTP-протоколу для активного сбора данных с этого сервера. Сбор данных происходит за счет регулярного выполнения HTTP-запросов, посылаемых от точки входа (клиента) к серверу.

При создании точки входа типа HTTP Client требуется указать значения следующих параметров:

  1. Адрес подключения: полный адрес для подключения к HTTP-серверу в виде URI, например, http://127.0.0.1:9898/logs или http://somehost:9898/logs.

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

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

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

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

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

  3. 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.

    Чтобы задать заголовок:

    1. Нажмите на кнопку Добавить. Отобразится строка добавления заголовка.

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

      Точка входа HTTP Client поддерживает пагинацию — постраничное получение данных, когда данные поступают в систему последовательными порциями. Чтобы запрашивать данные с пагинацией, в качестве указателя (курсора) на следующую порцию данных следует использовать поле идентификатора.

      Укажите ключ поля идентификатора в двойных фигурных скобках как значение заголовка, например:

      • Поле идентификатора: OffsetAmount.

      • Заголовок: Offset.

      • Значение заголовка: {{OffsetAmount}}.

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

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

    Пример HTTP-параметра

    Допустим, HTTP-ресурс содержит множество событий, из которых необходимо выбрать только события с уровнем угрозы Критический. Для указания критического уровня угрозы используется пара severity=critical. Таким образом, чтобы получить нужные данные, в HTTP-запросе необходимо передать параметр severity со значением critical.

    Чтобы задать параметр:

    1. Нажмите на кнопку Добавить. Отобразится строка добавления параметра.

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

      Точка входа HTTP Client поддерживает пагинацию — постраничное получение данных, когда данные поступают в систему последовательными порциями. Чтобы запрашивать данные с пагинацией, в качестве указателя (курсора) на следующую порцию данных следует использовать поле идентификатора.

      Укажите ключ поля идентификатора в двойных фигурных скобках как значение параметра, например:

      • Поле идентификатора: OffsetAmount.

      • Параметр: Offset.

      • Значение параметра: {{OffsetAmount}}.

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

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

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

    • GET — запрашивает данные с сервера. Метод предназначен только для получения данных без дополнительных взаимодействий с сервером.

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

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

    • POST — отправляет данные на сервер. Метод используется в тех случаях, когда для получения данных требуется дополнительное взаимодействие с сервером (например, передача данных для авторизации на сервере).

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

  6. Тело запроса (опционально): тело отправляемого запроса в формате JSON.

    Настройка тела запроса доступна, если выбран метод запроса PATCH, POST или PUT.

    Точка входа HTTP Client поддерживает пагинацию — постраничное получение данных, когда данные поступают в систему последовательными порциями. Чтобы запрашивать данные с пагинацией, в качестве указателя (курсора) на следующую порцию данных следует использовать поле идентификатора.

    Укажите ключ поля идентификатора в двойных фигурных скобках как значение параметра тела запроса, например:

    • Поле идентификатора: OffsetAmount.

    • Параметр: Offset.

    • Значение параметра в теле запроса: "Offset": {{OffsetAmount}}.

  7. Поле идентификатора (опционально): список полей-идентификаторов для определения строки начала чтения при запросе к внешнему серверу. Список представлен в виде таблицы со следующими столбцами:

    • Ключ — ключ поля идентификатора.

    • Значение по умолчанию — значение идентификатора при первом запросе к внешнему серверу. Допустимые значения — число или строка длиной до 255 символов.

    • Шаблон — путь к параметру ответа на запрос, содержащему значение идентификатора. С этого значения будет продолжено чтение при следующем запросе. Пример: response.body.pageInfo.offset.

      Поддерживаются все конструкции синтаксиса языка шаблонов Handlebars.
  8. Интервал запроса, секунд (опционально): интервал между HTTP-запросами в секундах. Интервал включает в себя время выполнения HTTP-запроса.

    Интервал запроса рекомендуется устанавливать выше значения таймаута запроса.
  9. Таймаут запроса, секунд (опционально): максимальное время выполнения HTTP-запроса в секундах. Если запрос будет выполняться дольше указанного времени, его выполнение будет прекращено.

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

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

    Допускается использование доменных имен (например: example.com), шаблонов доменов (например: .example.com), IP-адресов (например: 127.0.0.1), CIDR-блоков (например: 192.168.0.0/16).

  12. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

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

Пример настройки точки входа HTTP Client

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

  1. Введите адрес подключения и выберите тип аутентификации.

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

  3. Настройте параметры отправляемых HTTP-запросов. Предположим, что на сервере хранятся события с различным уровнем угрозы, которые определяются параметром severity. Чтобы получать только события с уровнем угрозы Критический (critical), в поле Параметры запроса добавьте параметр severity с соответствующим значением.

  4. Выберите метод запроса. Так как для доступа к серверу требуется передать данные для авторизации, для повышения безопасности их передачи следует использовать метод POST. В отличие от метода GET, POST кодирует данные и передает их в теле HTTP-запроса, обеспечивая их конфиденциальность. Выберите метод POST в поле Метод запроса.

  5. Настройте интервал между отправкой запросов. Предположим, что новые данные поступают на сервер с периодичностью 60 минут. Рекомендуется настроить выполнение HTTP-запросов с таким же интервалом. Оптимальным будет интервал в 3600 секунд (один час), что позволит системе регулярно обновлять данные без излишних запросов. Введите значение 3600 в поле Интервал запроса, секунд.

    Указанный интервал между HTTP-запросами включает время их выполнения.
  6. Поскольку время выполнения HTTP-запросов может превысить указанный интервал, необходимо задать таймаут, ограничивающий максимальное время выполнения запросов. Оптимальным решением будет установка таймаута в 3000 секунд (50 минут), что гарантирует завершение текущего запроса до инициации следующего. Введите значение 3000 в поле Таймаут запроса, секунд.

Таким образом, вышеприведенные настройки позволят считывать с сервера события с критическим уровнем угрозы порциями по 512 байт. Порции записей будут направляться в точку входа каждые 3600 секунд.

Пример настройки точки входа HTTP Client с использованием полей идентификаторов

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

  1. Введите адрес подключения и выберите тип аутентификации.

  2. Настройте идентификатор события, с которого следует начать чтение:

    1. Добавьте поле в Поле идентификатора.

    2. В поле Ключ укажите имя идентификатора: например, OffsetEventID.

    3. В поле Значение по умолчанию введите идентификатор события во внешней системе, с которого начнется чтение событий при первом запросе.

    4. В поле Шаблон введите путь к параметру ответа на запрос, содержащему значение идентификатора. С этого значения будет продолжено чтение при следующем запросе. Например, response.body.pageInfo.offset.

  3. Настройте параметры отправляемых HTTP-запросов:

    1. Чтобы получать только события с уровнем угрозы Критический (critical), в поле Параметры запроса добавьте параметр severity с соответствующим значением.

    2. Чтобы ограничить количество событий, получаемых в ответе на один запрос, в поле Параметры запроса добавьте параметр limit с соответствующим значением: например, 100.

    3. Чтобы использовать идентификатор события, с которого будет начато чтение при следующем запросе, в поле Параметры запроса добавьте параметр offset со значением {{OffsetEventID}}.

  4. В качестве метода запроса выберите POST.

  5. Настройте интервал и таймаут аналогично предыдущему примеру:

    • Интервал запроса, секунд: 3600.

    • Таймаут запроса, секунд: 3000.

Таким образом, вышеприведенные настройки позволят считывать с сервера события с критическим уровнем угрозы каждые 3600 секунд. Каждый запрос будет возвращать до 100 событий без повторения идентификаторов.

HTTP Server

Точка входа HTTP Server выполняет роль сервера во взаимодействии типа "клиент — сервер". Она позволяет внешним источникам (клиентам) подключаться к ней для пассивного сбора данных с помощью HTTP-запросов. Обработка HTTP-запросов от клиентов приводит к генерации событий, которые поступают в точку входа (на сервер).

При создании точки входа типа HTTP Server требуется указать значения следующих параметров:

  1. Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

    Если необходимо подключиться к узлу кластера Kubernetes по порту, отличному от порта точки входа, установите переключатель Отдельный порт для узла кластера в активное положение. В появившемся поле укажите порт узла кластера. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

  2. Кодировка: выбор формата кодировки событий. Доступные форматы:

    • Text — выбран по умолчанию;

    • JSON;

    • Newline-delimited JSON;

    • Binary.

  3. Путь (опционально): URL-путь, используемый клиентом для записи событий при использовании метода POST. Например: /logs или /logs/application.

    Путь будет добавлен в метаданные поступающих событий.

    По умолчанию точка входа обрабатывает HTTP-запросы, поступающие по любому URL-пути, соответствующему заданному шаблону. Например, при настройке пути в виде /logs, система также обработает запросы, поступающие по вложенным путям, таким как /logs/application. Чтобы разрешить получение HTTP-запросов только с указанного пути, установите флажок Абсолютный путь. В этом случае все события, поступающие на путь, отличный от заданного, будут отбрасываться.

  4. HTTP-заголовки (опционально): заголовки поступающих HTTP-запросов. Заголовки позволяют уточнить, какие дополнительные данные требуется получить от клиентов. Указанные заголовки будут добавлены в метаданные поступающих событий. Допустимо использование подстановочного символа *, например, X-*.

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

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

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

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

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

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

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

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

    Пример

    Чтобы определить, от какого агента поступило событие, необходимо указать заголовок User-Agent.

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

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

  5. Параметры HTTP-запроса (опционально): дополнительные параметры, применяемые к строке поступающих HTTP-запросов. Как и HTTP-заголовки, параметры позволяют конкретизировать данные, получаемые от клиентов. Указанные параметры будут добавлены в метаданные поступающих событий. Допустимо использование подстановочного символа *, например, X-*.

    Пример

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

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

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

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

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

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

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

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

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

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

  7. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

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

Пример настройки точки входа HTTP Server

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

Допустим, необходимо определить, от какого агента поступило каждое событие. Для этого добавим заголовок User-Agent. В метаданные событий будет добавлено одноименное поле с информацией об агенте-источнике.

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

Так как в данном примере предполагается только получение событий, в качестве метода поступающих HTTP-запросов выберем GET.

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

Kafka

При создании точки входа типа Kafka требуется указать значения следующих параметров:

  1. Адреса подключения: список адресов серверов в кластере Kafka для подключения. Формат: IP-адрес:порт, например, 10.14.22.123:9092, 10.14.23.332:9092.

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

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

  2. Название группы потребителей: название Consumer group, которое будет использоваться для получения событий из Kafka, например, event-consumer-group.

  3. Названия топиков: названия топиков Kafka, из которых будут читаться события.

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

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

  4. Разделитель (опционально): выбор способа разделения событий. Варианты: Символ, Новая строка, Подсчет октетов (RFC 6587).

  5. Настройки разделителя: зависят от выбранного типа разделителя. Включают настройку символа разделителя и максимальной длины события.

  6. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

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

Logstash

При создании точки входа типа Logstash требуется указать значения следующих параметров:

  1. Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

    Если необходимо подключиться к узлу кластера Kubernetes по порту, отличному от порта точки входа, установите переключатель Отдельный порт для узла кластера в активное положение. В появившемся поле укажите порт узла кластера. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

  2. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

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

  3. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

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

Netflow

Точка входа поддерживает следующие версии протокола Netflow: v5, v7, v9, IPFIX.

При создании точки входа типа Netflow требуется указать значения следующих параметров:

  1. Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

    Если необходимо подключиться к узлу кластера Kubernetes по порту, отличному от порта точки входа, установите переключатель Отдельный порт для узла кластера в активное положение. В появившемся поле укажите порт узла кластера. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

  2. Размер буфера (опционально): определение максимального размера буфера для входящих сообщений, в байтах.

Socket

При создании точки входа типа Socket (TCP, UDP) требуется указать значения следующих параметров:

  1. Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

    Если необходимо подключиться к узлу кластера Kubernetes по порту, отличному от порта точки входа, установите переключатель Отдельный порт для узла кластера в активное положение. В появившемся поле укажите порт узла кластера. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

  2. Протокол: выбор протокола передачи данных. Варианты: TCP, UDP.

  3. Разделитель (опционально): выбор способа разделения событий. Варианты: Символ, Новая строка, Подсчет октетов (RFC 6587).

  4. Настройки разделителя: зависят от выбранного типа разделителя. Включают в себя настройку символа разделителя и максимальной длины события.

  5. Размер буфера (опционально): определение максимального размера буфера для входящих сообщений, в байтах.

    Настройка размера буфера доступна только при выборе протокола UDP.

  6. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

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

Syslog

При создании точки входа типа Syslog требуется указать значения следующих параметров:

  1. Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

    Если необходимо подключиться к узлу кластера Kubernetes по порту, отличному от порта точки входа, установите переключатель Отдельный порт для узла кластера в активное положение. В появившемся поле укажите порт узла кластера. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

  2. Протокол: выбор протокола передачи данных. Варианты: TCP, UDP.

  3. Размер буфера (опционально): определение максимального размера буфера для входящих сообщений, в байтах.

  4. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

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

Vector

При создании точки входа типа Vector требуется указать значения следующих параметров:

  1. Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

    Если необходимо подключиться к узлу кластера Kubernetes по порту, отличному от порта точки входа, установите переключатель Отдельный порт для узла кластера в активное положение. В появившемся поле укажите порт узла кластера. Допустимый диапазон: 30000—​32767. Значение должно быть уникальным в рамках кластера.

  2. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

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

WMI

Точка входа типа WMI (Windows Management Instrumentation) предназначена для получения данных с удаленных хостов на базе ОС Windows. Точка входа собирает события журналов и другие системные данные через WMI-запросы, обеспечивая доступ к информации о процессах, службах и других ресурсах системы.

При создании точки входа WMI требуется указать значения следующих параметров:

  1. Адрес подключения: имя хоста или IP-адрес удаленного хоста, с которого будут собираться данные, например, localhost, 198.51.100.123.

    Не рекомендуется создавать в одном коллекторе несколько точек WMI, подключенных к одному адресу.

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

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

    Учетные данные выбираются из списка секретов.

  3. Журнал: выбор журналов, из которых необходимо собирать события.

    Доступны следующие журналы:

    • Application — журнал приложений.

    • Security — журнал безопасности.

    • System — журнал системы.

    • Setup — журнал установки.

    • Forwarded Events — журнал событий передовой диагностики.

    • Hardware Events — журнал аппаратного обеспечения.

    • Microsoft-Windows-Sysmon/Operational — журнал операций System Monitor.

    • Microsoft-Windows-PowerShell/Operational — журнал операций PowerShell.

    • Microsoft-Windows-Bits-Client/Operational — журнал службы Background Intelligent Transfer Service.

    • Microsoft-Windows-DNSServer/Audit — журнал аудита DNS-запросов.

    • Microsoft-Windows-TaskScheduler/Operational — журнал операций Планировщика задач.

    • Microsoft-Windows-WMI-Activity/Operational — журнал активности WMI.

    • Microsoft-Windows-WinRM/Operational — журнал операций Windows Remote Management.

    • Microsoft-Windows-AppLocker/EXE and DLL — журнал применения политик AppLocker для EXE и DLL.

    • DNS Server — журнал DNS-сервера.

    • Microsoft-Windows-DHCP Server Events/Operational — журнал аудита конфигурации DHCP.

    • Microsoft-Windows-DHCP Server Events/FilterNotifications — журнал событий фильтрации DHCP-сервера.

      Название журнала, из которого было получено событие, сохраняется в поле @wmi.channel в метаданных события.
  4. Интервал запроса, секунд: интервал между запросами, включая время выполнения запроса. По умолчанию установлено значение 60 секунд.

    Интервал между инициациями запросов охватывает время исполнения запросов, что может фактически продлить интервал между запусками.
  5. Кодировка (опционально): кодировка данных, полученных от источника. Позволяет задать кодировку, если требуется специальная обработка текстовых данных. Формат: название кодировки, например, UTF-8, Windows-1251.

NATS JetStream

Точка входа типа NATS JetStream предназначена для получения данных с внешних систем через брокер сообщений NATS.

При создании точки входа типа NATS JetStream требуется указать значения следующих параметров:

  1. Адрес подключения: полный путь для подключения к NATS в формате URL- или IP-адреса с указанием порта. Например: nats://cluster.nats.com или nats://127.0.0.1:4242.

    Для обмена сообщениями через NATS по умолчанию используется порт 4222.
  2. Название потока (опционально): название существующего потока (хранилища сообщений), из которого необходимо выполнять чтение тем.

    Поток должен быть создан в NATS до настройки точки входа.
  3. Тема: список тем NATS, из которых необходимо получать сообщения.

    Темы должны быть созданы в NATS до настройки точки входа.

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

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

    Особенности ввода тем:

    • Название темы вводится в кодировке Unicode.

    • Для задания иерархии и обозначения связанных тем можно использовать точку. Например: time.us.east.

    • Допустимо использование подстановочных символов:

      • * — единственный токен. Например: time.*.east.

      • > — множественные токены. Данный символ может использоваться только в конечной позиции. Например: time.us.>.

  4. Домен (опционально): название домена NATS JetStream.

  5. Ключ темы (опционально): ключ, под которым будет записана тема NATS.

  6. Потребитель: название потребителя, который будет получать сообщения.

  7. Название соединения (опционально): название соединения с NATS.

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

  9. Тип аутентификации (опционально): выбор типа аутентификации во внешней системе:

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

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

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

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

  12. NKey: выберите секрет типа NATS Key, хранящий приватный и публичный ключи для подключения к NATS.

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

  13. Формат событий: формат получения событий из внешней системы. Доступные форматы:

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

      { "type": "record", "name": "log", "fields": [{ "name": "msg", "type": "string" }] }
    • BYTES. Данный формат выбран по умолчанию.

    • GELF.

    • INFLUXDB.

    • JSON.

    • NATIVE.

    • NATIVE_JSON.

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

    • SYSLOG.

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

Global Bus

Точка входа типа Global Bus предназначена для получения событий из глобальной шины.

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

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

Пример обработки событий, собранных в вынесенном коллекторе, рассмотрен в разделе Сбор событий из вынесенного коллектора.

При создании точки входа типа Global Bus требуется выбрать из выпадающего списка коллектор, из которого необходимо получать события.

R-Vision Endpoint

Точка входа типа R-Vision Endpoint предназначена для получения событий с агентов, установленных на конечных устройствах.

При создании точки входа типа R-Vision Endpoint требуется указать домен NATS JetStream для подключения к шлюзу. Домен задается в конфигурации NATS-сервера в формате gw-<gateway_id>, где <gateway_id> — идентификатор шлюза. Подключение выполняется к NATS-серверу, заданному по умолчанию: nats://nats-space:4222.

FTP

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

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

FTP (File Transfer Protocol) — протокол, позволяющий передавать файлы по сети без шифрования. FTP применяется для передачи неконфиденциальных данных, например, для загрузки общедоступных файлов с веб-сайта.

При создании точки входа типа FTP требуется указать значения следующих параметров:

  1. Адрес подключения: полный адрес для подключения к серверу в виде URI, например, 127.0.0.1:9898/logs или somehost:9898/logs.

    По умолчанию используется порт 21.

  2. Тип аутентификации (опционально): выбор секрета типа Учетные данные, хранящего имя пользователя и пароль для авторизации.

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

  3. Маска файла: путь или маска для поиска текстовых файлов на сервере, например, /var/log/**/*.log.

  4. Интервал запроса, секунд (опционально): интервал между запросами в секундах. Интервал включает в себя время выполнения запроса данных. Интервал по умолчанию: 15 секунд.

    Интервал запроса рекомендуется устанавливать выше значения таймаута запроса.
  5. Таймаут запроса, секунд (опционально): максимальное время выполнения запроса в секундах. Если запрос будет выполняться дольше указанного времени, его выполнение будет прекращено. Таймаут по умолчанию: 5 секунд.

  6. Многострочная обработка (опционально): объединение нескольких строк лога в одно событие. При включении многострочной обработки необходимо:

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

      Примеры регулярных выражений для начала события приведены в разделе Примеры настройки многострочной обработки.
    2. Выбрать способ агрегации строк лога. Доступные варианты:

      • По шаблону + 1 — к событию добавляются последовательные строки, удовлетворяющие шаблону, а также первая строка, для которой шаблон не сработал.

        Агрегация По шаблону + 1 полезна, когда запись лога состоит из нескольких строк, которые заканчиваются маркером продолжения, например, обратной косой чертой.

        Данный способ выбран по умолчанию.

      • По шаблону — к событию добавляются последовательные строки, удовлетворяющие шаблону.

        Агрегация По шаблону полезна, когда строки-продолжения обладают каким-то общим признаком, например, ведущими отступами вроде пробелов или табуляции.

      • Не по шаблону — к событию добавляются последовательные строки, не удовлетворяющие шаблону.

        Агрегация Не по шаблону полезна, когда начало записи лога определяется каким-то маркером или признаком, например, типом сообщения. В таких случаях строки без этого признака относятся к предыдущей записи.

      • Не по шаблону + 1 — к событию добавляются последовательные строки, не удовлетворяющие шаблону, а также первая строка, для которой шаблон сработал.

        Агрегация Не по шаблону + 1 полезна, когда сообщение заканчивается маркером (например, точкой с запятой), после которого начинается новое сообщение.

      Примеры логов для каждого способа агрегации приведены в разделе Примеры настройки многострочной обработки.
    3. Указать шаблон условия агрегации в виде регулярного выражения.

      Шаблон условия может не совпадать с шаблоном начала события.
      Примеры регулярных выражений для условия агрегации приведены в разделе Примеры настройки многострочной обработки.
    4. Ввести таймаут агрегации в секундах, по истечении которого событие отправляется, даже если агрегация не завершена. Таймаут по умолчанию: 1 секунда.

  7. Кодировка (опционально): кодировка данных, полученных от источника. Позволяет задать кодировку, если требуется специальная обработка текстовых данных.

    Доступные кодировки приведены в разделе Кодировки в точках входа.

  8. Цифровой отпечаток: количество строк, которые будут считываться с начала файла для создания его уникального идентификатора.

    Если файл содержит меньше строк, чем указано в поле, он будет пропущен.

  9. Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:

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

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

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

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

SMB

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

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

SMB (Server Message Block) — протокол, позволяющий организовать совместный доступ к файлам и принтерам в локальных сетях.

SMB по умолчанию применяется для организации общего доступа в ОС Windows. Для работы с SMB в Unix-подобных ОС необходимо использовать программное обеспечение Samba.

При создании точки входа типа SMB требуется указать значения следующих параметров:

  1. Путь к ресурсу: полный сетевой путь с именем общедоступного ресурса и опциональным подкаталогом, например, \\server\share\path\to\files.

  2. Тип аутентификации (опционально): выбор типа аутентификации для доступа к ресурсу:

    • Auto — при выборе данного типа система будет последовательно перебирать способы аутентификации.

    • Kerberos.

    • NTLM.

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

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

  4. Версия SMB: выбор версии протокола SMB:

    • SMB2.

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

  5. Маска файла: маска для поиска текстовых файлов, например, *.log.

  6. Интервал запроса, секунд (опционально): интервал между запросами в секундах. Интервал включает в себя время выполнения запроса данных. Интервал по умолчанию: 15 секунд.

    Интервал запроса рекомендуется устанавливать выше значения таймаута запроса.
  7. Таймаут запроса, секунд (опционально): максимальное время выполнения запроса в секундах. Если запрос будет выполняться дольше указанного времени, его выполнение будет прекращено. Таймаут по умолчанию: 5 секунд.

  8. Многострочная обработка (опционально): объединение нескольких строк лога в одно событие. При включении многострочной обработки необходимо:

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

      Примеры регулярных выражений для начала события приведены в разделе Примеры настройки многострочной обработки.
    2. Выбрать способ агрегации строк лога. Доступные варианты:

      • По шаблону + 1 — к событию добавляются последовательные строки, удовлетворяющие шаблону, а также первая строка, для которой шаблон не сработал.

        Агрегация По шаблону + 1 полезна, когда запись лога состоит из нескольких строк, которые заканчиваются маркером продолжения, например, обратной косой чертой.

        Данный способ выбран по умолчанию.

      • По шаблону — к событию добавляются последовательные строки, удовлетворяющие шаблону.

        Агрегация По шаблону полезна, когда строки-продолжения обладают каким-то общим признаком, например, ведущими отступами вроде пробелов или табуляции.

      • Не по шаблону — к событию добавляются последовательные строки, не удовлетворяющие шаблону.

        Агрегация Не по шаблону полезна, когда начало записи лога определяется каким-то маркером или признаком, например, типом сообщения. В таких случаях строки без этого признака относятся к предыдущей записи.

      • Не по шаблону + 1 — к событию добавляются последовательные строки, не удовлетворяющие шаблону, а также первая строка, для которой шаблон сработал.

        Агрегация Не по шаблону + 1 полезна, когда сообщение заканчивается маркером (например, точкой с запятой), после которого начинается новое сообщение.

      Примеры логов для каждого способа агрегации приведены в разделе Примеры настройки многострочной обработки.
    3. Указать шаблон условия агрегации в виде регулярного выражения.

      Шаблон условия может не совпадать с шаблоном начала события.
      Примеры регулярных выражений для условия агрегации приведены в разделе Примеры настройки многострочной обработки.
    4. Ввести таймаут агрегации в секундах, по истечении которого событие отправляется, даже если агрегация не завершена. Таймаут по умолчанию: 1 секунда.

  9. Кодировка (опционально): кодировка данных, полученных от источника. Позволяет задать кодировку, если требуется специальная обработка текстовых данных.

    Доступные кодировки приведены в разделе Кодировки в точках входа.

  10. Цифровой отпечаток: количество строк, которые будут считываться с начала файла для создания его уникального идентификатора.

    Если файл содержит меньше строк, чем указано в поле, он будет пропущен.

Примеры настройки многострочной обработки

Для точек входа FTP и SMB доступна многострочная обработка собираемых данных из логов. В данном разделе приведены примеры настройки многострочной обработки для различных ситуаций.

Поиск и обработка сообщений с маркерами продолжения

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

Сообщение с маркерами продолжения
Error: Unable to connect to database. \
Please check network settings \
and try again.

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

  • Шаблон начала события:

    ^Error:

    Все строки, начинающиеся с Error: будут создавать новое событие.

  • Способ агрегации: По шаблону + 1.

    К событию будут добавляться все строки, удовлетворяющие шаблону условия, а также первая строка, которая не удовлетворяет условию.

  • Шаблон условия:

    .*\\$

    Проверяется наличие обратной косой черты в конце строки.

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

Поиск и обработка сообщений с ведущими отступами

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

Сообщение с ведущими отступами
Error: Unable to connect to database.
    Please check network settings
    and try again.

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

  • Шаблон начала события:

    ^Error:

    Все строки, начинающиеся с Error: будут создавать новое событие.

  • Способ агрегации: По шаблону.

    К событию будут добавляться все строки, удовлетворяющие шаблону условия.

  • Шаблон условия:

    ^\s+

    Проверяется наличие пробелов или табуляции в начале строки.

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

Поиск и обработка сообщений с индикаторами в начале строки

Предположим, что сообщения в логах начинаются со специальных индикаторов [INFO], [WARN] или [ERROR]. Нам нужны только события с индикатором [ERROR].

Сообщения с разделителями в начале строки
[ERROR] Failed to load configuration.
File not found.

[INFO] System started successfully.

[WARN] Low disk space.

В примере выше приведены три сообщения разных типов, при этом первое сообщение (с индикатором [ERROR]) состоит из двух строк.

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

  • Шаблон начала события:

    ^$$ERROR$$

    Все строки, начинающиеся с [ERROR] будут создавать новое событие.

  • Способ агрегации: Не по шаблону.

    К событию будут добавляться все строки, не удовлетворяющие шаблону условия.

  • Шаблон условия:

    ^$$(INFO|WARN)$$

    Проверяется наличие индикатора [INFO] или [WARN] в начале строки.

Таким образом, каждое событие будет начинаться с [ERROR] и в него будут добавляться строки до тех пор, пока не появится строка, начинающаяся на [INFO] или [WARN].

Поиск и обработка сообщений с маркерами завершения

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

Сообщение с маркером завершения
Error: User login failed:
Invalid credentials;

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

  • Шаблон начала события:

    ^Error:

    Все строки, начинающиеся с Error: будут создавать новое событие.

  • Способ агрегации: Не по шаблону + 1.

    К событию будут добавляться все строки, не удовлетворяющие шаблону условия, а также первая строка, которая удовлетворяет условию.

  • Шаблон условия:

    .*;$

    Проверяется наличие точки с запятой в конце строки.

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

Кодировки в точках входа

В таблице ниже приведены форматы кодировки данных, доступные для точек входа FTP и SMB.

Более подробную информацию о кодировках можно найти в официальной документации Encoding Standard.
Актуальные кодировки
Стандарт Кодировка

UTF-8

unicode-1-1-utf-8

unicode11utf8

unicode20utf8

utf-8

utf8

x-unicode20utf8

Устаревшие однобайтовые кодировки
Стандарт Кодировка

IBM866

866

cp866

csibm866

ibm866

ISO-8859-2

csisolatin2

iso-8859-2

iso-ir-101

iso8859-2

iso88592

iso_8859-2

iso_8859-2:1987

l2

latin2

ISO-8859-3

csisolatin3

iso-8859-3

iso-ir-109

iso8859-3

iso88593

iso_8859-3

iso_8859-3:1988

l3

latin3

ISO-8859-4

csisolatin4

iso-8859-4

iso-ir-110

iso8859-4

iso88594

iso_8859-4

iso_8859-4:1988

l4

latin4

ISO-8859-5

csisolatincyrillic

cyrillic

iso-8859-5

iso-ir-144

iso8859-5

iso88595

iso_8859-5

iso_8859-5:1988

ISO-8859-6

arabic

asmo-708

csiso88596e

csiso88596i

csisolatinarabic

ecma-114

iso-8859-6

iso-8859-6-e

iso-8859-6-i

iso-ir-127

iso8859-6

iso88596

iso_8859-6

iso_8859-6:1987

ISO-8859-7

csisolatingreek

ecma-118

elot_928

greek

greek8

iso-8859-7

iso-ir-126

iso8859-7

iso88597

iso_8859-7

iso_8859-7:1987

sun_eu_greek

ISO-8859-8

csiso88598e

csisolatinhebrew

hebrew

iso-8859-8

iso-8859-8-e

iso-ir-138

iso8859-8

iso88598

iso_8859-8

iso_8859-8:1988

visual

ISO-8859-8-I

csiso88598i

iso-8859-8-i

logical

ISO-8859-10

csisolatin6

iso-8859-10

iso-ir-157

iso8859-10

iso885910

l6

latin6

ISO-8859-13

iso-8859-13

iso8859-13

iso885913

ISO-8859-14

iso-8859-14

iso8859-14

iso885914

ISO-8859-15

csisolatin9

iso-8859-15

iso8859-15

iso885915

iso_8859-15

l9

ISO-8859-16

iso-8859-16

KOI8-R

cskoi8r

koi

koi8

koi8-r

koi8_r

KOI8-U

koi8-ru

koi8-u

macintosh

csmacintosh

mac

macintosh

x-mac-roman

windows-874

dos-874

iso-8859-11

iso8859-11

iso885911

tis-620

windows-874

windows-1250

cp1250

windows-1250

x-cp1250

windows-1251

cp1251

windows-1251

x-cp1251

windows-1252

ansi_x3.4-1968

ascii

cp1252

cp819

csisolatin1

ibm819

iso-8859-1

iso-ir-100

iso8859-1

iso88591

iso_8859-1

iso_8859-1:1987

l1

latin1

us-ascii

windows-1252

x-cp1252

windows-1253

cp1253

windows-1253

x-cp1253

windows-1254

cp1254

csisolatin5

iso-8859-9

iso-ir-148

iso8859-9

iso88599

iso_8859-9

iso_8859-9:1989

l5

latin5

windows-1254

x-cp1254

windows-1255

cp1255

windows-1255

x-cp1255

windows-1256

cp1256

windows-1256

x-cp1256

windows-1257

cp1257

windows-1257

x-cp1257

windows-1258

cp1258

windows-1258

x-cp1258

x-mac-cyrillic

x-mac-cyrillic

x-mac-ukrainian

Устаревшие многобайтовые кодировки для китайского (упрощенного)
Стандарт Кодировка

GBK

chinese

csgb2312

csiso58gb231280

gb2312

gb_2312

gb_2312-80

gbk

iso-ir-58

x-gbk

gb18030

gb18030

Устаревшие многобайтовые кодировки для китайского (традиционного)
Стандарт Кодировка

Big5

big5

big5-hkscs

cn-big5

csbig5

x-x-big5

Устаревшие многобайтовые кодировки для японского
Стандарт Кодировка

EUC-JP

cseucpkdfmtjapanese

euc-jp

x-euc-jp

ISO-2022-JP

csiso2022jp

iso-2022-jp

Shift_JIS

csshiftjis

ms932

ms_kanji

shift-jis

shift_jis

sjis

windows-31j

x-sjis

Устаревшие многобайтовые кодировки для корейского
Стандарт Кодировка

EUC-KR

cseuckr

csksc56011987

euc-kr

iso-ir-149

korean

ks_c_5601-1987

ks_c_5601-1989

ksc5601

ksc_5601

windows-949

Прочие устаревшие кодировки
Стандарт Кодировка

replacement

csiso2022kr

hz-gb-2312

iso-2022-cn

iso-2022-cn-ext

iso-2022-kr

replacement

UTF-16BE

unicodefffe

utf-16be

UTF-16LE

csunicode

iso-10646-ucs-2

ucs-2

unicode

unicodefeff

utf-16

utf-16le

x-user-defined

x-user-defined

Была ли полезна эта страница?

Обратная связь