Erfassen von Daten aus Cribl Stream in Azure Data Explorer
Cribl Stream ist eine Verarbeitungs-Engine, die Computerereignisdaten aus beliebigen Quellen auf sichere Weise sammelt, verarbeitet und streamt. Sie können diese Daten für jedes Ziel zur Analyse und Verwaltung auf sichere Weise parsen und verarbeiten.
In diesem Artikel wird gezeigt, wie Sie Daten mit Cribl Stream erfassen.
Eine vollständige Liste der Datenconnectors finden Sie in der Übersicht über Datenintegrationen.
Voraussetzungen
- Ein Cribl Stream-Konto
- Einen Azure Data Explorer-Cluster und eine Datenbank mit den Standardrichtlinien für den Cache und die Aufbewahrung.
- Eine Abfrageumgebung. Weitere Informationen finden Sie unter Übersicht über Abfrageintegrationen.
- Ihr Kusto-Cluster-URI für den TargetURI-Wert im https://ingest-<Formatcluster>.<region>.kusto.windows.net. Weitere Informationen finden Sie unter Hinzufügen einer Clusterverbindung.
Erstellen eines Microsoft Entra-Dienstprinzipals
Der Microsoft Entra-Dienstprinzipal kann über das Azure-Portal oder programmgesteuert (wie im folgenden Beispiel) erstellt werden.
Dieser Dienstprinzipal ist die Identität, die vom Connector zum Schreiben von Daten in Ihre Tabelle in Kusto verwendet wird. Sie gewähren diesem Dienstprinzipal 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 login
Wählen Sie das Abonnement aus, um den Prinzipal zu hosten. Dieser Schritt ist erforderlich, wenn Sie über mehrere Abonnements verfügen.
az account set --subscription YOUR_SUBSCRIPTION_GUID
Erstellen Sie den Dienstprinzipal. In diesem Beispiel wird der Dienstprinzipal als
my-service-principal
bezeichnet.az ad sp create-for-rbac -n "my-service-principal" --role Contributor --scopes /subscriptions/{SubID}
Kopieren Sie aus den zurückgegebenen JSON-Daten
appId
,password
undtenant
fü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.
Erstellen einer Zieltabelle
Erstellen Sie eine Zieltabelle für die eingehenden Daten und eine Erfassungszuordnung, um die erfassten Datenspalten den Spalten in der Zieltabelle zuzuordnen.
Führen Sie den folgenden Tabellenerstellungsbefehl im Abfrage-Editor aus, und ersetzen Sie den Platzhalter TableName durch den Namen der Zieltabelle:
.create table <TableName> (_raw: string, _time: long, cribl_pipe: dynamic)
Führen Sie den folgenden create ingestion mapping-Befehl aus, und ersetzen Sie dabei den Platzhalter TableName durch den Zieltabellennamen und den Platzhalter TableNameMapping durch den Namen der Erfassungszuordnung:
.create table <TableName> ingestion csv mapping '<TableNameMapping>' 'CriblLogMapping' '[{"Name":"_raw","DataType":"string","Ordinal":"0","ConstValue":null},{"Name":"_time","DataType":"long","Ordinal":"1","ConstValue":null},{"Name":"cribl_pipe","DataType":"dynamic","Ordinal":"2","ConstValue":null}]'
Gewähren Sie dem Dienstprinzipal aus Microsoft Entra Dienstprinzipal erstellen Datenbankerfasser Rollenberechtigungen, um mit der Datenbank zu arbeiten. Weitere Informationen finden Sie unter Beispiele. Ersetzen Sie DatabaseName durch den Namen der Zieldatenbank und ApplicationID durch den
AppId
Wert, den Sie beim Erstellen eines Microsoft Entra-Dienstprinzipals gespeichert haben..add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'App Registration'
Erstellen von Cribl Stream-Zielen
Im folgenden Abschnitt wird beschrieben, wie Sie ein Cribl Stream-Ziel erstellen, das Daten in Ihre Tabelle in Kusto schreibt. Für jede Tabelle ist ein separater Cribl Stream-Zielconnector erforderlich.
Auswählen des Ziels
So verbinden Sie Cribl Stream mit Ihrer Tabelle
Wählen Sie im oberen Navigationsbereich in Cribl Manage und dann eine Workergruppe aus.
Wählen Sie Routing>QuickConnect (Stream)>Add Destination aus.
Wählen Sie im Fenster Set up new QuickConnect Destination die Option Azure Data Explorer und dann Add now aus.
Festlegen allgemeiner Einstellungen
Legen Sie im Fenster New Data Explorer unter General Settings die folgenden Einstellungen fest:
Einstellung | Wert | Beschreibung |
---|---|---|
Output ID | <OutputID>, z. B. KustoDestination | Der Name, der zum Identifizieren Ihres Ziels verwendet wird |
Ingestion Mode | Batching (Standard) oder Streaming | Die Einstellungen für den Erfassungsmodus. Mit der Batchverarbeitung kann Ihre Tabelle Datenbatches aus einem Cribl-Speichercontainer pullen, wenn große Datenmengen über einen kurzen Zeitraum erfasst werden. Durch Streaming werden Daten direkt an die KQL-Zieltabelle gesendet. Streaming ist nützlich zum Erfassen kleinerer Datenmengen oder z. B. zum Senden einer kritischen Warnung in Echtzeit. Durch Streaming kann eine geringere Wartezeit als durch Batchverarbeitung erreicht werden. Ist der Erfassungsmodus auf Streaming festgelegt, müssen Sie eine Streamingrichtlinie aktivieren. Weitere Informationen finden Sie unter Richtlinie für die Streamingerfassung. |
Cluster base URI | Basis-URI | Der Basis-URI |
Ingestion service URI | Erfassungs-URI | Wird angezeigt, wenn der Modus Batching ausgewählt ist. Der Erfassungs-URI |
Datenbankname | <DatabaseName> | Der Name Ihrer Zieldatenbank. |
Tabellenname | <TableName> | Der Name Ihrer Zieltabelle. |
Validate database settings | Yes (Standard) oder No | Überprüft die Anmeldeinformationen der Dienstprinzipal-App, die Sie beim Speichern oder Starten Ihres Ziels eingegeben haben. Der Tabellenname wird überprüft, außer wenn Add mapping object aktiviert ist. Diese Einstellung sollte deaktiviert werden, wenn Ihre App nicht über die beiden Rollen als anzeigender Datenbankbenutzer und anzeigender Tabellenbenutzer verfügt. |
Add mapping object | Yes oder No (Standard) | Wird nur angezeigt, wenn der Batchverarbeitungsmodus anstelle des standardmäßigen Textfelds Data mapping ausgewählt ist. Wenn Sie Yes auswählen, wird ein Fenster zur Eingabe der Datenzuordnung als JSON-Objekt geöffnet. |
Datenzuordnung | Der Name des Zuordnungsschemas wie im Schritt Erstellen einer Zieltabelle beschrieben. | Der Name des Zuordnungsschemas. Die Standardansicht, wenn Add mapping object auf Nofestgelegt ist. |
Komprimieren | gzip (Standard) | Wenn Data format auf „Parquet“ festgelegt ist, ist die Option Compress nicht verfügbar. |
Datenformat | „JSON“ (Standard), „Raw“ oder „Parquet“ | Das Datenformat. „Parquet“ ist nur im Modus Batching verfügbar und wird nur unter Linux unterstützt. |
Backpressure behavior | Block (Standard) oder Drop | Wählen Sie aus, ob Ereignisse blockiert oder weggelassen werden sollen, wenn Empfänger einen Rückstau aufweisen. |
Tags | Optionale Werte | Optionale Tags zum Filtern und Gruppieren von Zielen auf der Seite „Manage Destinations“ von Cribl Stream. Verwenden Sie eine Registerkarte oder einen harten Zeilenumbruch zwischen Tagnamen. Diese Tags werden verarbeiteten Ereignissen nicht hinzugefügt. |
Wählen Sie zum Abschluss Next aus.
Authentifizierungseinstellungen
Wählen Sie auf der Randleiste Authentication Settings aus. Verwenden Sie die Werte, die Sie unter Erstellen eines Microsoft Entra-Dienstprinzipals gespeichert haben, zusammen mit Ihrem Basis-URI wie folgt:
Einstellung | Wert | Beschreibung |
---|---|---|
Mandanten-ID | <TenantID> | Verwenden Sie den tenant -Wert, den Sie unter Erstellen eines Microsoft Entra-Dienstprinzipals gespeichert haben. |
Client ID | <ClientID> | Verwenden Sie die appId -Werte, die Sie unter Erstellen eines Microsoft Entra-Dienstprinzipals gespeichert haben. |
Umfang | <baseuri>/.default |
Verwenden Sie für baseuri den Wert aus Basis-URI. |
Authentifizierungsmethode | Geheimer Clientschlüssel, Geheimer Clientschlüssel (Textgeheimnis) oder Zertifikat | Zu den Optionen gehört Geheimer Clientschlüssel. Verwenden Sie den geheimen Clientschlüssel der Microsoft Entra-Anwendung, die Sie unter Erstellen eines Microsoft Entra-Dienstprinzipals für Geheimer Clientschlüssel erstellt haben. Für Zertifikat verwendet Ihr Zertifikat den öffentlichen Schlüssel, den Sie für die unter Erstellen eines Microsoft Entra-Dienstprinzipals erstellte Microsoft Entra-Anwendung registriert haben/registrieren werden. |
Wählen Sie Weiteraus.
Persistente Warteschlange
Wird angezeigt, wenn Ingestion mode auf Streaming und Backpressure behavior auf Persistent Queue festgelegt ist.
Einstellung | Wert | Beschreibung |
---|---|---|
Max file size | 1 MB (Standard) | Die maximale Dateigröße der Warteschlange vor dem Schließen der Datei. Beziehen Sie Einheiten wie KB oder MB ein, wenn Sie eine Zahl eingeben. |
Max queue size | 5 GB (Standard) | Der maximale Speicherplatz, den die Warteschlange für jeden Workerprozess verbrauchen kann, bevor das Ziel aufhört, die Daten in die Warteschlange einzureihen. Ein erforderlicher Wert positiver Zahlen mit Einheiten wie KB, MB oder GB. Der Höchstwert ist 1 TB. |
Queue file path | $CRIBL_HOME/state/queues (Standard) |
Der Speicherort der persistenten Warteschlangendatei. Cribl Stream fügt /<worker‑id>/<output‑id> an diesen Wert an. |
Komprimierung | None (Standard), gzip | Die Komprimierungsmethode, die zum Komprimieren der persistenten Daten beim Schließen verwendet werden soll |
Queue-full behavior | Block oder Drop | Wählen Sie aus, ob Ereignisse blockiert oder weggelassen werden sollen, wenn die Warteschlange aufgrund geringer Datenträgerkapazität oder vollständiger Datenträgerauslastung einen Rückstau aufweist. |
Strict ordering | Yes (Standard) oder No | Bei Festlegen auf Yes werden Ereignisse basierend auf der Sortierung „First In, First Out“ weitergeleitet. Legen Sie die Option auf No fest, um neue Ereignisse vor früheren in die Warteschlange eingereihten Ereignissen zu senden. |
Drain rate limit (EPS) | 0 (Standard) | Diese Option wird angezeigt, wenn Strict ordering auf No festgelegt ist, damit Sie eine Einschränkungsrate (in Ereignissen pro Sekunde) für das Schreiben aus der Warteschlange in Empfänger festlegen können. Durch die Einschränkung der Ausgleichsrate von Ereignissen in der Warteschlange wird der neue oder aktive Verbindungsdurchsatz erhöht. Bei „Null“ wird die Einschränkung deaktiviert. |
Clear Persistent Queue | Nicht verfügbar | Wählen Sie diese Option aus, um Dateien zu löschen, die aktuell zur Übermittlung an Ihr Ziel in die Warteschlange eingereiht sind. Sie müssen diese Aktion bestätigen, da in die Warteschlange eingereihte Daten dauerhaft gelöscht werden, ohne zugestellt zu werden. |
Wählen Sie nach Abschluss der Einstellungen Weiter aus.
Verarbeitungseinstellungen
Einstellung | Wert | Beschreibung |
---|---|---|
Pipeline | <\defined_pipeline> | Eine optionale Pipeline zum Verarbeiten von Daten vor dem Senden mithilfe dieser Ausgabe |
System fields | cribl_pipe (Standard), cribl_host , cribl_input , cribl_output , cribl_route oder cribl_wp |
Eine Liste von Feldern, die Ereignissen automatisch hinzugefügt werden, bevor sie an ihr Ziel gesendet werden. Platzhalter werden unterstützt. |
Wählen Sie nach Abschluss der Einstellungen Weiter aus.
Parquet-Einstellungen
Wird angezeigt, wenn Parquet für Data Formatausgewählt ist.
Durch Auswählen von Parquet wird die Registerkarte „Parquet Settings“ geöffnet, um das Parquet-Schema auszuwählen.
Einstellung | Wert | Beschreibung |
---|---|---|
Automatic schema | Ein oder Aus | Wählen Sie On aus, um ein Parquet-Schema basierend auf den Ereignissen jeder Parquet-Datei zu generieren, die Cribl Stream schreibt. |
Parquet schema | Dropdown | Wird angezeigt, wenn Automatic schema auf Off festgelegt ist, damit Sie Ihr Parquet-Schema auswählen können. |
Parquet version | 1.0, 2.4, 2.6 (Standard) | Die Version bestimmt die unterstützten Datentypen und deren Darstellung. |
Data page version | V1, V2 (Standard) | Das Serialisierungsformat der Datenseite. Wenn Ihr Parquet-Leser Parquet V2 nicht unterstützt, verwenden Sie V1. |
Group row limit | 1.000 (Standard) | Die maximale Anzahl von Zeilen, die jede Gruppe enthalten kann |
Seitengröße | 1 MB (Standard) | Die Zielspeichergröße für Seitensegmente. Niedrigere Werte können die Lesegeschwindigkeit, höhere Werte die Komprimierung verbessern. |
Log invalid rows | Ja oder Nein | Wenn Yes ausgewählt ist und Log level auf debug festgelegt ist, werden bis zu 20 eindeutige Zeilen ausgegeben, die aufgrund einer fehlenden Datenformatübereinstimmung übersprungen wurden. |
Write statistics | On (Standard) oder Off | Wählen Sie On aus, wenn die Anzeigetools für die Parquet-Statistik konfiguriert sind. |
Write page indexes | On (Standard) oder Off | Wählen Sie On aus, wenn Ihr Parquet-Leser das Überspringen von Seiten mit der Statistik des Parquet-Seitenindexes aktiviert. |
Write page checksum | Ein oder Aus | Wählen Sie Ein aus, wenn Sie Parquet-Tools verwenden, um die Datenintegrität mithilfe von Prüfsummen von Parquet-Seiten zu überprüfen. |
Metadata (optional)* | Die Metadateneigenschaften der Zieldatei, die als Schlüsselwertpaare aufgenommen werden können. |
Wiederholungsversuche
Wird angezeigt, wenn der Erfassungsmodus auf Streaming festgelegt ist.
Einstellung | Wert | Beschreibung |
---|---|---|
Honor Retry-After header | Ja oder Nein | Option zur Berücksichtigung des Retry-After -Headers. Wenn diese Option aktiviert ist, hat ein empfangener Retry-After -Header Vorrang und wird vor anderen konfigurierten Optionen im Abschnitt „Wiederholungsversuche“ verwendet, solange der Header eine Verzögerung von höchstens 180 Sekunden angibt. Andernfalls werden Retry-After -Header ignoriert. |
Settings for failed HTTP requests | HTTP-Statuscodes (Azure Cognitive Search) | Eine Liste der HTTP-Statuscodes für die automatische Wiederholung, wenn keine Verbindung hergestellt wird. Cribl Stream führt automatisch Wiederholungsversuche für Anforderungen mit Fehlercode 429 durch. |
Retry timed-out HTTP requests | Ein oder Aus | Wird diese Option aktiviert, werden weitere Einstellungen für Wiederholungsverhalten verfügbar. |
Pre-backoff interval (ms) | 1.000 ms (Standard) | Die Wartezeit vor dem Wiederholungsversuch |
Backoff multiplier | 2 s (Standard) | Wird als Basis für den Algorithmus des exponentiellen Backoff verwendet, um das Intervall zwischen Wiederholungen zu bestimmen. |
Backoff limit (ms) | 10.000 ms (Standard) | Das maximale Backoffintervall für den endgültigen Streaming-Wiederholungsversuch. Mögliche Werte reichen von 10.000 Millisekunden (10 Sekunden) bis 180.000 Millisekunden (3 Minuten). |
Wählen Sie nach Abschluss der Einstellungen Weiter aus.
Erweiterte Einstellungen
Wählen Sie auf der Randleiste die Option Advanced Settings aus. Im Folgenden werden die erweiterten Einstellungen beschrieben, wenn Batching ausgewählt ist:
Einstellung | Wert | Beschreibung |
---|---|---|
Flush immediately | Yes oder No (Standard) | Auf Yes festgelegt, um die Datenaggregation in Kusto außer Kraft zu setzen. Weitere Informationen finden Sie unter Bewährte Methoden für die Kusto-Erfassungsbibliothek. |
Retain blob on success | Yes oder No (Standard) | Wählen Sie Yes aus, um das Datenblob nach der Erfassung beizubehalten. |
Extent tags | <\ExtentTag, ET2,...> | Legen Sie bei Bedarf Tags auf partitionierte Erweiterungen der Zieltabelle fest. |
Enforce uniqueness via tag values | Wählen Sie Add value aus, um eine ingest-by -Werteliste anzugeben, die zum Filtern eingehender Erweiterungen verwendet werden soll, und verwerfen Sie die Erweiterungen, die einem aufgelisteten Wert entsprechen. Weitere Informationen finden Sie unter Erweiterungen (Datenshards). |
|
Report level | DoNotReport, FailuresOnly (Standard) und FailuresAndSuccesses | Die Statusberichtebene der Erfassung |
Report method | Queue (Standard), Tableund QueueAndTable (empfohlen) | Ziel für den Erfassungsstatusbericht |
Zusätzliche Felder | Fügen Sie bei Bedarf weitere Konfigurationseigenschaften hinzu, die an den Erfassungsdienst gesendet werden sollen. | |
Staging location | /tmp (Standard) |
Lokaler Dateisystemspeicherort, an dem Dateien vor dem Komprimieren und Verschieben in das endgültige Ziel gepuffert werden sollen. Cribl empfiehlt einen stabilen und leistungsfähigen Speicherort. |
File name suffix expression | .${C.env["CRIBL_WORKER_ID"]}.${__format}${__compression === "gzip" ? ".gz" : ""} (Standard) |
Ein JavaScript-Ausdruck in Anführungszeichen oder Backticks, die als Suffix des Ausgabedateinamens verwendet werden. format ist JSON oder Raw, und __compression ist Keine oder gzip. Am Ende der Dateinamen wird eine zufällige sechsstellige Zeichenfolge angehängt, um zu verhindern, dass die Dateien überschrieben werden. |
Max file size (MB) | 32 MB (Standard) | Die maximale unkomprimierte Ausgabedateigröße von Dateien, bevor diese geschlossen und in den Speichercontainer verschoben werden |
Max file open time (sec) | 300 Sekunden (Standard) | Die maximale Zeit in Sekunden, um in eine Datei zu schreiben, bevor diese geschlossen und in den Speichercontainer verschoben wird |
Max file idle time (sec) | 30 Sekunden (Standard) | Die maximale Zeit in Sekunden, um inaktive Dateien geöffnet zu lassen, bevor diese geschlossen und in den Speichercontainer verschoben werden |
Max open files | 100 (Standard) | Die maximale Anzahl von Dateien, die gleichzeitig geöffnet sind, bevor die ältesten geöffneten Dateien geschlossen und in den Speichercontainer verschoben werden |
Max concurrent file parts | 1 (Standard) | Die maximale Anzahl von Dateiteilen, die gleichzeitig hochgeladen werden sollen. Der Standardwert ist 1, und der höchste Wert ist 10. Durch Festlegen des Werts auf 1 werden die Teile einzeln nacheinander gesendet. |
Remove empty staging dirs | Yes (Standard) oder No | Bei Aktivierung löscht Cribl Stream leere Stagingverzeichnisse nach dem Verschieben von Dateien. Dadurch werden verwaiste leere Verzeichnisse vermieden. Bei Aktivierung wird der Staging cleanup period angezeigt. |
Staging cleanup period | 300 (Standard) | Der Zeitraum in Sekunden, bis leere Verzeichnisse gelöscht werden, wenn Remove staging dirs aktiviert ist. Wird angezeigt, wenn Remove empty staging dirs auf Yes festgelegt ist. Der Mindestwert beträgt 10, der Höchstwert 86.400 Sekunden (alle 24 Stunden). |
Umgebung | Wird die Option leer gelassen (Standardeinstellung), ist die Konfiguration überall aktiviert. Bei Verwendung von GitOps geben Sie den Git-Branch an, in dem Sie die Konfiguration aktivieren möchten. |
Wählen Sie danach Save aus.
Verbindungskonfiguration
Wählen Sie im daraufhin geöffneten Fenster Connection Configuration die Option Passthru connection und dann Save aus. Der Connector fängt an, die Daten in die Warteschlange einzureihen.
Bestätigen der Datenerfassung
Sobald die Daten in der Tabelle erscheinen, bestätigen Sie durch Überprüfen der Zeilenanzahl die Datenübertragung:
<Tablename> | count
Bestätigen Sie die Erfassungen, die in den letzten fünf Minuten in die Warteschlange eingereiht wurden:
.show commands-and-queries | where Database == "" and CommandType == "DataIngestPull" | where LastUpdatedOn >= ago(5m)
Vergewissern Sie sich, dass der Erfassungsprozess keine Fehler aufweist:
- Für Batchverarbeitung:
.show ingestion failures
- Für Streaming:
.show streamingingestion failures | order by LastFailureOn desc
Überprüfen Sie Daten in Ihrer Tabelle:
<TableName> | take 10
Abfragebeispiele und einen Abfrageleitfaden finden Sie unter Schreiben von Abfragen in KQL und unter Dokumentation zur Kusto-Abfragesprache.