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
- Fluent Bit.
- Et arbeidsområde med en Microsoft Fabric-aktivert -kapasitet.
- En KQL-database med inntakstillatelser.
- Et KQL-spørringssett, som vil bli referert til senere som spørringsmiljøet.
- URI-en for databaseinntak som skal brukes som TargetURI--verdi. Hvis du vil ha mer informasjon, kan du se Kopier URI.
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.
Logg på Azure-abonnementet via Azure CLI. Deretter godkjenner du i nettleseren.
az login
Velg abonnementet som vert for hovedstolen. Dette trinnet er nødvendig når du har flere abonnementer.
az account set --subscription YOUR_SUBSCRIPTION_GUID
Opprett tjenestekontohaveren. I dette eksemplet kalles
my-service-principal
tjenestekontohaveren .az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
Kopier ,
appId
ogpassword
for fremtidig bruk,tenant
fra 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).tag
timestamp
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:
Bla til spørringsmiljøet.
Velg databasen der du vil opprette tabellen.
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
Når dataene kommer inn i tabellen, bekrefter du overføringen av data ved å kontrollere radantallet:
FluentBitLogs | count
Hvis du vil vise et eksempel på loggdata, kjører du følgende spørring:
FluentBitLogs | take 100