Hämta data med Fluent Bit
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. Azure Data Explorer är en snabb och mycket skalbar datautforskningstjänst för logg- och telemetridata. Den här artikeln vägleder dig genom processen att använda Fluent Bit för att skicka data till din KQL-databas.
I den här artikeln får du lära dig att:
Förutsättningar
- Fluent Bit.
- En arbetsyta med en Microsoft Fabric-aktiverad kapacitet
- En KQL-databas med inmatningsbehörigheter
- En KQL-frågeuppsättning som senare kallas din frågemiljö
Skapa en tabell för att lagra loggarna
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:
Bläddra 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.
Registrera en Microsoft Entra-app med behörighet att mata in data
Microsoft Entra-tjänstens huvudnamn kan skapas via Azure Portal eller programatiskt, som i följande exempel.
Tjänstens huvudnamn är den identitet som används av anslutningsappen för att skriva data i tabellen i Kusto. Du beviljar senare 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
my-service-principal
tjänstens huvudnamn .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 tjänstens huvudnamn.
Bevilja behörigheter till tjänstens huvudnamn
Kör följande kommando och <MyDatabase>
ersätt med namnet på databasen:
.add database MyDatabase ingestors ('aadapp=<Application (client) ID>;<Directory (tenant) ID>')
Det här kommandot ger programmet behörighet att mata in data i tabellen. Mer information finns i rollbaserad åtkomstkontroll.
Konfigurera Fluent Bit för att skicka loggar till tabellen
Om du vill konfigurera Fluent Bit för att skicka loggar till din Azure Data Explorer-tabell skapar du en konfigurationsfil för klassiskt läge eller YAML-läge med följande utdataegenskaper:
Fält | Beskrivning |
---|---|
Name | azure_kusto |
Matchning | Ett mönster som matchar taggarna för inkommande poster. Det är skiftlägeskänsligt och stöder stjärntecknet (* ) som ett jokertecken. |
Tenant_Id | Katalog-ID (klientorganisation) från Registrera en Microsoft Entra-app med behörighet att mata in data. |
Client_Id | Program-ID (klient)-ID från Registrera en Microsoft Entra-app med behörighet att mata in data. |
Client_Secret | Nyckelvärdet för klienthemlighet Registrerar en Microsoft Entra-app med behörighet att mata in data. |
Ingestion_Endpoint | Använd inmatnings-URI:n som finns på informationssidan för KQL-databasen. Mer information finns i Kopiera URI. |
Database_Name | Namnet på databasen som innehåller loggtabellen. |
Table_Name | Namnet på tabellen från Skapa en tabell för att lagra loggarna. |
Ingestion_Mapping_Reference | Namnet på inmatningsmappningen från Skapa en tabell. Om du inte skapade en inmatningsmappning tar du bort egenskapen från konfigurationsfilen. |
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]
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
Kontrollera att data har landat i tabellen
När konfigurationen är klar bör loggarna tas emot i tabellen.
Kontrollera att loggarna matas in genom att köra följande fråga:
FluentBitLogs | count
Om du vill visa ett exempel på loggdata kör du följande fråga:
FluentBitLogs | take 100