Condividi tramite


Inserire dati con Fluent Bit in Azure Esplora dati

Fluent Bit è un agente open-source che raccoglie log, metriche e tracce da varie origini. Consente di filtrare, modificare e aggregare i dati degli eventi prima di inviarli all'archiviazione. Questo articolo illustra il processo di utilizzo di Fluent Bit per inviare dati al database KQL.

Questo articolo illustra come inserire dati con Fluent Bit.

Per un elenco completo dei connettori dati, vedere Panoramica dei connettori dati.

Prerequisiti

  • Fluent Bit.
  • Un cluster e un database di Esplora dati di Azure. Creare un cluster e un database.
  • Ambiente di interrogazione. Per ulteriori informazioni, consultare la panoramica delle integrazioni di query .
  • URI del cluster Kusto per il valore Ingestion_endpoint nel formato https://ingest-<cluster>.<regione>.kusto.windows.net. Per ulteriori informazioni, consultare Aggiungere una connessione cluster.

Creare un'entità servizio Microsoft Entra

L'entità servizio principale di Microsoft Entra può essere creata attraverso il portale di Azure o programmaticamente, come nell'esempio seguente.

Questo principale del servizio è l'identità usata dal connettore per scrivere dati nella tua tabella in Kusto. Si concedono le autorizzazioni a questo principale del servizio per accedere alle risorse Kusto.

  1. Accedere alla sottoscrizione di Azure usando l'interfaccia della riga di comando di Azure. Eseguire quindi l'autenticazione nel browser.

    az login
    
  2. Scegliere la sottoscrizione per ospitare l'entità di sicurezza. Questo passaggio è necessario quando si hanno più sottoscrizioni.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Creare l'entità servizio. In questo esempio l'entità servizio viene chiamata my-service-principal.

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. Dai dati JSON restituiti copiare appId, password e tenant per un uso futuro.

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

L'applicazione Microsoft Entra e l'entità servizio sono state create.

Creare una tabella di destinazione

Fluent Bit inoltra i log in formato JSON con tre proprietà: log (dynamic), tag (string), e timestamp (datetime).

È possibile creare una tabella con colonne per ognuna di queste proprietà. In alternativa, se sono presenti log strutturati, è possibile creare una tabella con proprietà di log mappate per personalizzare le colonne. Per altre informazioni, selezionare la scheda pertinente.

Per creare una tabella per i log in ingresso da Fluent Bit:

  1. Passare all'ambiente di query.

  2. Selezionare il database in cui si vuole creare la tabella.

  3. Eseguire il .create table command seguente:

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

    Le proprietà JSON in ingresso vengono mappate automaticamente dentro la colonna corretta.

Concedere autorizzazioni all'entità servizio

Concedi all'entità del servizio da Creare un'entità servizio Microsoft Entrale autorizzazioni del ruolo database ingestor per lavorare con il database. Per ulteriori informazioni, vedere Esempi. Sostituire il segnaposto DatabaseName con il nome del database di destinazione e ApplicationID con il valore AppId salvato durante la creazione di un principale del servizio Microsoft Entra.

.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>;<TenantID>')

Configurare Fluent Bit per inviare i log alla tua tabella

Per configurare Fluent Bit per inviare i log alla tabella in Kusto, creare un modalità classica o modalità YAML file di configurazione con le proprietà di output seguenti:

Campo Descrizione Obbligatorio Predefinito
Name Nome della pipeline. azure_kusto
tenant_id ID tenant di Creare un'entità servizio Microsoft Entra. ✔️
client_id ID applicazione da Creare un'entità servizio Microsoft Entra. ✔️
segreto_del_client Valore della chiave segreta client (password) da Crea un'entità servizio Microsoft Entra. ✔️
endpoint di ingestione Immettere il valore come descritto per Ingestion_Endpoint. ✔️
nome_del_database Nome del database contenente la tabella dei log. ✔️
table_name Nome della tabella da Creare una tabella di destinazione. ✔️
riferimento_mappatura_ingestione Nome del mapping di inserimento da Creare una tabella di destinazione. Se non è stato creato un mapping di inserimento, rimuovere la proprietà dal file di configurazione.
log_key Nome chiave del contenuto del log. Ad esempio, log. log
tag_key Nome chiave del tag. Ignorato se include_tag_key è falso. tag
include_time_key Un timestamp viene aggiunto all'output, se abilitato. Utilizza la proprietà time_key. true
chiave_temporale Nome della chiave per il timestamp nei record di log. "Ignorato se include_time_key è falso." timestamp
timeout di connessione al punto di ingresso per l'ingestione Timeout della connessione di vari endpoint Kusto in secondi. 60s
compressione_abilitata Invia il payload HTTP compresso con gzip a Kusto, se l'opzione è abilitata. true
Intervallo_Aggiornamento_Risorse_Inserimento Intervallo di aggiornamento delle risorse di ingestione dell'endpoint Kusto, espresso in secondi. 3600
lavoratori Numero di ruoli di lavoro per eseguire operazioni di scaricamento per questo output. 0

Per visualizzare un file di configurazione di esempio, selezionare la scheda pertinente:

[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]
    match *
    name azure_kusto
    tenant_id <TenantId>
    client_id <ClientId>
    client_secret <AppSecret>
    ingestion_endpoint <IngestionEndpoint>
    database_name <DatabaseName>
    table_name <TableName>
    ingestion_mapping_reference <MappingName>
    ingestion_endpoint_connect_timeout <IngestionEndpointConnectTimeout>
    compression_enabled <CompressionEnabled>
    ingestion_resources_refresh_interval <IngestionResourcesRefreshInterval>

Confermare l'inserimento dati

  1. Dopo l'arrivo dei dati nella tabella, verificare il trasferimento dei dati controllando il conteggio delle righe:

    FluentBitLogs
    | count
    
  2. Per visualizzare un esempio di dati di log, eseguire la query seguente:

    FluentBitLogs
    | take 100