Работа с точками входа
Точка входа — это элемент конвейера, который отвечает за доставку в систему исходных событий. Выбор типа точки входа зависит от формата данных, получаемых из источника события. На диаграмме конфигурации конвейера точка входа имеет один выход и не имеет входов.
В системе доступны следующие типы точек входа:
Добавление точки входа
Чтобы добавить точку входа на конфигурацию конвейера:
-
Перейдите в раздел Ресурсы → Коллекторы. Система отобразит сведения об имеющихся коллекторах, в том числе их текущий статус (включен/выключен).
-
Нажмите на строку коллектора в списке. Система отобразит в правой части экрана карточку этого коллектора с подробной информацией о нем.
-
Перейдите на вкладку Конвейеры в карточке коллектора. Система отобразит список конвейеров коллектора.
-
Нажмите на стрелку () в строке конвейера. Отобразится карточка конвейера.
-
Нажмите на кнопку Конфигурация конвейера в нижней части карточки. Отобразится диаграмма конфигурации конвейера.
-
Удостоверьтесь, что в выпадающем списке Версия на панели инструментов в окне конфигурации конвейера выбран вариант Черновик.
-
Нажмите на кнопку Добавить элемент и выберите из выпадающего списка пункт Точка входа. Отобразится окно добавления точки входа.
-
При необходимости выберите шаблон для автоматического заполнения полей точки входа. По умолчанию выбран вариант Без шаблона.
-
Заполните поля (набор и содержание полей могут отличаться в зависимости от типа точки):
-
Название точки входа.
-
Тип точки входа.
Каждая точка входа типа Database, размещенная на конвейере коллектора, использует 256 МБ оперативной памяти (RAM) из ресурсов коллектора. Если планируется размещение точек входа типа Database, необходимо учитывать их суммарное потребление памяти при распределении ресурсов коллектора.
-
Политика аудита источников.
Точка входа может быть привязана только к одной политике аудита источников, но к одной политике может быть привязано несколько точек входа. -
Формат точки входа.
-
Данные для подключения.
-
Настройки шифрования соединения (опционально).
-
Количество событий (опционально).
-
Интервал в секундах (опционально).
-
-
Установите флажок Сохранить как шаблон, если настройку точки входа необходимо сохранить в качестве шаблона для дальнейшего использования.
-
Нажмите Добавить. Новая точка входа отобразится на схеме.
Изменение точки входа
Чтобы изменить точку входа:
-
Перейдите в раздел Ресурсы → Коллекторы. Система отобразит сведения об имеющихся коллекторах, в том числе их текущий статус (включен/выключен).
-
Нажмите на строку коллектора в списке. Система отобразит в правой части экрана карточку этого коллектора с подробной информацией о нем.
-
Перейдите на вкладку Конвейеры в карточке коллектора. Система отобразит список конвейеров коллектора.
-
Нажмите на стрелку () в строке конвейера. Отобразится карточка конвейера.
-
Нажмите на кнопку Конфигурация конвейера в нижней части карточки. Отобразится диаграмма конфигурации конвейера.
-
Удостоверьтесь, что в выпадающем списке Версия на панели инструментов в окне конфигурации конвейера выбран вариант Черновик.
-
Откройте окно настроек точки входа одним из следующих способов:
-
Выберите опцию Изменить в выпадающем меню Действия () справа от названия точки входа.
-
Дважды нажмите на точку входа на схеме конвейера.
-
-
Внесите изменения в требуемые поля.
-
Нажмите на кнопку Сохранить. Измененные данные точки входа будут сохранены.
Удаление точки входа
Чтобы удалить точку входа:
-
Перейдите в раздел Ресурсы → Коллекторы. Система отобразит сведения об имеющихся коллекторах, в том числе их текущий статус (включен/выключен).
-
Нажмите на строку коллектора в списке. Система отобразит в правой части экрана карточку этого коллектора с подробной информацией о нем.
-
Перейдите на вкладку Конвейеры в карточке коллектора. Система отобразит список конвейеров коллектора.
-
Нажмите на стрелку () в строке конвейера. Отобразится карточка конвейера.
-
Нажмите на кнопку Конфигурация конвейера в нижней части карточки. Отобразится диаграмма конфигурации конвейера.
-
Удостоверьтесь, что в выпадающем списке Версия на панели инструментов в окне конфигурации конвейера выбран вариант Черновик.
-
Выберите опцию Удалить в выпадающем меню Действия (), расположенном справа от названия точки входа. Система запросит подтверждение удаления точки входа.
-
Нажмите на кнопку Удалить. Точка входа будет удалена с конфигурации конвейера.
Параметры точек входа
Точка входа AMQP
При создании точки входа типа AMQP требуется указать значения следующих параметров:
-
Адрес подключения: выбор секрета типа Строка подключения, хранящего URI-адрес сервера AMQP в формате:
amqp://<user>:<password>@<host>:<port>/<vhost>?timeout=<seconds>
.Например:
amqp://user:password@127.0.0.1:5672/%2f?timeout=10
.Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Идентификатор потребителя (опционально): идентификатор группы потребителей, который будет использоваться для получения событий.
Например:
event-consumer-group
. -
Ключ exchange (опционально): ввод ключа exchange.
-
Ключ смещения AMQP (опционально): ввод ключа смещения AMQP.
-
Название очереди (опционально): ввод названия очереди.
-
Ключ маршрутизации AMQP (опционально): ввод ключа маршрутизации AMQP.
-
Разделитель (опционально): выбор способа разделения событий. Варианты: Символ, Новая строка, Подсчет октетов (RFC 6587).
-
Настройки разделителя: зависят от выбранного типа разделителя. Включают в себя настройку символа разделителя и максимальной длины события.
Максимальная длина (опционально): максимальная длина события, зависит от выбранного разделителя. Должно быть целым числом без знака, в диапазоне от 0 до 4294967295.
-
Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:
-
Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Выбрать секрет типа Сертификат, хранящий данные корневого сертификата.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.
-
Точка входа Audit
Точка входа Audit собирает события сервиса аудита и доставляет их на конвейер для дальнейшей обработки и анализа.
Сервис аудита предназначен для сбора, анализа и хранения данных о действиях пользователей и событиях в системе. Сервис аудита позволяет фиксировать такие действия, как входы в систему, создание, удаление и изменение ресурсов системы и конфигурации ее отдельных компонентов.
С помощью точки входа Audit можно отслеживать действия пользователей в системе для предотвращения, обнаружения и реагирования на возможные угрозы или нарушения безопасности. Например, вы можете настроить конфигурацию конвейера на выполнение следующих операций:
При создании точки входа типа Audit требуется указать значения параметра Уровни угрозы. Доступные варианты:
-
Отладочный — уровень угрозы 1 (
DEBUG
); -
Низкий — уровень угрозы 2 (
LOW
); -
Средний — уровень угрозы 3 (
MEDIUM
); -
Высокий — уровень угрозы 4 (
HIGH)
; -
Критический — уровень угрозы 5 (
CRITICAL
); -
Фатальный — уровень угрозы 6 (
FATAL
); -
Аварийный — уровень угрозы 7 (
ACCIDENT
).
Параметр фильтрует поток входящих событий аудита системы по их уровню угрозы.
Точка входа Database
Каждая точка входа типа Database, размещенная на конвейере коллектора, использует 256 МБ оперативной памяти (RAM) из ресурсов коллектора. При размещении точек входа типа Database, необходимо учитывать их суммарное потребление памяти при распределении ресурсов коллектора. |
При создании точки входа типа Database требуется указать значения следующих параметров:
-
Драйвер базы данных: выбор драйвера БД. По умолчанию доступны предустановленные драйвера следующих баз данных:
-
ClickHouse;
-
PostgreSQL;
-
MS SQL;
-
MySQL;
-
Oracle DB.
Чтобы просмотреть выбранный драйвер на странице раздела Драйверы БД, нажмите на кнопку Открыть.
-
-
Адрес подключения: выбор секрета типа Строка подключения, хранящего 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.
Примеры строки подключения:
-
jdbc:clickhouse://user:password@localhost/database
-
jdbc:clickhouse://localhost/database?user=user&password=password
-
-
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
-
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
-
Лимит соединений (опционально): установка максимального количества одновременных TCP-соединений.
-
Размер буфера (опционально): определение максимального размера буфера для входящих сообщений, в байтах.
-
Тест подключения: кнопка для выполнения тестового подключения с использованием указанного адреса подключения.
-
SQL запрос: ввод SQL запроса для работы с базой данных.
Example 1. Пример 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 > ?;
-
-
Поле идентификатора: добавление полей-идентификаторов для определения строки начала чтения при первом подключении к БД. Список полей представлен в виде таблицы с колонкой для указания ключа поля идентификатора и колонкой для задания его стартового значения.
Система хранит значение последней обработанной записи и при следующем выполнении запроса модифицирует условие выборки, инициируя чтение данных не с указанной строки в Поле идентификатора, а с записи, следующей непосредственно за последней обработанной. Необходимо гарантировать, что значения всех полей, определённых в качестве идентификаторов в строке строго согласуются между собой, отражая уникальные данные одной записи в базе данных. -
Интервал запроса, секунд (опционально): интервал между запросами в секундах.
Интервал между инициациями 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 требуется указать значения следующих параметров:
-
Количество событий (опционально): количество событий для вывода. По умолчанию точка входа выводит логи непрерывно. Формат: целое число больше 0.
-
Формат генерируемых событий: выбор формата, в котором будут генерироваться события. Варианты:
-
apache_common — общий журнал Apache;
-
apache_error — журнал ошибок Apache;
-
bsd_syslog — формат BSD syslog (RFC 3164);
-
json — логи HTTP-сервера в формате JSON;
-
shuffle — выбор событий из заданного списка;
-
syslog — формат Syslog (RFC 5424).
-
-
Интервал в секундах (опционально): время задержки между пакетами событий вывода. Формат ввода: число с точностью до трех знаков после запятой, начиная с 0. По умолчанию события отправляются каждую секунду.
-
Список событий: отображается, если выбран формат shuffle. Перечислите каждое событие с новой строки.
Example 2. Пример списка событий{"dvendor":"Microsoft","dhost":"host1","duser":"user1","sourceIp":"192.0.2.0"} {"dvendor":"Linux","dhost":"host1","duser":"user1","sourceIp":"198.51.100.0"}
Экранировать символы в списке событий не требуется.
При выборе формата shuffle события передаются в виде строки. Чтобы обрабатывать эти события, преобразуйте их в нужный формат, например, с помощью функции .timestamp = parse_timestamp!(.timestamp, format: "%FT%T%.9fZ") |
Точка входа HTTP Client
Точка входа HTTP Client выполняет роль клиента во взаимодействии типа "клиент — сервер". Она позволяет подключаться к внешнему серверу по HTTP-протоколу для активного сбора данных с этого сервера. Сбор данных происходит за счёт регулярного выполнения HTTP-запросов, посылаемых от точки входа (клиента) к серверу.
При создании точки входа типа HTTP Client требуется указать значения следующих параметров:
-
Адрес подключения: полный адрес для подключения к HTTP-серверу в виде URI, например
127.0.0.1:9898/logs
илиsomehost:9898/logs
. -
Тип аутентификации (опционально): выбор типа аутентификации на HTTP-сервере:
-
Базовая: выберите секрет типа Учетные данные, хранящий имя пользователя и пароль для авторизации.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Токен: выберите секрет типа Токен, хранящий токен для авторизации.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
-
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
.Чтобы задать заголовок, нажмите на кнопку Добавить. Отобразится строка добавления заголовка. Введите заголовок и его значение. Для одного заголовка можно задать несколько значений.
Чтобы удалить заголовок, нажмите на кнопку в строке нужного заголовка.
-
-
Параметры запроса (опционально): дополнительные параметры, применяемые к строке HTTP-запроса. Параметры представляют собой пары "ключ=значение" и позволяют конкретизировать ресурс, получаемый из HTTP-запроса.
Пример HTTP-параметраДопустим, HTTP-ресурс содержит множество событий, из которых необходимо выбрать только события с уровнем угрозы Критический. Для указания критического уровня угрозы используется пара
severity=critical
. Таким образом, чтобы получить нужные данные, в HTTP-запросе необходимо передать параметрseverity
со значениемcritical
.Чтобы задать параметр, нажмите на кнопку Добавить. Отобразится строка добавления параметра. Введите параметр и его значение. Для одного параметра можно задать несколько значений.
Чтобы удалить параметр, нажмите на кнопку в строке нужного параметра.
-
Интервал запроса, секунд (опционально): интервал между HTTP-запросами в секундах. Интервал включает в себя время выполнения HTTP-запроса.
Интервал запроса рекомендуется устанавливать выше значения таймаута запроса. -
Таймаут запроса, секунд (опционально): максимальное время выполнения HTTP-запроса в секундах. Если запрос будет выполняться дольше указанного времени, его выполнение будет прекращено.
-
Адрес HTTP-прокси (опционально): полный адрес для подключения к HTTP-прокси в виде URI. Применяется, если HTTP-сервер использует прокси.
-
Хосты без прокси (опционально): список хостов, для которых не используется прокси-сервер. Хосты указываются через запятую.
Допускается использование доменных имен (например: example.com), шаблонов доменов (например: .example.com), IP-адресов (например: 127.0.0.1), CIDR-блоков (например: 192.168.0.0/16).
-
Метод запроса (опционально): выбор метода HTTP-запроса:
-
DELETE — удаляет данные с сервера.
-
GET — запрашивает данные с сервера. Метод предназначен только для получения данных без дополнительных взаимодействий с сервером.
-
HEAD — запрашивает данные с сервера без тела HTTP-ответа.
-
PATCH — используется для частичного изменения ресурса.
-
POST — отправляет данные на сервер. Метод используется в тех случаях, когда для получения данных требуется дополнительное взаимодействие с сервером (например, передача данных для авторизации на сервере).
-
PUT — заменяет данные на сервере данными из HTTP-запроса.
-
-
Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:
-
Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Выбрать секрет типа Сертификат, хранящий данные корневого сертификата.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.
-
Пример настройки точки входа HTTP Client
Представим, что требуется получить события с внешнего сервера. После определения URI-адреса подключения и типа аутентификации, следующий шаг заключается в настройке заголовков и параметров в отправляемых HTTP-запросах.
Для снижения нагрузки на сервер можно ограничить считывание данных порциями по 512 байт. Для этого добавим заголовок Content-Length
, определяющий максимальный размер поступающих данных в байтах, и зададим ему соответствующее значение.
Предположим, что на сервере хранятся события с различным уровнем угрозы, которые определяются параметром severity
. Чтобы получить только события с уровнем угрозы Критический (critical
), добавим параметр severity
с соответствующим значением.
Так как для доступа к серверу требуется передать данные для авторизации, для повышения безопасности их передачи следует использовать метод POST. В отличие от метода GET, POST кодирует данные и передает их в теле HTTP-запроса, обеспечивая их конфиденциальность.
Предположим, новые данные поступают на сервер с периодичностью 60 минут. Для оптимизации процесса извлечения данных рекомендуется настроить выполнение HTTP-запросов с таким же интервалом. Оптимальным будет установка интервала в 3600 секунд (один час), что позволит системе регулярно обновлять данные без излишних запросов.
Указанный интервал между HTTP-запросами включает время их выполнения. |
Поскольку время выполнения HTTP-запросов может превысить указанный интервал, необходимо задать таймаут, ограничивающий максимальное время выполнения запросов. Оптимальным решением будет установка таймаута в 3000 секунд (50 минут), что гарантирует завершение текущего запроса до инициации следующего.
Таким образом, вышеприведенные настройки позволят считывать с сервера события с критическим уровнем угрозы порциями по 512 байт. Порции записей будут направляться в точку входа каждые 3600 секунд.
Точка входа HTTP Server
Точка входа HTTP Server выполняет роль сервера во взаимодействии типа "клиент — сервер". Она позволяет внешним источникам (клиентам) подключаться к ней для пассивного сбора данных с помощью HTTP-запросов. Обработка HTTP-запросов от клиентов приводит к генерации событий, которые поступают в точку входа (на сервер).
При создании точки входа типа HTTP Server требуется указать значения следующих параметров:
-
Кодировка: выбор формата кодировки событий. Варианты: Text (по умолчанию), JSON, Newline-delimited JSON, Binary.
-
Путь (опционально): URL-путь, используемый клиентом для записи событий при использовании метода POST. Например:
/logs
или/logs/application
.Путь будет добавлен в метаданные поступающих событий.
По умолчанию точка входа обрабатывает HTTP-запросы, поступающие по любому URL-пути, соответствующему заданному шаблону. Например, при настройке пути в виде
/logs
, система также обработает запросы, поступающие по вложенным путям, таким как/logs/application
. Чтобы разрешить получение HTTP-запросов только с указанного пути, установите флажок Абсолютный путь. В этом случае все события, поступающие на путь, отличный от заданного, будут отбрасываться. -
HTTP-заголовки (опционально): заголовки поступающих HTTP-запросов. Заголовки позволяют уточнить, какие дополнительные данные требуется получить от клиентов. Указанные заголовки будут добавлены в метаданные поступающих событий.
Об HTTP-заголовках
HTTP-заголовок — это строка в HTTP-запросе, состоящая из пары "имя: значение". Он используется для уточнения запроса или описания содержимого сообщения. Формат заголовка определяется стандартом RFC 822.
HTTP-заголовки делятся на следующие категории:
-
Основные заголовки (General Headers) — применяются во всех сообщениях клиента и сервера.
-
Заголовки запроса (Request Headers) — используются только в запросах клиента.
-
Заголовки ответа (Response Headers) — используются только в ответах от сервера.
-
Заголовки сущности (Entity Headers) — применяются к содержимому сообщения.
Полный список HTTP-заголовков можно найти в MDN Web Docs.
ПримерЧтобы определить, от какого агента поступило событие, необходимо указать заголовок
User-Agent
.Можно задать несколько заголовков. Каждый заголовок указывается с новой строки, без знаков препинания.
-
-
Параметры HTTP-запроса (опционально): дополнительные параметры, применяемые к строке поступающих HTTP-запросов. Как и HTTP-заголовки, параметры позволяют конкретизировать данные, получаемые от клиентов. Указанные параметры будут добавлены в метаданные поступающих событий.
ПримерПредположим, что от клиентов поступают события с различным уровнем угрозы. Чтобы определить уровень угрозы каждого события, необходимо указать соответствующий параметр, например,
severity
.Можно задать несколько параметров. Каждый параметр указывается с новой строки, без знаков препинания.
-
Метод запроса (опционально): выбор метода поступающих HTTP-запросов:
-
DELETE — удаляет данные с сервера.
-
GET — запрашивает данные с сервера с полным HTTP-ответом.
-
HEAD — запрашивает данные с сервера без тела HTTP-ответа.
-
PATCH — используется для частичного изменения ресурса.
-
POST — отправляет данные на сервер.
-
PUT — заменяет данные на сервере данными из HTTP-запроса.
-
-
Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:
-
Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Выбрать секрет типа Сертификат, хранящий данные корневого сертификата.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.
-
-
Порт точки входа: номер порта для обмена данными между точкой входа и клиентом. Допустимый диапазон: 30000—32767. Значение должно быть уникальным в рамках кластера.
Пример настройки точки входа HTTP Server
Предположим, требуется получать события от внешних клиентов. После определения порта точки входа, кодировки событий и пути записи событий, следующим шагом будет настройка заголовков и параметров в поступающих HTTP-запросах.
Допустим, необходимо определить, от какого агента поступило каждое событие. Для этого добавим заголовок User-Agent
. В метаданные событий будет добавлено одноименное поле с информацией об агенте-источнике.
Предположим, что от клиентов поступают события с различным уровнем угрозы, которые определяются параметром severity
. Чтобы определить уровень угрозы каждого события, добавим этот параметр. В метаданные событий будет добавлено одноименное поле с информацией об уровне угрозы.
Так как в данном примере предполагается только получение событий, в качестве метода поступающих HTTP-запросов выберем GET.
Таким образом, эти настройки позволят получать от клиентов события с дополнительной информацией об агентах-источниках и уровнях угрозы.
Точка входа Kafka
При создании точки входа типа Kafka требуется указать значения следующих параметров:
-
Адреса подключения: список адресов серверов в кластере Kafka для подключения. Формат: IP-адрес:порт, например, 10.14.22.123:9092, 10.14.23.332:9092.
-
Название группы потребителей: название Consumer group, которое будет использоваться для получения событий из Kafka, например, event-consumer-group.
-
Названия топиков: названия топиков Kafka, из которых будут читаться события. Список значений, разделенных запятой без пробелов, например, topic-1,topic-2.
-
Разделитель (опционально): выбор способа разделения событий. Варианты: Символ, Новая строка, Подсчет октетов (RFC 6587).
-
Настройки разделителя: зависят от выбранного типа разделителя. Включают настройку символа разделителя и максимальной длины события.
-
Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:
-
Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Выбрать секрет типа Сертификат, хранящий данные корневого сертификата.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.
-
Точка входа Logstash
При создании точки входа типа Logstash требуется указать значения следующих параметров:
-
Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—32767. Значение должно быть уникальным в рамках кластера.
-
Лимит соединений (опционально): установка максимального количества одновременных TCP-соединений.
-
Размер буфера (опционально): определение максимального размера буфера для входящих сообщений, в байтах.
-
Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:
-
Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Выбрать секрет типа Сертификат, хранящий данные корневого сертификата.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.
-
Точка входа Netflow
При создании точки входа типа Netflow требуется указать значения следующих параметров:
-
Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—32767. Значение должно быть уникальным в рамках кластера.
-
Размер буфера (опционально): определение максимального размера буфера для входящих сообщений, в байтах.
Точка входа R-Vision Endpoint
При создании точки входа типа R-Vision Endpoint требуется указать значения следующих параметров:
-
Порт точки входа: номер порта для обмена данными между точкой входа и R-Vision Endpoint. Допустимый диапазон: 30000—32767. Значение должно быть уникальным в рамках кластера.
-
Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:
-
Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Выбрать секрет типа Сертификат, хранящий данные корневого сертификата.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.
-
Точка входа Socket
При создании точки входа типа Socket (TCP, UDP) требуется указать значения следующих параметров:
-
Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—32767. Значение должно быть уникальным в рамках кластера.
-
Протокол: выбор протокола передачи данных. Варианты: TCP, UDP.
-
Разделитель (опционально): выбор способа разделения событий. Варианты: Символ, Новая строка, Подсчет октетов (RFC 6587).
-
Настройки разделителя: зависят от выбранного типа разделителя. Включают в себя настройку символа разделителя и максимальной длины события.
-
Лимит соединений (опционально): установка максимального количества одновременных TCP-соединений.
-
Размер буфера (опционально): определение максимального размера буфера для входящих сообщений, в байтах.
Настройка размера буфера доступна только при выборе протокола UDP.
-
Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:
-
Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Выбрать секрет типа Сертификат, хранящий данные корневого сертификата.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.
-
Точка входа Syslog
При создании точки входа типа Syslog требуется указать значения следующих параметров:
-
Порт точки входа: номер порта для обмена данными между точкой входа и внешней системой. Допустимый диапазон: 30000—32767. Значение должно быть уникальным в рамках кластера.
-
Протокол: выбор протокола передачи данных. Варианты: TCP, UDP.
-
Лимит соединений (опционально): установка максимального количества одновременных TCP-соединений.
-
Размер буфера (опционально): определение максимального размера буфера для входящих сообщений, в байтах.
-
Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:
-
Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Выбрать секрет типа Сертификат, хранящий данные корневого сертификата.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.
-
Точка входа Vector
При создании точки входа типа Vector требуется указать значения следующих параметров:
-
Порт точки входа: номер порта для обмена данными между точкой входа и системой. Допустимый диапазон: 30000—32767. Значение должно быть уникальным в рамках кластера.
-
Включить TLS (опционально): использование шифрования TLS. При включении TLS необходимо:
-
Выбрать секрет типа Контейнер PKCS или Контейнер PKCS#12, хранящий данные сертификата TLS.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
-
Выбрать секрет типа Сертификат, хранящий данные корневого сертификата.
Чтобы просмотреть выбранный секрет на странице раздела Секреты, нажмите на кнопку Открыть.
Доступны опции Подтверждение сертификата и Подтверждение имени хоста для настройки проверки действительности сертификата и соответствия имени удаленного хоста.
-
Точка входа WMI
Точка входа типа WMI (Windows Management Instrumentation) предназначена для получения данных с удаленных хостов на базе ОС Windows. Точка входа собирает события журналов и другие системные данные через WMI-запросы, обеспечивая доступ к информации о процессах, службах и других ресурсах системы.
При создании точки входа WMI требуется указать значения следующих параметров:
-
Адрес подключения: имя хоста или IP-адрес удаленного хоста, с которого будут собираться данные, например, 10.14.22.123, localhost.
-
Учетные данные: выбор учетной записи, которая будет использоваться для подключения к удаленному хосту и доступа к журналам. Необходимо, чтобы учетная запись имела права на доступ к журналам безопасности на целевом хосте.
Учетные данные выбираются из списка секретов.
-
Журнал: выбор журнала, из которого необходимо собирать события.
Доступны следующие журналы:
-
Application — журнал приложений.
-
Security — журнал безопасности.
-
System — журнал системы.
-
Setup — журнал установки.
-
Forwarded Events — журнал событий передовой диагностики.
-
Hardware Events — журнал аппаратного обеспечения.
-
-
Интервал запроса, секунд: интервал между запросами, включая время выполнения запроса. По умолчанию установлено значение 60 секунд.
Интервал между инициациями запросов охватывает время исполнения запросов, что может фактически продлить интервал между запусками. -
Кодировка (опционально): кодировка данных, полученных от источника. Позволяет задать кодировку, если требуется специальная обработка текстовых данных. Формат: название кодировки, например, UTF-8, Windows-1251.
-
Политика аудита источников (опционально): выбор политики аудита источников событий, которая будет применена к точке входа.