Dela via


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

Skapa ett huvudnamn för Microsoft Entra-tjänsten

Microsoft Entra-serviceprincipal kan skapas via Azure-portalen eller programmatiskt, som i följande exempel.

Tjänsteprincipalen är den identitet som används av anslutningen för att skriva data till din tabell i Kusto. Du beviljar behörigheter för tjänstens huvudkonto för åtkomst till Kusto-resurser.

  1. Logga in på din Azure-prenumeration via Azure CLI. Autentisera sedan i webbläsaren.

    az login
    
  2. 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
    
  3. Skapa tjänstens huvudnamn. I det här exemplet kallas my-service-principaltjänstens huvudnamn .

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. Från de returnerade JSON-data kopierar du appId, passwordoch tenant 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.

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:

  1. Bläddra till frågemiljön.

  2. Välj den databas där du vill skapa tabellen.

  3. 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.

Bevilja behörigheter till tjänstens huvudnamn

Bevilja tjänstens huvudprincip från Skapa ett Microsoft Entra-tjänsthuvudprincipdatabasingestörer 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 Förvalt
Name Pipelinenamnet azure_kusto
tenant_id Klient-ID från Skapa ett Microsoft Entra-tjänstekonto. ✔️
klient-id Program-ID:t från Skapa ett Microsoft Entra-tjänsthuvudnamn. ✔️
klienthemlighet Nyckelvärdet för klienthemlighet (lösenord) från Skapa ett Microsoft Entra-tjänstens huvudnamn. ✔️
ingestion_endpoint Ange värdet enligt beskrivningen för Ingestion_Endpoint. ✔️
databasnamn Namnet på databasen som innehåller loggtabellen. ✔️
table_name Namnet på tabellen från Skapa en måltabell. ✔️
ingestion_mapping_reference Namnet på inmatningsmappningen från Skapa en måltabell. Om du inte skapade en inmatningsmappning tar du bort egenskapen från konfigurationsfilen.
log_key Nyckelnamn för logginnehållet. Till exempel log. log
taggnyckel Taggens nyckelnamn. Ignoreras om include_tag_key är falskt. tag
include_time_key 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
anslutningstidgräns_för_upptagsändpunkt Tidsbegränsningen för anslutning av olika Kusto-slutpunkter i sekunder. 60s
komprimering_aktiverad Skickar komprimerad HTTP-nyttolast (gzip) till Kusto om den är aktiverad. true
ingestion_resources_refresh_interval Uppdateringsintervallet för inmatningsresurser för Kusto-slutpunkten i sekunder. 3600
arbetare Antalet medarbetare att utföra spolningsoperationer för detta utdata. 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 datainsamling

  1. När data har hämtats i tabellen bekräftar du överföringen av data genom att kontrollera radantalet:

    FluentBitLogs
    | count
    
  2. Om du vill visa ett exempel på loggdata kör du följande fråga:

    FluentBitLogs
    | take 100