Mata in data med Fluent Bit i Azure Data Explorer
Fluent Bit är en agent med öppen källkod som samlar in loggar, mått och spårningar från olika källor. Du kan filtrera, ändra och aggregera händelsedata innan du skickar dem till lagringen. Den här artikeln vägleder dig genom processen att använda Fluent Bit för att skicka data till din KQL-databas.
Den här artikeln visar hur du matar in data med Fluent Bit.
En fullständig lista över dataanslutningar finns i Översikt över dataanslutningar.
Förutsättningar
- Fluent Bit.
- Ett Azure Data Explorer-kluster och en databas. Skapa ett kluster och en databas.
- En frågemiljö. Mer information finns i översikten över Query-integreringar.
- Din Kusto-cluster-URI för Ingestion_endpoint-värdet i formatet https://ingest-<cluster>.<region>.kusto.windows.net. Mer information finns i Lägg till en klusteranslutning.
Skapa ett huvudnamn för Microsoft Entra-tjänsten
Microsoft Entra-tjänsthuvudnamn kan skapas antingen via Azure-portalen eller programmässigt, enligt följande exempel.
Tjänstens huvudnamn är den identitet som används av anslutningsappen för att skriva data till tabellen i Kusto. Du beviljar behörigheter för tjänstens huvudnamn för åtkomst till Kusto-resurser.
Logga in på din Azure-prenumeration via Azure CLI. Autentisera sedan i webbläsaren.
az login
Välj den prenumeration som ska vara värd för huvudkontot. Det här steget behövs när du har flera prenumerationer.
az account set --subscription YOUR_SUBSCRIPTION_GUID
Skapa tjänstens huvudnamn. I det här exemplet kallas tjänstens huvudnamn
my-service-principal
.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
Från de returnerade JSON-data kopierar du
appId
,password
ochtenant
för framtida användning.{ "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 skapat ditt Microsoft Entra-program och servicens huvudprincip.
Skapa en måltabell
Fluent Bit vidarebefordrar loggar i JSON-format med tre egenskaper: log
(dynamisk), tag
(sträng) och timestamp
(datetime).
Du kan skapa en tabell med kolumner för var och en av dessa egenskaper. Om du har strukturerade loggar kan du också skapa en tabell med loggegenskaper mappade till anpassade kolumner. Om du vill veta mer väljer du relevant flik.
Så här skapar du en tabell för inkommande loggar från Fluent Bit:
Navigera till frågemiljön.
Välj den databas där du vill skapa tabellen.
Kör följande
.create table
kommando:.create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)
De inkommande JSON-egenskaperna mappas automatiskt till rätt kolumn.
Tilldela behörigheter till tjänstprincipalen
Bevilja tjänstens huvudnamn från Skapa ett Microsoft Entra-tjänsthuvudnamndatabasingestor rollbehörigheter för att arbeta med databasen. Mer information finns i Exempel. Ersätt platshållaren DatabaseName med namnet på måldatabasen och ApplicationID- med det AppId
värde som du sparade när du skapade ett Microsoft Entra-tjänsthuvudnamn.
.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>;<TenantID>')
Konfigurera Fluent Bit för att skicka loggar till tabellen
Om du vill konfigurera Fluent Bit för att skicka loggar till tabellen i Kusto skapar du ett klassiskt läge eller YAML-läge konfigurationsfil med följande utdataegenskaper:
Fält | Beskrivning | Krävs | Standard |
---|---|---|---|
Namn | Pipelinenamnet | azure_kusto |
|
hyresgäst-ID | Klientorganisations-ID:t från Skapa ett Microsoft Entra-tjänsthuvudnamn. | ✔️ | |
client_id | Program-ID från Skapa ett Microsoft Entra tjänstens huvudkonto. | ✔️ | |
klienthemlighet | Nyckelvärdet för klienthemlighet (lösenord) från Skapa ett Microsoft Entra-tjänsthuvudnamn. | ✔️ | |
intagningsändpunkt | Ange värdet enligt beskrivningen för Ingestion_Endpoint. | ✔️ | |
database_name | Namnet på databasen som innehåller loggtabellen. | ✔️ | |
tabell_namn | Namnet på tabellen från Skapa en måltabell. | ✔️ | |
datainmatningskartläggningsreferens | Namnet på inmatningsmappningen från Skapa en måltabell. Om du inte skapade en inmatningsmappning tar du bort egenskapen från konfigurationsfilen. | ||
loggnyckel | Nyckelnamn för logginnehållet. Till exempel log . |
log |
|
tag_key | Taggens nyckelnamn. Ignoreras om include_tag_key är falskt. |
tag |
|
inkludera_tid_nyckel | En tidsstämpel läggs till i utdata om den är aktiverad. Använder egenskapen time_key . |
true |
|
tidsnyckel | Nyckelnamnet för tidsstämpeln i loggposterna. Ignoreras om include_time_key falskt. |
timestamp |
|
anslutningstidsgräns för ingestion_endpoint | Anslutningens tidsgräns för olika Kusto-slutpunkter i sekunder. | 60s |
|
komprimering_aktiverad | Skickar komprimerad HTTP-nyttolast (gzip) till Kusto om den är aktiverad. | true |
|
uppdateringsintervall för resursimport | Uppdateringsintervallet för inmatningsresurser för Kusto-slutpunkten i sekunder. | 3600 |
|
arbetare | Antalet arbetande för att utföra tömningsåtgärder för detta resultat. | 0 |
Om du vill se en exempelkonfigurationsfil väljer du relevant flik:
[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>
Bekräfta dataupptagning
När data har hämtats i tabellen bekräftar du överföringen av data genom att kontrollera radantalet:
FluentBitLogs | count
Om du vill visa ett exempel på loggdata kör du följande fråga:
FluentBitLogs | take 100