Compartir a través de


Ingesta de datos con Fluent Bit en Azure Data Explorer

Fluent Bit es un agente de código abierto que recopila registros, métricas y seguimientos de varios orígenes. Permite filtrar, modificar y agregar datos de eventos antes de enviarlos al almacenamiento. El Explorador de datos de Azure es un servicio de exploración de datos altamente escalable y rápido para datos de telemetría y registro. Este artículo le guía por el proceso de uso de Fluent Bit para enviar datos a Azure Data Explorer.

En este artículo, aprenderá a:

Para obtener una lista completa de los conectores de datos, consulte Introducción a los conectores de datos.

Requisitos previos

Puede usar cualquiera de las herramientas de consulta disponibles para el entorno de consulta.

Creación de una tabla para almacenar los registros

Fluent Bit reenvía los registros en formato JSON con tres propiedades: (dinámica), (cadena) y timestamp (datetime).taglog

Puede crear una tabla con columnas para cada una de estas propiedades. Como alternativa, si tiene registros estructurados, puede crear una tabla con propiedades de registro asignadas a columnas personalizadas. Para más información, seleccione la pestaña correspondiente.

Para crear una tabla para los registros entrantes de Fluent Bit:

  1. Vaya al entorno de consulta.

  2. Seleccione la base de datos donde desea crear la tabla.

  3. Ejecute el siguiente .create table comando:

    .create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)
    

    Las propiedades JSON entrantes se asignan automáticamente a la columna correcta.

Registro de una aplicación de Microsoft Entra con permisos para ingerir datos

La entidad de servicio de Microsoft Entra se puede crear mediante Azure Portal o mediante programación, como en el ejemplo siguiente.

Esta entidad de servicio es la identidad que usa el conector para escribir datos de la tabla en Kusto. Más adelante concederemos permisos para que esta entidad de servicio acceda a los recursos de Kusto.

  1. Inicie sesión en su suscripción de Azure a través de la CLI de Azure. A continuación, realice la autenticación en el explorador.

    az login
    
  2. Elija la suscripción para hospedar la entidad de servicio. Este paso es necesario si tiene varias suscripciones.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Cree la entidad de servicio. En este ejemplo, la entidad de servicio se llama my-service-principal.

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. En los datos JSON devueltos, copie los valores appId, password y tenant para usarlos posteriormente.

    {
      "appId": "1234abcd-e5f6-g7h8-i9j0-1234kl5678mn",
      "displayName": "my-service-principal",
      "name": "my-service-principal",
      "password": "1234abcd-e5f6-g7h8-i9j0-1234kl5678mn",
      "tenant": "1234abcd-e5f6-g7h8-i9j0-1234kl5678mn"
    }
    

Ha creado una aplicación de Microsoft Entra y una entidad de servicio.

Concesión de permisos a la entidad de servicio

Ejecute el comando siguiente y reemplace <MyDatabase> por el nombre de la base de datos:

.add database MyDatabase ingestors ('aadapp=<Application (client) ID>;<Directory (tenant) ID>')

Este comando concede a la aplicación permisos para ingerir datos en la tabla. Para obtener más información, consulte Control de acceso basado en rol.

Configuración de Fluent Bit para enviar registros a la tabla

Para configurar Fluent Bit para enviar registros a la tabla de Azure Data Explorer, cree un archivo de configuración de modo clásico o modo YAML con las siguientes propiedades de salida:

Campo Descripción
Nombre azure_kusto
Coincidencia Patrón que debe coincidir con las etiquetas de los registros entrantes. Distingue mayúsculas de minúsculas y admite el carácter de estrella (*) como carácter comodín.
Tenant_Id Id. de directorio (inquilino) de Registrar una aplicación de Microsoft Entra con permisos para ingerir datos.
Client_Id Id. de aplicación (cliente) de Registrar una aplicación de Microsoft Entra con permisos para ingerir datos.
Client_Secret Valor de clave secreta de cliente Registrar una aplicación de Microsoft Entra con permisos para ingerir datos.
Ingestion_Endpoint Use el URI de ingesta de datos que se encuentra en Azure Portal en la información general del clúster.
Database_Name Nombre de la base de datos que contiene la tabla de registros.
Table_Name Nombre de la tabla de Crear una tabla para almacenar los registros.
Ingestion_Mapping_Reference Nombre de la asignación de ingesta de Crear una tabla. Si no creó una asignación de ingesta, quite la propiedad del archivo de configuración.

Para ver un archivo de configuración de ejemplo, seleccione la pestaña correspondiente:

[SERVICE]
    Daemon Off
    Flush 1
    Log_Level trace
    HTTP_Server On
    HTTP_Listen 0.0.0.0
    HTTP_Port 2020
    Health_Check On

[INPUT]
    Name tail
    Path /var/log/containers/*.log
    Tag kube.*
    Mem_Buf_Limit 1MB
    Skip_Long_Lines On
    Refresh_Interval 10

[OUTPUT]
    Name azure_kusto
    Match *
    Tenant_Id azure-tenant-id
    Client_Id azure-client-id
    Client_Secret azure-client-secret
    Ingestion_Endpoint azure-data-explorer-ingestion-endpoint
    Database_Name azure-data-explorer-database-name
    Table_Name azure-data-explorer-table-name

Comprobación de que los datos han llegado a la tabla

Una vez completada la configuración, los registros deben llegar a la tabla.

  1. Para comprobar que los registros se ingieren, ejecute la consulta siguiente:

    FluentBitLogs
    | count
    
  2. Para ver un ejemplo de datos de registro, ejecute la consulta siguiente:

    FluentBitLogs
    | take 100