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
- Fluent Bit.
- Een Azure Data Explorer-cluster en -database. Een cluster en database maken.
- Een queryomgeving. Zie Overzicht van queryintegratiesvoor meer informatie.
- De Kustocluster-URI voor de Ingestion_endpoint-waarde in het formaat https://ingest-<cluster>.<regio>.kusto.windows.net. Zie Een clusterverbinding toevoegenvoor meer informatie.
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.
Meld u aan bij uw Azure-abonnement via Azure CLI. Verifieer vervolgens in de browser.
az login
Kies het abonnement om de hoofdgebruiker te hosten. Deze stap is nodig wanneer u meerdere abonnementen hebt.
az account set --subscription YOUR_SUBSCRIPTION_GUID
Maak de service-principal. In dit voorbeeld wordt de service-principal
my-service-principal
genoemd.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
Kopieer vanuit de geretourneerde JSON-gegevens de
appId
,password
entenant
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:
Blader naar uw queryomgeving.
Selecteer de database waarin u de tabel wilt maken.
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
Zodra de gegevens in de tabel binnenkomen, bevestigt u de overdracht van gegevens door het aantal rijen te controleren:
FluentBitLogs | count
Voer de volgende query uit om een voorbeeld van logboekgegevens weer te geven:
FluentBitLogs | take 100
Verwante inhoud
- Overzicht van gegevensintegraties
- Overzicht van Kusto Query Language (KQL)
- Queries schrijven