Поделиться через


Прием данных из потока 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.

  1. Войдите в подписку Azure с помощью Azure CLI. Затем авторизуйтесь в браузере.

    az login
    
  2. Выберите подписку для размещения субъекта. Этот шаг необходим, если у вас несколько подписок.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Создайте субъект-службу. В этом примере принципал службы называется my-service-principal.

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. Из возвращаемых данных JSON скопируйте appIdpasswordданные и 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 и субъект-службу.

Создание целевой таблицы

Создайте целевую таблицу для входящих данных и сопоставление приема для сопоставления столбцов данных приема с столбцами в целевой таблице.

  1. Выполните следующую команду создания таблицы в редакторе запросов, заменив заполнитель TableName именем целевой таблицы:

    .create table <TableName> (_raw: string, _time: long, cribl_pipe: dynamic)
    
  2. Выполните следующую команду создания сопоставления приема, заменив заполнители 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}]'
    
  3. Предоставьте субъекту-службе из создания разрешения роли субъекта-службы Microsoft Entra для работы с базой данных. Дополнительные сведения см. в примерах. Замените заполнитель DatabaseName именем целевой базы данных и ApplicationID значением AppId , сохраненным при создании субъекта-службы Microsoft Entra.

    .add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'App Registration'
    

Создание назначения Cribl Stream

В следующем разделе описывается создание назначения Cribl Stream, которое записывает данные в таблицу в Kusto. Для каждой таблицы требуется отдельный конечный соединитель Cribl Stream.

Выбор места назначения

Чтобы подключить Cribl Stream к таблице, выполните следующее:

  1. В верхней области навигации в Cribl выберите "Управление ", а затем выберите рабочую группу.

  2. Выберите "Быстрое подключение маршрутизации>" (Stream)>Добавить назначение.

  3. В окне "Настройка нового назначения 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_outputcribl_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 и сохраните его. Соединитель начинает очередь данных.

Подтвердите получение данных

  1. После поступления данных в таблицу подтвердите передачу данных, проверив количество строк:

    <Tablename> 
    | count
    
  2. Подтвердите прием в очереди за последние пять минут:

    .show commands-and-queries 
    | where Database == "" and CommandType == "DataIngestPull" 
    | where LastUpdatedOn >= ago(5m)
    
  3. Убедитесь, что в процессе приема нет сбоев:

    • Для пакетной обработки:
    .show ingestion failures
    
    • Для потоковой передачи:
    .show streamingingestion failures 
    | order by LastFailureOn desc
    
  4. Проверьте данные в таблице:

    <TableName>
    | take 10
    

Примеры запросов и рекомендации см. в документации по написанию запросов в KQL и язык запросов Kusto.