Compartilhar via


Ingerir dados com o Fluent Bit no Azure Data Explorer

O Fluent Bit é um agente de código aberto que coleta logs, métricas e rastreamentos de várias fontes. Ele permite filtrar, modificar e agregar dados de eventos antes de enviá-los ao armazenamento. O Azure Data Explorer é um serviço de exploração de dados rápido e altamente escalonável para dados telemétricos e de log. Este artigo orienta você pelo processo de uso do Fluent Bit para enviar dados ao Azure Data Explorer.

Neste artigo, você aprenderá a:

Para obter uma lista completa de conectores de dados, consulte Visão geral dos conectores de dados.

Pré-requisitos

Você pode usar qualquer uma das ferramentas de consulta disponíveis para seu ambiente de consulta.

Criar uma tabela para armazenar seus logs

O Fluent Bit encaminha logs no formato JSON com três propriedades: (dynamic), (string) e timestamp (datetime).taglog

Você pode criar uma tabela com colunas para cada uma dessas propriedades. Como alternativa, se você tiver logs estruturados, poderá criar uma tabela com propriedades de log mapeadas para colunas personalizadas. Para saber mais, selecione a guia relevante.

Para criar uma tabela para logs de entrada do Fluent Bit:

  1. Navegue até seu ambiente de consulta.

  2. Selecione o banco de dados onde você deseja criar a tabela.

  3. Execute o seguinte .create table comando:

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

    As propriedades JSON de entrada são mapeadas automaticamente para a coluna correta.

Registrar um aplicativo do Microsoft Entra com permissões para ingerir dados

A entidade de serviço Microsoft Entra pode ser criada por meio do portal do Azure ou programaticamente, como no exemplo a seguir.

Essa entidade de serviço é a identidade usada pelo conector para gravar dados em sua tabela no Kusto. Posteriormente, você vai conceder permissões para essa entidade de serviço acessar recursos do Kusto.

  1. Inicie sessão na sua assinatura do Azure com a CLI do Azure. Em seguida, autentique no navegador.

    az login
    
  2. Escolha a assinatura para hospedar a entidade de segurança. Essa etapa é necessária quando você tem várias assinaturas.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Crie a entidade de serviço. Neste exemplo, a entidade de serviço é chamada my-service-principal.

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. A partir dos dados JSON retornados, copie o appId, password e tenant para uso futuro.

    {
      "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"
    }
    

Você criou o aplicativo do Microsoft Entra e a entidade de serviço.

Conceder permissões à entidade de serviço

Execute o seguinte comando, substituindo <MyDatabase> pelo nome do banco de dados:

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

Esse comando concede ao aplicativo permissões para ingerir dados em sua tabela. Para obter mais informações, consulte Controle de acesso baseado em função.

Configurar o Fluent Bit para enviar logs para sua tabela

Para configurar o Fluent Bit para enviar logs para sua tabela do Azure Data Explorer, crie um arquivo de configuração de modo clássico ou modo YAML com as seguintes propriedades de saída:

Campo Descrição
Nome azure_kusto
Correspondência Um padrão para corresponder às marcas dos registros de entrada. Ele diferencia maiúsculas de minúsculas e suporta o caractere estrela (*) como curinga.
Tenant_Id ID do diretório (locatário) de Registrar um aplicativo Microsoft Entra com permissões para ingerir dados.
Client_Id ID do aplicativo (cliente) de Registrar um aplicativo do Microsoft Entra com permissões para ingerir dados.
Client_Secret O valor da chave secreta do cliente Registre um aplicativo do Microsoft Entra com permissões para ingerir dados.
Ingestion_Endpoint Use o URI de Ingestão de Dados encontrado no portal do Azure em sua visão geral do cluster.
Database_Name O nome do banco de dados que contém a tabela de logs.
Table_Name O nome da tabela em Criar uma tabela para armazenar seus logs.
Ingestion_Mapping_Reference O nome do mapeamento de ingestão de Criar uma tabela. Se você não criou um mapeamento de ingestão, remova a propriedade do arquivo de configuração.

Para ver um arquivo de configuração de exemplo, selecione a guia relevante:

[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

Verifique se os dados chegaram à sua tabela

Quando a configuração estiver concluída, os logs devem chegar à sua tabela.

  1. Para verificar se os logs são ingeridos, execute a seguinte consulta:

    FluentBitLogs
    | count
    
  2. Para exibir um exemplo de dados de log, execute a seguinte consulta:

    FluentBitLogs
    | take 100