Del via


Hent data med Fluent Bit

Fluent Bit er en åpen kildekode-agent som samler inn logger, måledata og sporinger fra ulike kilder. Den lar deg filtrere, endre og aggregere hendelsesdata før du sender dem til lagring. Denne artikkelen veileder deg gjennom prosessen med å bruke Fluent Bit til å sende data til KQL-databasen.

Denne artikkelen viser hvordan du inntar data med Fluent Bit.

Hvis du vil ha en fullstendig liste over datakoblinger, kan du se Oversikt over datakoblinger.

Forutsetning

Opprette en Microsoft Entra-tjenestekontohaver

Microsoft Entra-tjenestekontohaveren kan opprettes gjennom Azure-portalen eller programmatisk, som i eksemplet nedenfor.

Denne tjenestekontohaveren er identiteten som brukes av koblingen til å skrive data til tabellen i Kusto. Du gir denne tjenestekontohaveren tillatelse til å få tilgang til Kusto-ressurser.

  1. Logg på Azure-abonnementet via Azure CLI. Deretter godkjenner du i nettleseren.

    az login
    
  2. Velg abonnementet som vert for hovedstolen. Dette trinnet er nødvendig når du har flere abonnementer.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Opprett tjenestekontohaveren. I dette eksemplet kalles my-service-principaltjenestekontohaveren .

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. Kopier , appIdog password for fremtidig bruk, tenantfra de returnerte JSON-dataene.

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

Du har opprettet Microsoft Entra-programmet og tjenestekontohaveren.

Opprette en måltabell

Fluent Bit videresender logger i JSON-format med tre egenskaper: (dynamisk), (streng) og log (datetime).tagtimestamp

Du kan opprette en tabell med kolonner for hver av disse egenskapene. Hvis du har strukturerte logger, kan du også opprette en tabell med loggegenskaper tilordnet til egendefinerte kolonner. Hvis du vil ha mer informasjon, velger du den aktuelle fanen.

Slik oppretter du en tabell for innkommende logger fra Fluent Bit:

  1. Bla til spørringsmiljøet.

  2. Velg databasen der du vil opprette tabellen.

  3. Kjør følgende .create table kommando:

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

    De innkommende JSON-egenskapene tilordnes automatisk til riktig kolonne.

Gi tillatelser til tjenestekontohaveren

Gi tjenestekontohaveren fra Opprett en Microsoft Entra-tjenestekontohaverdatabaselager rolletillatelser for å arbeide med databasen. Hvis du vil ha mer informasjon, kan du se Eksempler. Erstatt plassholderen DatabaseName- med navnet på måldatabasen og ApplicationID- med den AppId verdien du lagret da du opprettet en Microsoft Entra-tjenestekontohaver.

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

Konfigurer Fluent Bit til å sende logger til tabellen

Hvis du vil konfigurere Fluent Bit til å sende logger til tabellen i Kusto, oppretter du en klassisk modus eller YAML-modus konfigurasjonsfil med følgende utdataegenskaper:

Felt Beskrivelse Påkrevd Standard
Navn Navnet på datasamlebåndet. azure_kusto
tenant_id Leier-ID-en fra Opprett en Microsoft Entra-tjenestekontohaver. ✔️
client_id Program-ID-en fra Opprett en Microsoft Entra-tjenestekontohaver. ✔️
client_secret Klienthemmelighetsnøkkelverdien (passord) fra Opprett en Microsoft Entra-tjenestekontohaver. ✔️
ingestion_endpoint Skriv inn verdien som beskrevet for Ingestion_Endpoint. ✔️
database_name Navnet på databasen som inneholder loggtabellen. ✔️
table_name Navnet på tabellen fra Opprette en måltabell. ✔️
ingestion_mapping_reference Navnet på inntakstilordningen fra Opprett en måltabell. Hvis du ikke opprettet en inntakstilordning, fjerner du egenskapen fra konfigurasjonsfilen.
log_key Nøkkelnavn for logginnholdet. For eksempel log. log
tag_key Nøkkelnavnet for koden. Ignorert hvis include_tag_key er usann. tag
include_time_key Et tidsstempel legges til i utdata, hvis det er aktivert. Bruker egenskapen time_key. true
time_key Nøkkelnavnet for tidsstempelet i loggpostene. Ignorert hvis include_time_key usann. timestamp
ingestion_endpoint_connect_timeout Tidsavbruddet for tilkobling for ulike Kusto-endepunkter i sekunder. 60s
compression_enabled Sender komprimert HTTP-nyttelast (gzip) til Kusto, hvis aktivert. true
ingestion_resources_refresh_interval Oppdateringsintervallet for inntaksressurser for Kusto-endepunktet i sekunder. 3600
Arbeidere Antall arbeidere til å utføre tømmingsoperasjoner for denne utdataene. 0

Hvis du vil se en eksempelkonfigurasjonsfil, velger du den relevante fanen:

[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>

Bekreft datainntak

  1. Når dataene kommer inn i tabellen, bekrefter du overføringen av data ved å kontrollere radantallet:

    FluentBitLogs
    | count
    
  2. Hvis du vil vise et eksempel på loggdata, kjører du følgende spørring:

    FluentBitLogs
    | take 100