Incorporar dados de log com Fluentd no Azure Data Explorer

A ingestão de logs é o processo de recolher, transformar e preparar dados de log de aplicações, servidores, contentores e serviços cloud para que possa armazená-los, analisá-los e monitorizá-los. Os registos recolhem informações como erros, avisos, padrões de utilização e desempenho do sistema. A ingestão fiável de registos garante que os dados operacionais e de segurança estejam disponíveis quase em tempo real para resolução de problemas e análises. Este artigo explica como enviar registos do Fluentd para o Azure Data Explorer (Kusto), incluindo os passos de instalação, configuração e validação.

Visão geral

O que é o Fluentd?

O Fluentd é um coletor de dados open-source que pode ser usado para unificar a recolha de registos e o encaminhamento entre múltiplos sistemas. Suporta mais de 1.000 plugins e oferece opções flexíveis para filtrar, armazenar e transformar dados. Pode usar o Fluentd em ambientes cloud-nativos e empresariais para agregação e encaminhamento centralizado de logs.

O que é o Azure Data Explorer?

O Azure Data Explorer (ADX) é um serviço de análise rápido e totalmente gerido, otimizado para análise em tempo real de grandes volumes de dados estruturados, semi-estruturados e não estruturados. O ADX utiliza a Linguagem de Consulta Kusto (KQL) e é amplamente utilizado para telemetria, monitorização, diagnóstico e exploração interativa de dados.

Pré-requisitos

  • Ruby tem que estar instalado no nó onde os registos têm de ser processados. Para instalar dependências fluentd usando o gestor de pacotes gem, consulte as instruções de instalação do Ruby
  • Acesso a um cluster e base de dados do Azure Data Explorer.
  • Aplicação Azure Active Directory com permissões para ingerir dados.

Como começar com o Fluentd e o Azure Data Explorer

  1. Instale o Fluentd usando RubyGems:

    gem install fluentd
    
  2. Instale o plugin Fluentd Kusto:

    gem install fluent-plugin-kusto
    
  3. Configure o Fluentd criando um ficheiro de configuração (por exemplo, fluent.conf) com o seguinte conteúdo. Substitua os marcadores de posição pelos valores do Azure e do plugin:

    <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 mais detalhes de configuração e autenticação, consulte a documentação do plugin Fluentd Kusto

  1. Prepare o Azure Data Explorer para ingestão:

    1. Crie um cluster ADX e uma base de dados. Veja Criar um cluster e base de dados do Azure Data Explorer.

    2. Crie uma aplicação Azure Active Directory e conceda permissões para ingerir dados na base de dados ADX. Veja Criar um registo de aplicação Microsoft Entra no Azure Data Explorer.

      Observação

      Guarde a chave da aplicação e o ID da aplicação para uso futuro.

    3. Crie uma tabela para a ingestão de logs. Por exemplo:

    .create table LogTable (
      tag:string,
      timestamp:datetime,
      record:dynamic
    )
    
  2. Execute o Fluentd com o ficheiro de configuração:

    fluentd -c fluent.conf
    
  3. Validar a ingestão de logs através de:

    1. Verificar o ficheiro de registo do Fluentd, confirmar que não há erros e que os pedidos de ingestão foram enviados com sucesso.

      Captura de ecrã do ficheiro de registo Fluentd a mostrar pedidos de ingestão bem-sucedidos

    2. Consultar a tabela ADX para garantir que os registos são ingeridos corretamente:

    LogTable
    | take 10
    
  4. Mapeamento de ingestão: Use os mapeamentos de ingestão pré-definidos no Kusto para transformar os dados no formato padrão de 3 colunas no esquema desejado. Para mais informações, consulte Suporte a mapeamentos de ingestão.