Delen via


Gegevens opnemen met Fluent Bit in Azure Data Explorer

Fluent Bit- is een opensource-agent waarmee logboeken, metrische gegevens en traceringen uit verschillende bronnen worden verzameld. Hiermee kunt u gebeurtenisgegevens filteren, wijzigen en aggregeren voordat u deze naar de opslag verzendt. In dit artikel wordt u begeleid bij het gebruik van Fluent Bit om gegevens naar uw KQL-database te verzenden.

In dit artikel wordt beschreven hoe u gegevens opneemt met Fluent Bit.

Zie Overzicht van gegevensconnectorsvoor een volledige lijst met gegevensconnectors.

Voorwaarden

Een Microsoft Entra-service-principal maken

De Microsoft Entra-service-principal kan worden gemaakt via de Azure Portal of programmeerbaar, zoals in het volgende voorbeeld.

Deze service-principal is de identiteit die door de connector wordt gebruikt om gegevens naar uw tabel in Kusto te schrijven. U verleent voor deze service-principal toestemmingen voor toegang tot Kusto-resources.

  1. Meld u aan bij uw Azure-abonnement via Azure CLI. Verifieer vervolgens in de browser.

    az login
    
  2. Kies het abonnement om de hoofdgebruiker te hosten. Deze stap is nodig wanneer u meerdere abonnementen hebt.

    az account set --subscription YOUR_SUBSCRIPTION_GUID
    
  3. Maak de service-principal. In dit voorbeeld wordt de service-principal my-service-principalgenoemd.

    az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
    
  4. Kopieer vanuit de geretourneerde JSON-gegevens de appId, passworden tenant voor toekomstig gebruik.

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

U hebt uw Microsoft Entra-toepassing en service-principal gemaakt.

Een doeltabel maken

Fluent Bit stuurt logboeken door in JSON-indeling met drie eigenschappen: log (dynamische), tag (tekenreeks) en timestamp (datum/tijd-).

U kunt een tabel maken met kolommen voor elk van deze eigenschappen. Als u gestructureerde logboeken hebt, kunt u ook een tabel maken met logboekeigenschappen die zijn toegewezen aan aangepaste kolommen. Selecteer het relevante tabblad voor meer informatie.

Een tabel maken voor binnenkomende logboeken van Fluent Bit:

  1. Blader naar uw queryomgeving.

  2. Selecteer de database waarin u de tabel wilt maken.

  3. Voer de volgende .create table opdracht uit:

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

    De binnenkomende JSON-eigenschappen worden automatisch toegewezen aan de juiste kolom.

Machtigingen verlenen aan de service-principal

Verleen de service-principal van Een Microsoft Entra-service-principal makendatabase-ingestor rolrechten om met de database te werken. Zie Voorbeeldenvoor meer informatie. Vervang de tijdelijke aanduiding DatabaseName door de naam van de doeldatabase en ApplicationID- door de AppId waarde die u hebt opgeslagen bij het maken van een Microsoft Entra-service-principal.

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

Fluent Bit configureren om logboeken naar uw tabel te verzenden

Als u Fluent Bit wilt configureren voor het verzenden van logboeken naar uw tabel in Kusto, maakt u een klassieke modus of YAML-modus configuratiebestand met de volgende uitvoereigenschappen:

Veld Beschrijving Vereist Verstek
Naam De naam van de pijplijn. azure_kusto
huurder_id De tenant-id van Een Microsoft Entra-service-principal maken. ✔️
client_id De toepassings-id van Een Microsoft Entra-service-principal maken. ✔️
client_secret De waarde van de clientgeheimsleutel (wachtwoord) van Een Microsoft Entra-service-principal maken. ✔️
invoer-eindpunt Voer de waarde in zoals beschreven voor Ingestion_Endpoint. ✔️
database_name De naam van de database die de logboektabel bevat. ✔️
table_name De naam van de tabel uit Maak een doeltabel. ✔️
invoer_mapping_referentie De naam van de opnametoewijzing van Een doeltabel maken. Als u geen opnametoewijzing hebt gemaakt, verwijdert u de eigenschap uit het configuratiebestand.
log_key Sleutelnaam van de logboekinhoud. Bijvoorbeeld log. log
tag_key De sleutelnaam van het label. Genegeerd als include_tag_key onwaar is. tag
include_time_key Een tijdstempel wordt toegevoegd aan uitvoer, indien ingeschakeld. Gebruikt de eigenschap time_key. true
tijd_sleutel De sleutelnaam voor de tijdstempel in de logboekrecords. Genegeerd als include_time_key onwaar. timestamp
ingestion_endpoint_connect_timeout De verbindingstime-out van verschillende Kusto-eindpunten in seconden. 60s
compressie_ingeschakeld Verzendt gecomprimeerde HTTP-nettolading (gzip) naar Kusto, indien ingeschakeld. true
verversinterval_voor_invoerbronnen Het vernieuwingsinterval voor opnamebronnen van het Kusto-eindpunt in seconden. 3600
arbeiders Het aantal werknemers om flush-bewerkingen voor deze uitvoer uit te voeren. 0

Als u een voorbeeld van een configuratiebestand wilt zien, selecteert u het relevante tabblad:

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

Gegevensopname bevestigen

  1. Zodra de gegevens in de tabel binnenkomen, bevestigt u de overdracht van gegevens door het aantal rijen te controleren:

    FluentBitLogs
    | count
    
  2. Voer de volgende query uit om een voorbeeld van logboekgegevens weer te geven:

    FluentBitLogs
    | take 100