Inserire dati con Fluent Bit in Azure Esplora dati
Fluent Bit è un agente open-source che raccoglie log, metriche e tracce da varie origini. Consente di filtrare, modificare e aggregare i dati degli eventi prima di inviarli all'archiviazione. Questo articolo illustra il processo di utilizzo di Fluent Bit per inviare dati al database KQL.
Questo articolo illustra come inserire dati con Fluent Bit.
Per un elenco completo dei connettori dati, vedere Panoramica dei connettori dati.
Prerequisiti
- Fluent Bit.
- Un cluster e un database di Esplora dati di Azure. Creare un cluster e un database.
- Ambiente di interrogazione. Per ulteriori informazioni, consultare la panoramica delle integrazioni di query .
- URI del cluster Kusto per il valore Ingestion_endpoint nel formato https://ingest-<cluster>.<regione>.kusto.windows.net. Per ulteriori informazioni, consultare Aggiungere una connessione cluster.
Creare un'entità servizio Microsoft Entra
L'entità servizio principale di Microsoft Entra può essere creata attraverso il portale di Azure o programmaticamente, come nell'esempio seguente.
Questo principale del servizio è l'identità usata dal connettore per scrivere dati nella tua tabella in Kusto. Si concedono le autorizzazioni a questo principale del servizio per accedere alle risorse Kusto.
Accedere alla sottoscrizione di Azure usando l'interfaccia della riga di comando di Azure. Eseguire quindi l'autenticazione nel browser.
az login
Scegliere la sottoscrizione per ospitare l'entità di sicurezza. Questo passaggio è necessario quando si hanno più sottoscrizioni.
az account set --subscription YOUR_SUBSCRIPTION_GUID
Creare l'entità servizio. In questo esempio l'entità servizio viene chiamata
my-service-principal
.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
Dai dati JSON restituiti copiare
appId
,password
etenant
per un uso futuro.{ "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" }
L'applicazione Microsoft Entra e l'entità servizio sono state create.
Creare una tabella di destinazione
Fluent Bit inoltra i log in formato JSON con tre proprietà: log
(dynamic), tag
(string), e timestamp
(datetime).
È possibile creare una tabella con colonne per ognuna di queste proprietà. In alternativa, se sono presenti log strutturati, è possibile creare una tabella con proprietà di log mappate per personalizzare le colonne. Per altre informazioni, selezionare la scheda pertinente.
Per creare una tabella per i log in ingresso da Fluent Bit:
Passare all'ambiente di query.
Selezionare il database in cui si vuole creare la tabella.
Eseguire il
.create table
command seguente:.create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)
Le proprietà JSON in ingresso vengono mappate automaticamente dentro la colonna corretta.
Concedere autorizzazioni all'entità servizio
Concedi all'entità del servizio da Creare un'entità servizio Microsoft Entrale autorizzazioni del ruolo database ingestor per lavorare con il database. Per ulteriori informazioni, vedere Esempi. Sostituire il segnaposto DatabaseName con il nome del database di destinazione e ApplicationID con il valore AppId
salvato durante la creazione di un principale del servizio Microsoft Entra.
.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>;<TenantID>')
Configurare Fluent Bit per inviare i log alla tua tabella
Per configurare Fluent Bit per inviare i log alla tabella in Kusto, creare un modalità classica o modalità YAML file di configurazione con le proprietà di output seguenti:
Campo | Descrizione | Obbligatorio | Predefinito |
---|---|---|---|
Name | Nome della pipeline. | azure_kusto |
|
tenant_id | ID tenant di Creare un'entità servizio Microsoft Entra. | ✔️ | |
client_id | ID applicazione da Creare un'entità servizio Microsoft Entra. | ✔️ | |
segreto_del_client | Valore della chiave segreta client (password) da Crea un'entità servizio Microsoft Entra. | ✔️ | |
endpoint di ingestione | Immettere il valore come descritto per Ingestion_Endpoint. | ✔️ | |
nome_del_database | Nome del database contenente la tabella dei log. | ✔️ | |
table_name | Nome della tabella da Creare una tabella di destinazione. | ✔️ | |
riferimento_mappatura_ingestione | Nome del mapping di inserimento da Creare una tabella di destinazione. Se non è stato creato un mapping di inserimento, rimuovere la proprietà dal file di configurazione. | ||
log_key | Nome chiave del contenuto del log. Ad esempio, log . |
log |
|
tag_key | Nome chiave del tag. Ignorato se include_tag_key è falso. |
tag |
|
include_time_key | Un timestamp viene aggiunto all'output, se abilitato. Utilizza la proprietà time_key . |
true |
|
chiave_temporale | Nome della chiave per il timestamp nei record di log. "Ignorato se include_time_key è falso." |
timestamp |
|
timeout di connessione al punto di ingresso per l'ingestione | Timeout della connessione di vari endpoint Kusto in secondi. | 60s |
|
compressione_abilitata | Invia il payload HTTP compresso con gzip a Kusto, se l'opzione è abilitata. | true |
|
Intervallo_Aggiornamento_Risorse_Inserimento | Intervallo di aggiornamento delle risorse di ingestione dell'endpoint Kusto, espresso in secondi. | 3600 |
|
lavoratori | Numero di ruoli di lavoro per eseguire operazioni di scaricamento per questo output. | 0 |
Per visualizzare un file di configurazione di esempio, selezionare la scheda pertinente:
[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>
Confermare l'inserimento dati
Dopo l'arrivo dei dati nella tabella, verificare il trasferimento dei dati controllando il conteggio delle righe:
FluentBitLogs | count
Per visualizzare un esempio di dati di log, eseguire la query seguente:
FluentBitLogs | take 100
Contenuto correlato
- panoramica delle integrazioni dei dati
- Panoramica del Kusto Query Language (KQL)
- Scrivere query