Obtención de datos con Fluent Bit
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 la base de datos KQL.
En este artículo, aprenderá a:
Requisitos previos
- Fluent Bit.
- Un área de trabajo con una capacidad habilitada para Microsoft Fabric
- Una base de datos KQL con permisos de ingesta
- Un conjunto de consultas KQL, al que se hará referencia más adelante como entorno de consulta
Creación de una tabla para almacenar los registros
Fluent Bit reenvía los registros en formato JSON con tres propiedades: log
(dynamic), tag
(string) y timestamp
(datetime).
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:
Vaya al entorno de consulta.
Seleccione la base de datos donde desea crear la tabla.
Ejecute el comando
.create table
siguiente:.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 utilizada por el conector para escribir datos en la tabla de Kusto. Más adelante concederemos permisos para que esta entidad de servicio acceda a los recursos de Kusto.
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
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
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}
En los datos JSON devueltos, copie los valores
appId
,password
ytenant
para usarlos posteriormente.{ "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" }
Ha creado una aplicación de Microsoft Entra y una entidad de servicio.
Conceder 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 más información, vea Control de acceso basado en roles.
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 | Un 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 Registro de una aplicación de Microsoft Entra con permisos para ingerir datos. |
Client_id | Id. de aplicación (cliente) de Registro de una aplicación de Microsoft Entra con permisos para ingerir datos. |
Client_secret | Valor de clave secreta de cliente de Registro de una aplicación de Microsoft Entra con permisos para ingerir datos. |
Ingestion_Endpoint | Use el URI de ingesta que se encuentra en la página de detalles de la base de datos KQL. Para obtener más información, consulte Copia de identificador URI. |
Database_name | El nombre de la base de datos que contendrá la tabla de registro. |
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.
Para comprobar que los registros se ingieren, ejecute la siguiente consulta:
FluentBitLogs | count
Para ver un ejemplo de datos de registro, ejecute la consulta siguiente:
FluentBitLogs | take 100