Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Fluent Bit ist ein Open Source-Agent, der Protokolle, Metriken und Ablaufverfolgungen aus verschiedenen Quellen sammelt. Es ermöglicht Ihnen, Ereignisdaten zu filtern, zu ändern und zu aggregieren, bevor Sie sie an den Speicher senden. Dieser Artikel führt Sie durch den Prozess der Verwendung von Fluent Bit zum Senden von Daten an Ihre KQL-Datenbank.
In diesem Artikel wird gezeigt, wie Sie Daten mit Fluent Bit verarbeiten.
Eine vollständige Liste der Datenkonnektoren finden Sie unter Übersicht der Datenverbindungen.
Voraussetzungen
- Fluent Bit.
- Schnellstart: Erstellen eines Azure Data Explorer-Clusters und einer Datenbank. Erstellen eines Clusters und einer Datenbank
- Eine Abfrageumgebung. Weitere Informationen finden Sie unter Übersicht der Abfrageintegrationen.
- Ihre Kusto-Cluster-URI für die Ingestion_endpoint im Format https://ingest-<Cluster>.<Region>.kusto.windows.net. Weitere Informationen finden Sie unter Hinzufügen einer Verbindung zum Cluster.
Erstellen eines Microsoft Entra-Dienstprinzipals
Der Microsoft Entra-Service-Auftrag kann über die Azure portal oder programmatically, as in the following example.
Dieser Service-Auftrag ist die Identität, die vom Connector verwendet wird, um Daten in Ihre Tabelle in Kusto zu schreiben. Sie erteilen diesem Service-Auftrag Berechtigungen für den Zugriff auf Kusto-Ressourcen.
Melden Sie sich per Azure CLI an Ihrem Azure-Abonnement an. Führen Sie anschließend im Browser die Authentifizierung durch.
az loginWählen Sie das Abonnement zum Hosten des Prinzipals aus. Dieser Schritt ist erforderlich, wenn Sie über mehrere Abonnements verfügen.
az account set --subscription YOUR_SUBSCRIPTION_GUIDErstellen Sie den Dienstprinzipal. In diesem Beispiel wird der Dienstprinzipal als
my-service-principalbezeichnet.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}Kopieren Sie aus den zurückgegebenen JSON-Daten
appId,passwordundtenantfür die zukünftige Verwendung.{ "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" }
Sie haben Ihre Microsoft Entra-Anwendung und den Dienstprinzipal erstellt.
Zieltabelle erstellen
Fluent Bit leitet Protokolle im JSON-Format mit drei Eigenschaften weiter: log (dynamisch), tag (Zeichenfolge) und timestamp (datetime).
Sie können eine Tabelle mit Spalten für jede dieser Eigenschaften erstellen. Alternativ können Sie bei strukturierten Protokollen eine Tabelle mit Protokolleigenschaften erstellen, die benutzerdefinierten Spalten zugeordnet sind. Um mehr zu erfahren, wählen Sie die relevante Registerkarte aus.
So erstellen Sie eine Tabelle für eingehende Protokolle aus Fluent Bit:
Browse to your query environment.
Select the database where you'd like to create the table.
Führen Sie den folgenden
.create tableBefehl aus:.create table FluentBitLogs (log:dynamic, tag:string, timestamp:datetime)Die eingehenden JSON-Eigenschaften werden automatisch der richtigen Spalte zugeordnet.
Gewähren von Berechtigungen für Ihren Dienstprinzipal
Gewähren Sie dem Service-Auftrag aus Erstellen Sie einen Microsoft Entra-DienstprinzipalDatenbank-Ingestor role permissions to work durch den Wert database. Weitere Informationen, finden Sie unter Beispiele. Ersetzen Sie den Platzhalter DatenbankName durch den Wert name of the target database and ApplicationID durch den Wert AppId , den Sie beim Erstellen eines Microsoft Entra-Dienstprinzipals gespeichert haben.
.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>;<TenantID>')
Konfigurieren von Fluent Bit zum Senden von Protokollen an Ihre Tabelle
Um Fluent Bit so zu konfigurieren, dass es Protokolle an Ihre Tabelle in Kusto sendet, erstellen Sie eine klassischer Modus oder YAML-Modus configuration file durch den Wert following output properties:
| Feld | Beschreibung | Erforderlich | Standard |
|---|---|---|---|
| Name | Der Pipelinename. | azure_kusto |
|
| Mieter_ID | Die Mieter-ID aus Erstellen Sie einen Microsoft Entra-Dienstprinzipal. | ✔️ | |
| Kunden-ID | Die Anwendungs-ID von Erstellen Sie einen Microsoft Entra-Dienstprinzipal. | ✔️ | |
| client_secret (Kunden-Geheimnis) | Der geheime Client-Schlüsselwert (Passwort) von Erstellen Sie einen Microsoft Entra-Dienstprinzipal. | ✔️ | |
| managed_identity_client_id | Die Client-ID der verwalteten Identität, die für die Authentifizierung verwendet werden soll. | ✔️ | |
| ingestion_Endpoint | Geben Sie den Wert wie bei Ingestion_Endpoint. | ✔️ | |
| Datenbankname | Der Name der Datenbank, die Ihre Protokolltabelle enthält. | ✔️ | |
| Tabellenname | Der Name der Tabelle aus Create a target table. | ✔️ | |
| ingestion_Mapping_Reference | Der Name der Erfassungsabbildung von Create a target table. Wenn Sie keine Aufnahmezuordnung erstellt haben, entfernen Sie die Eigenschaft aus der Konfigurationsdatei. | ||
| Protokollschlüssel | Schlüsselname des Protokollinhalts. Beispielsweise log. |
log |
|
| include_tag_key | Wenn diese Option aktiviert ist, wird ein Tag an die Ausgabe angefügt. | On |
|
| tag_key | Der Tag Name. Wird ignoriert, wenn include_tag_key falsch ist. |
tag |
|
| include_time_key | Wenn aktiviert, wird ein Zeitstempel an die Ausgabe angefügt. Verwendet die time_key Eigentum. |
On |
|
| time_key | Der Schlüsselname für den Zeitstempel in den Protokollaufzeichnungen. Wird ignoriert, wenn include_time_key falsch ist. |
timestamp |
|
| ingestion_endpoint_connect_timeout | Die Zeitüberschreitung für die Verbindung zu verschiedenen Kusto-Endpunkten in Sekunden. | 60 |
|
| Komprimierung_aktiviert | Sendet komprimierte HTTP-Nutzdaten (gzip) an Kusto, sofern aktiviert. | true |
|
| ingestion_resources_refresh_interval | Das Intervall für die Aktualisierung der erfassten Ressourcen des Kusto-Endpunkts in Sekunden. | ||
| Arbeiter | Die Anzahl der workers , die Flush-Operationen für diese Ausgabe ausführen sollen. | 0 |
|
| Puffern_aktiviert | Wenn aktiviert, werden Daten vor dem Erfassen in Kusto in Puffern auf dem Datenträger gespeichert. | Off |
|
| Buffer-Pfad | Gibt den Speicherort des Verzeichnisses an, in dem die gepufferten Daten gespeichert werden, wenn buffering_enabledOn ist. |
/tmp/fluent-bit/azure-kusto/ |
|
| upload_timeout | Gibt das Timeout für Uploads an, wenn buffering_enabledOn ist. Dateien, die älter als dies sind, werden auch dann aufgenommen, wenn sie unter dem Größenlimit liegen. |
30m |
|
| Hochlade_Dateigröße | Gibt die maximale Größe einer Datei an, die hochgeladen werden soll, wenn buffering_enabled gleich On ist. |
200MB |
|
| azure_kusto_buffer_key | Azure Kusto-Pufferschlüssel, um Plugin-Instanzen zu identifizieren, wenn buffering_enabledOn ist. Erforderlich für mehrere Azure Kusto-Ausgaben mit Pufferung. |
key |
|
| store_dir_limit_size | Die maximale Größe des Verzeichnisses, in dem die gepufferten Daten gespeichert werden, wenn buffering_enabled is On. |
8GB |
|
| Puffer_Datei_frühzeitig_löschen | Wenn buffering_enabledOn ist, ob die gepufferte Datei direkt nach der erfolgreichen Blob-Erstellung gelöscht werden soll. |
Off |
|
| unify_tag | Erstellt eine einzelne Pufferdatei, wenn buffering_enabledOn ist. |
On |
|
| blob_uri_length | Aktivieren Sie die Option zum Erfassen der Länge der generierten Blob-URI vor dem Erfassen in Kusto. | 64 |
|
| scheduler_max_retries | When buffering_enabled is On, aktivieren Sie die maximale Anzahl der Wiederholungsversuche für die Erfassung mithilfe des Planers. |
3 |
|
| löschen_bei_maximalem_Upload-Fehler | Soll die Pufferdatei bei maximalen Uploadfehlern gelöscht werden, wenn buffering_enabledOn ist? |
Off |
|
| IO_timeout | Konfigurieren Sie das HTTP-I/O-Timeout für Uploads. | 60s |
Um eine Beispielkonfigurationsdatei anzuzeigen, wählen Sie die relevante Registerkarte aus:
[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]
[OUTPUT]
Match *
Name azure_kusto
Tenant_Id <app_tenant_id>
Client_Id <app_client_id>
Client_Secret <app_secret>
Ingestion_Endpoint https://ingest-<cluster>.<region>.kusto.windows.net
Database_Name <database_name>
Table_Name <table_name>
Ingestion_Mapping_Reference <mapping_name>
ingestion_endpoint_connect_timeout <ingestion_endpoint_connect_timeout>
compression_enabled <compression_enabled>
ingestion_resources_refresh_interval <ingestion_resources_refresh_interval>
buffering_enabled On
upload_timeout 2m
upload_file_size 125M
azure_kusto_buffer_key kusto1
buffer_file_delete_early Off
unify_tag On
buffer_dir /var/log/
store_dir_limit_size 16GB
blob_uri_length 128
scheduler_max_retries 3
delete_on_max_upload_error Off
io_timeout 60s
Bestätigen der Datenerfassung
Nachdem daten in der Tabelle eintreffen, bestätigen Sie die Übertragung von Daten, indem Sie die Zeilenanzahl überprüfen:
FluentBitLogs | countFühren Sie die folgende Abfrage aus, um ein Beispiel für Protokolldaten anzuzeigen:
FluentBitLogs | take 100