Obtención de datos de Fluentd

La ingesta de registros es el proceso de recopilación, transformación y preparación de datos de registro de aplicaciones, servidores, contenedores y servicios en la nube para poder almacenar, analizar y supervisarlos. Los registros capturan información como errores, advertencias, patrones de uso y rendimiento del sistema. La ingesta confiable de registros garantiza que los datos operativos y de seguridad estén disponibles casi en tiempo real para la resolución de problemas y el análisis de datos.

En este artículo se explica cómo enviar registros de Fluentd a una tabla de Eventhouse, incluidos los pasos de instalación, configuración y validación.

Información general

¿Qué es Fluentd?

Fluentd es un recopilador de datos de código abierto que puede usar para unificar la recopilación de registros y el enrutamiento entre varios sistemas. Admite más de 1000 complementos y proporciona opciones flexibles para filtrar, almacenar en búfer y transformar datos. Puede usar Fluentd en entornos empresariales y nativos de la nube para la agregación y reenvío de registros centralizados.

Prerrequisitos

  • Ruby instalado en el nodo donde se deben ingerir los registros. Para instalar las dependencias de fluentd con el gestor de paquetes gem, consulte las instrucciones de instalación de Ruby.
  • Un área de trabajo con una capacidad habilitada para Microsoft Fabric.
  • Una base de datos KQL con permisos de ingesta de datos.

Cómo empezar a trabajar con Fluentd y una tabla de Eventhouse

  1. Instale Fluentd mediante RubyGems:

    gem install fluentd
    
  2. Instale el complemento Fluentd Kusto:

    gem install fluent-plugin-kusto
    
  3. Configure Fluentd mediante la creación de un archivo de configuración (por ejemplo, fluent.conf) con el siguiente contenido. Reemplace los marcadores de posición por tus detalles:

    <match <tag-from-source-logs>>
      @type kusto
      endpoint https://<your-cluster>.<region>.kusto.windows.net
      database_name <your-database>
      table_name <your-table>
      logger_path <your-fluentd-log-file-path>
    
      # Authentication options
      auth_type <your-authentication-type>
    
      # AAD authentication
      tenant_id <your-tenant-id>
      client_id <your-client-id>
      client_secret <your-client-secret>
    
      # Managed identity authentication (optional)
      managed_identity_client_id <your-managed-identity-client-id>
    
      # Workload identity authentication (optional)
      workload_identity_tenant_id <your-workload-identity-tenant-id>
      workload_identity_client_id <your-workload-identity-client-id>
    
      # Non-buffered mode
      buffered false
      delayed false
    
      # Buffered mode
      # buffered true
      # delayed <true/false>
    
      <buffer>
        @type memory
        timekey 1m
        flush_interval 10s
      </buffer>
    </match>
    

Para obtener más detalles de configuración y autenticación, consulte la documentación del complemento Fluentd Kusto.

  1. Preparar una tabla de Eventhouse para la ingestión:

    1. Examine el entorno de consulta.
    2. Seleccione la base de datos donde desea crear la tabla de destino.
    3. Cree una tabla para la incorporación de registros. Por ejemplo:
    .create table LogTable (
      tag:string,
      timestamp:datetime,
      record:dynamic
    )
    
  2. Ejecute Fluentd con el archivo de configuración:

    fluentd -c fluent.conf
    
  3. Valide la ingesta de registros mediante:

    1. Comprobar el archivo de registro fluentd, confirmar que no hay errores y que las solicitudes de ingesta se envían correctamente.

      Captura de pantalla del archivo de registro de Fluentd que muestra solicitudes de ingesta correctas

    2. Consulta de la tabla para asegurarse de que los registros se ingieren correctamente:

    LogTable
    | take 10
    
  4. Asignación de ingesta: use las asignaciones de ingesta predefinidas en Kusto para transformar los datos con el formato predeterminado de 3 columnas en el esquema deseado. Para obtener más información, consulte Soporte para mapeos de ingesta.