Gegevens ophalen met Fluent Bit
Fluent Bit is een opensource-agent die logboeken, metrische gegevens en traceringen van verschillende bronnen verzamelt. 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.
Voor een volledige lijst met gegevensconnectors, zie Overzicht van gegevensconnectors.
Vereisten
- Fluent Bit.
- Een werkruimte met een Microsoft Fabric-ingeschakelde capaciteit.
- Een KQL-database met opnamemachtigingen.
- Een KQL-queryset, die verder als uw queryomgeving wordt aangeduid.
- De URI voor data-import die als waarde voor TargetURI moet worden gebruikt. Zie URI Kopiëren voor meer informatie.
Een Microsoft Entra-service-principal maken
De Microsoft Entra-service-principal kan worden gemaakt via de Azure portal of via een programma, zoals in het volgende voorbeeld.
Deze service principal is de ID die door de connector wordt gebruikt om gegevens naar uw tabel in Kusto te schrijven. U verleent machtigingen voor deze service-principal 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 principal 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 aangeroepen
my-service-principal
.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
Kopieer de
appId
,password
en voortenant
toekomstig gebruik vanuit de geretourneerde JSON-gegevens.{ "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: (dynamisch), (tekenreekslog
tag
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
Verdeel de service-principal van Een Microsoft Entra-service-principal makendatabase ingestor rolmachtigingen voor het werken met de database. 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 Maak een Microsoft Entra-service-principal. | ✔️ | |
client_id | De toepassings-id van Een Microsoft Entra-service-principal maken. | ✔️ | |
klantgeheim | De clientgeheime sleutelwaarde (wachtwoord) van Een Microsoft Entra-service-principal maken. | ✔️ | |
invoer-eindpunt | Voer de waarde in zoals beschreven voor Ingestion_Endpoint. | ✔️ | |
databasenaam | De naam van de database die de logboektabel bevat. | ✔️ | |
table_name | De naam van de tabel uit Maak een doeltabel. | ✔️ | |
toewijzingsreferentie voor aanvoer | 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 de tag. 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 |
|
verbindingstijdslimiet_endpoint_voor_opname | De verbindingstime-out van verschillende Kusto-eindpunten in seconden. | 60s |
|
compressie_ingeschakeld | Verzendt gecomprimeerde HTTP-nettolading (gzip) naar Kusto, indien ingeschakeld. | true |
|
invoerbronnen_verversingsinterval | Het vernieuwingsinterval voor invoerbronnen van het Kusto-eindpunt in seconden. | 3600 |
|
arbeiders | Het aantal werkers om flush-operaties 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