Прием данных из потока Cribl в Azure Data Explorer
Cribl Stream — это обработчик обработки, который безопасно собирает, обрабатывает и передает данные событий компьютера из любого источника. Он позволяет анализировать и обрабатывать эти данные для любого назначения для анализа и управления безопасным образом.
В этой статье показано, как принять данные с помощью Cribl Stream.
Полный список соединителей данных см. в обзоре интеграции данных.
Необходимые компоненты
- Учетная запись Cribl Stream
- Кластер и база данных Azure Data Explorer с политиками кэша и хранения по умолчанию.
- Среда запроса. Дополнительные сведения см. в разделе "Общие сведения об интеграции запросов".
- URI кластера Kusto для значения TargetURI в кластере> форматированияhttps://ingest-<.<region.kusto.windows.net>. Дополнительные сведения см. в разделе "Добавление подключения к кластеру".
Создание субъекта-службы Microsoft Entra
Субъект-служба Microsoft Entra можно создать с помощью портал Azure или программно, как показано в следующем примере.
Этот субъект-служба — это удостоверение, используемое соединителем для записи данных в таблицу в Kusto. Вы предоставляете этому субъекту-службе разрешения для доступа к ресурсам Kusto.
Войдите в подписку Azure с помощью Azure CLI. Затем авторизуйтесь в браузере.
az login
Выберите подписку для размещения субъекта. Этот шаг необходим, если у вас несколько подписок.
az account set --subscription YOUR_SUBSCRIPTION_GUID
Создайте субъект-службу. В этом примере принципал службы называется
my-service-principal
.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
Из возвращаемых данных JSON скопируйте
appId
password
данные иtenant
для дальнейшего использования.{ "appId": "00001111-aaaa-2222-bbbb-3333cccc4444", "displayName": "my-service-principal", "name": "my-service-principal", "password": "00001111-aaaa-2222-bbbb-3333cccc4444", "tenant": "00001111-aaaa-2222-bbbb-3333cccc4444" }
Вы создали приложение Microsoft Entra и субъект-службу.
Создание целевой таблицы
Создайте целевую таблицу для входящих данных и сопоставление приема для сопоставления столбцов данных приема с столбцами в целевой таблице.
Выполните следующую команду создания таблицы в редакторе запросов, заменив заполнитель TableName именем целевой таблицы:
.create table <TableName> (_raw: string, _time: long, cribl_pipe: dynamic)
Выполните следующую команду создания сопоставления приема, заменив заполнители TableName именем целевой таблицы и TableNameMapping именем сопоставления приема:
.create table <TableName> ingestion csv mapping '<TableNameMapping>' 'CriblLogMapping' '[{"Name":"_raw","DataType":"string","Ordinal":"0","ConstValue":null},{"Name":"_time","DataType":"long","Ordinal":"1","ConstValue":null},{"Name":"cribl_pipe","DataType":"dynamic","Ordinal":"2","ConstValue":null}]'
Предоставьте субъекту-службе из создания разрешения роли субъекта-службы Microsoft Entra для работы с базой данных. Дополнительные сведения см. в примерах. Замените заполнитель DatabaseName именем целевой базы данных и ApplicationID значением
AppId
, сохраненным при создании субъекта-службы Microsoft Entra..add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'App Registration'
Создание назначения Cribl Stream
В следующем разделе описывается создание назначения Cribl Stream, которое записывает данные в таблицу в Kusto. Для каждой таблицы требуется отдельный конечный соединитель Cribl Stream.
Выбор места назначения
Чтобы подключить Cribl Stream к таблице, выполните следующее:
В верхней области навигации в Cribl выберите "Управление ", а затем выберите рабочую группу.
Выберите "Быстрое подключение маршрутизации>" (Stream)>Добавить назначение.
В окне "Настройка нового назначения QuickConnect" выберите Azure Data Explorer, а затем добавьте.
Настройка общих параметров
В окне "Новый обозреватель данных" в разделе "Общие параметры" задайте следующие параметры:
Параметр | значение | Описание |
---|---|---|
Идентификатор вывода | <OutputID>, например KustoDestination | Имя, используемое для идентификации назначения. |
Режим приема | Пакетная обработка (по умолчанию) или потоковая передача | Параметры режима приема. Пакетная обработка позволяет таблице извлекать пакеты данных из контейнера хранилища Cribl при приеме больших объемов данных в течение короткого времени. Потоковая передача отправляет данные непосредственно в целевую таблицу KQL. Потоковая передача полезна для приема небольших объемов данных или, например, отправки критического оповещения в режиме реального времени. Потоковая передача может достичь меньшей задержки, чем пакетная обработка. Если для режима приема задан режим потоковой передачи, необходимо включить политику потоковой передачи. Дополнительные сведения см. в политике приема потоковой передачи. |
Базовый универсальный код ресурса (URI) кластера | базовый универсальный код ресурса (URI) | Базовый универсальный код ресурса (URI). |
URI службы приема | URI приема | Отображается при выборе режима пакетной обработки . Универсальный код ресурса (URI приема). |
Имя базы данных | <DatabaseName> | Имя целевой базы данных. |
Имя таблицы | <TableName> | Имя целевой таблицы. |
Проверка параметров базы данных | Да (по умолчанию) или Нет. | Проверяет учетные данные приложения субъекта-службы, введенные при сохранении или запуске назначения. Он проверяет имя таблицы, за исключением случаев, когда добавлен объект сопоставления. Этот параметр должен быть отключен, если у приложения нет ролей "Средство просмотра баз данных" и "Средство просмотра таблиц". |
Добавление объекта сопоставления | Да или нет (по умолчанию).) | Отображается только при выборе режима пакетной обработки вместо текстового поля сопоставления данных по умолчанию. При нажатии кнопки "Да " откроется окно для ввода сопоставления данных в виде объекта JSON. |
Сопоставление данных | Имя схемы сопоставления, определенное на шаге создания целевой таблицы . | Имя схемы сопоставления. Представление по умолчанию при добавлении объекта сопоставления имеет значение No. |
Сжатие | gzip (по умолчанию) | Если для формата данных задано значение Parquet, сжатие недоступно. |
Формат данных | JSON (по умолчанию), Raw или Parquet. | Формат данных. Parquet доступен только в пакетном режиме и поддерживается только в Linux. |
Поведение обратной прессы | Блокировка (по умолчанию) или удаление | Выберите, следует ли блокировать или удалять события, когда приемники оказывают обратную прессу. |
Теги | Необязательные значения | Необязательные теги для фильтрации и групп назначения на странице управления назначениями Cribl Stream. Используйте вкладку или жесткое возвращение между именами тегов. Эти теги не добавляются в обработанные события. |
По завершении нажмите кнопку "Далее".
Параметры проверки подлинности
Выберите параметры проверки подлинности на боковой панели. Используйте значения, сохраненные в разделе "Создание субъекта-службы Microsoft Entra" вместе с базовым URI следующим образом:
Параметр | значение | Описание |
---|---|---|
Идентификатор клиента | <Идентификатор клиента> | Используйте значение, сохраненное tenant в разделе "Создание субъекта-службы Microsoft Entra". |
Идентификатор клиента | <ClientID> | Используйте значения, сохраненные appId в разделе "Создание субъекта-службы Microsoft Entra". |
Область применения | <baseuri>/.default |
Используйте значение из базового URI для baseuri. |
метод проверки подлинности | Секрет клиента, секрет клиента (текстовый секрет) или сертификат | Параметры — это секрет клиента. Используйте секрет клиента приложения Microsoft Entra, созданного в разделе "Создание субъекта-службы Microsoft Entra для секрета клиента". Для сертификата сертификат использует открытый ключ, который вы зарегистрировали или зарегистрируете для приложения Microsoft Entra, созданного в разделе "Создание субъекта-службы Microsoft Entra". |
Затем выберите Далее.
Постоянная очередь
Отображается, когда для режима приема задан режим потоковой передачи, а для поведения Backpressure задано значение "Постоянная очередь".
Параметр | значение | Описание |
---|---|---|
Максимальный размер файла | 1 МБ (по умолчанию) | Максимальный размер файла очереди для достижения перед закрытием файла. Включите такие единицы, как КБ или МБ, при вводе числа. |
Максимальный размер очереди | 5 ГБ (по умолчанию) | Максимальное количество дискового пространства, которое очередь может использовать для каждого рабочего процесса до остановки очередей данных назначения. Необходимое значение положительных чисел с такими единицами, как КБ, МБ или ГБ. Максимальное значение — 1 ТБ. |
Путь к файлу очереди | $CRIBL_HOME/state/queues (по умолчанию) |
Расположение файла сохраняемой очереди. Cribl Stream добавляет /<worker‑id>/<output‑id> к этому значению. |
Сжатие | None (по умолчанию), gzip | Метод сжатия, используемый для сжатия сохраненных данных при закрытии. |
Поведение с полной очередью | Блокировка или удаление | Выберите блокировать или удалять события, когда очередь оказывает обратную нагрузку из-за низкой емкости диска или полной емкости диска. |
Строгое упорядочение | Да (по умолчанию) или Нет | Если задано значение "Да ", события перенаправляются на основе первого в, сначала упорядочивание. Установите значение "Нет ", чтобы отправлять новые события до предыдущих событий очереди. |
Ограничение скорости очистки (EPS) | 0 (по умолчанию) | Этот параметр отображается, если для строгого порядка задано значение "Нет", чтобы разрешить задать частоту регулирования (в событиях в секунду) для записи из очереди получателям. Регулирование скорости очистки событий очереди повышает новую или активную пропускную способность подключения. Ноль отключает регулирование. |
Очистка постоянной очереди | Неприменимо | Выберите, чтобы удалить файлы, которые в настоящее время находятся в очереди для доставки в назначение. Это действие необходимо подтвердить, так как данные очереди окончательно удаляются без получения доставки. |
После завершения нажмите кнопку "Далее".
Параметры обработки
Параметр | значение | Описание |
---|---|---|
Конвейер | <\defined_pipeline> | Необязательный конвейер для обработки данных перед отправкой данных с помощью этих выходных данных. |
Системные поля | cribl_pipe (по умолчанию), cribl_host , cribl_input , cribl_output cribl_route илиcribl_wp |
Список полей, которые автоматически добавляются в события перед их отправкой в место назначения. Поддерживаются подстановочные знаки. |
После завершения нажмите кнопку "Далее".
Параметры Parquet
Отображается, когда Parquet выбран для формата данных.
При выборе Parquet откроется вкладка "Параметры Parquet", чтобы выбрать схему Parquet.
Параметр | значение | Описание |
---|---|---|
Автоматическая схема | Вкл. или выкл. | Выберите "Вкл." , чтобы создать схему Parquet на основе событий каждого файла Parquet, который записывает Cribl Stream. |
Схема Parquet | раскрывающийся список | Отображается, если для автоматической схемы задано значение Off , чтобы можно было выбрать схему parquet. |
Версия Parquet | 1.0, 2.4, 2.6 (по умолчанию) | Версия определяет поддерживаемые типы данных и способ их представления. |
Версия страницы данных | V1, V2 (по умолчанию) | Формат сериализации страницы данных. Если средство чтения Parquet не поддерживает Parquet V2, используйте версию 1. |
Ограничение строк группы | 1000 (по умолчанию) | Максимальное количество строк, которые могут содержать каждая группа. |
Размер страницы | 1 МБ (по умолчанию) | Размер целевой памяти для сегментов страниц. Более низкие значения могут повысить скорость чтения, а более высокие значения могут улучшить сжатие. |
Журнал недопустимых строк | Да или Нет | Если выбран параметр "Да ", а уровень журнала имеет debug значение , выводит до 20 уникальных строк, пропущенных из-за несоответствия формата данных. |
Запись статистики | Вкл . (по умолчанию) или "Выкл. | Выберите "Вкл." , если у вас настроены средства просмотра статистики Parquet. |
Запись индексов страниц | Вкл . (по умолчанию) или "Выкл. | Выберите "Вкл.", если средство чтения Parquet использует статистику индексов страниц Parquet для включения пропуска страницы. |
Запись контрольной суммы страницы | Вкл. или выкл. | Если вы используете средства Parquet для проверки целостности данных с помощью контрольных сумм страниц Parquet. |
Метаданные (необязательно)* | Свойства метаданных целевого файла, которые можно включить в качестве пар "ключ-значение". |
Повторы
Отображается, когда для режима приема задан режим потоковой передачи.
Параметр | значение | Описание |
---|---|---|
Заголовок Honor Retry-After | Да или Нет | Следует ли учитывать Retry-After заголовок. При включении полученный Retry-After заголовок имеет приоритет перед другими настроенными параметрами в разделе повторных попыток, если заголовок указывает задержку в 180 секунд или меньше. Retry-After В противном случае заголовки игнорируются. |
Параметры неудачных HTTP-запросов | Коды состояния HTTP | Список кодов состояния HTTP для автоматической повторения при неудачном подключении. Cribl Stream автоматически повторяет 429 неудачных запросов. |
Повторные http-запросы времени ожидания | Вкл. или выкл. | При установке становятся доступны дополнительные параметры поведения повторных попыток. |
Интервал перед обратным выходом (мс) | 1000 мс (по умолчанию) | Время ожидания перед повтором. |
Умножение backoff | 2 с (по умолчанию) | Используется в качестве основы для экспоненциального алгоритма обратной передачи для определения интервала между повторными попытками. |
Ограничение обратной передачи (мс) | 10 000 мс (по умолчанию) | Максимальный интервал обратной передачи для конечной попытки потоковой передачи. Возможные значения варьируются от 10 000 миллисекунд (10 секунд) до 180 000 миллисекунд (3 минуты). |
После завершения нажмите кнопку "Далее".
Расширенные настройки
Выберите дополнительные параметры на боковой панели. Ниже описаны дополнительные параметры при выборе пакетной обработки .
Параметр | значение | Описание |
---|---|---|
Немедленное очистка | Да или нет (по умолчанию).) | Установите значение "Да" , чтобы переопределить агрегирование данных в Kusto. Дополнительные сведения см. в рекомендациях по библиотеке Приема Kusto. |
Сохранение большого двоичного объекта при успешном выполнении | Да или нет (по умолчанию).) | Установите значение "Да", чтобы сохранить большой двоичный объект данных при завершении приема. |
Теги экстентов | <\ExtentTag, ET2,...> | Задайте теги, если требуется, в секционированные экстенты целевой таблицы. |
Принудительное применение уникальности с помощью значений тегов | Выберите " Добавить значение ", чтобы указать ingest-by список значений, используемый для фильтрации входящих экстентов и отмены экстентов, соответствующих указанному значению. Дополнительные сведения см. в разделе "Экстенты" (сегменты данных) |
|
Уровень отчета | DoNotReport, FailuresOnly (по умолчанию) и FailuresAndSuccesses. | Уровень отчетов о состоянии приема. |
Метод report | Очередь (по умолчанию), таблица и очередьAndTable (рекомендуется.) | Целевой объект для создания отчетов о состоянии приема. |
Дополнительные поля | Добавьте дополнительные свойства конфигурации, если требуется, чтобы отправить в службу приема. | |
Промежуточное расположение | /tmp (по умолчанию) |
Расположение локальной файловой системы, в котором следует буферировать файлы перед сжатием и перемещением их в конечное место назначения. Cribl рекомендует стабильное и высокопроизводительное расположение. |
Выражение суффикса имени файла | .${C.env["CRIBL_WORKER_ID"]}.${__format}${__compression === "gzip" ? ".gz" : ""} (по умолчанию) |
Выражение JavaScript, заключенное в кавычки или обратные выражения, используемые в качестве суффикса имени выходного файла. format может быть JSON или необработанным, и __compression может быть ни один или gzip. Случайная последовательность из шести символов добавляется в конец имен файлов, чтобы предотвратить их перезапись. |
Максимальный размер файла (МБ) | 32 МБ (по умолчанию) | Максимальный размер несжатого выходного файла, который файлы могут достичь, прежде чем они закрываются и перемещаются в контейнер хранилища. |
Максимальное время открытия файла (с) | 300 секунд (по умолчанию) | Максимальное время в секундах для записи в файл перед закрытием и перемещением в контейнер хранилища. |
Максимальное время простоя файла (с) | 30 секунд (по умолчанию) | Максимальное время в секундах, чтобы сохранить неактивные файлы открытыми, прежде чем они закрываются и перемещаются в контейнер хранилища. |
Максимальное количество открытых файлов | 100 (по умолчанию) | Максимальное количество файлов, которые будут открываться одновременно, прежде чем старые открытые файлы будут закрыты и перемещены в контейнер хранилища. |
Максимальное число параллельных частей файлов | 1 (по умолчанию) | Максимальное количество частей файлов для отправки одновременно. Значение по умолчанию — 1, а наибольшее — 10. Установка значения в одну из них позволяет отправлять одну часть одновременно, последовательно. |
Удаление пустых промежуточных диров | Да (по умолчанию) или Нет | При переключении в Cribl Stream удаляет пустые промежуточные каталоги после перемещения файлов. Это предотвращает распространение потерянных пустых каталогов. При включении предоставляет период промежуточной очистки. |
Период промежуточной очистки | 300 (по умолчанию) | Время в секундах, пока пустые каталоги не будут удалены при включении промежуточных диров . Отображается, когда параметр Remove empty staging dirs имеет значение "Да". Минимальное значение составляет 10 секунд, а максимальное — 86 400 секунд (каждые 24 часа). |
Среда | Если конфигурация пуста (по умолчанию) включена везде. Если вы используете GitOps, можно указать ветвь Git, в которой требуется включить конфигурацию. |
По завершении нажмите кнопку "Сохранить".
Настройка подключений
В открывающемся окне конфигурации подключения выберите подключение Passthru и сохраните его. Соединитель начинает очередь данных.
Подтвердите получение данных
После поступления данных в таблицу подтвердите передачу данных, проверив количество строк:
<Tablename> | count
Подтвердите прием в очереди за последние пять минут:
.show commands-and-queries | where Database == "" and CommandType == "DataIngestPull" | where LastUpdatedOn >= ago(5m)
Убедитесь, что в процессе приема нет сбоев:
- Для пакетной обработки:
.show ingestion failures
- Для потоковой передачи:
.show streamingingestion failures | order by LastFailureOn desc
Проверьте данные в таблице:
<TableName> | take 10
Примеры запросов и рекомендации см. в документации по написанию запросов в KQL и язык запросов Kusto.