Erfassen von Daten aus Logstash in Azure Data Explorer
Wichtig
Dieser Connector kann in Echtzeitintelligenz in Microsoft Fabric verwendet werden. Verwenden Sie die Anweisungen in diesem Artikel mit den folgenden Ausnahmen:
- Erstellen Sie bei Bedarf Datenbanken mithilfe der Anweisungen in Erstellen einer KQL-Datenbank.
- Erstellen Sie bei Bedarf Tabellen mithilfe der Anweisungen in Erstellen einer leeren Tabelle.
- Abrufen von Abfrage- oder Erfassungs-URIs mithilfe der Anweisungen in URI kopieren.
- Ausführen von Abfragen in einem KQL-Abfrageset.
Logstash ist eine serverseitige Open-Source-Datenverarbeitungspipeline, die gleichzeitig Daten aus zahlreichen Quellen erfasst, transformiert und anschließend an Ihren bevorzugten Stash sendet. In diesem Artikel werden Sie diese Daten an Azure Data Explorer senden. Dabei handelt es sich um einen schnellen und hochgradig skalierbaren Dienst zur Untersuchung von Protokoll- und Telemetriedaten. Sie erstellen eine Tabelle und eine Datenzuordnung in einem Testcluster und weisen Logstash anschließend an, Daten an die Tabelle zu senden und die Ergebnisse zu überprüfen.
Hinweis
Dieser Connector unterstützt derzeit nur das JSON-Datenformat.
Voraussetzungen
- Ein Microsoft-Konto oder eine Microsoft Entra-Benutzeridentität. Ein Azure-Abonnement ist nicht erforderlich.
- Schnellstart: Erstellen eines Azure Data Explorer-Clusters und einer Datenbank. Erstellen eines Clusters und einer Datenbank
- Mindestens Version 6 von Logstash (Installationsanleitung)
Erstellen einer Tabelle
Wenn Sie über einen Cluster und eine Datenbank verfügen, können Sie als Nächstes eine Tabelle erstellen.
Führen Sie in Ihrem Datenbank-Abfragefenster den folgenden Befehl aus, um eine Tabelle erstellen:
.create table logs (timestamp: datetime, message: string)
Führen Sie den folgenden Befehl aus, um sich zu vergewissern, dass die neue Tabelle
logs
erstellt wurde und leer ist:logs | count
Erstellen einer Zuordnung
Die Zuordnung wird von Azure Data Explorer verwendet, um die eingehenden Daten in das Zieltabellenschema zu transformieren. Der folgende Befehl erstellt eine neue Zuordnung namens basicmsg
, die Eigenschaften aus den eingehenden JSON-Daten (auf der Grundlage von path
) extrahiert und sie in column
ausgibt.
Führen Sie im Abfragefenster den folgenden Befehl aus:
.create table logs ingestion json mapping 'basicmsg' '[{"column":"timestamp","path":"$.@timestamp"},{"column":"message","path":"$.message"}]'
Installieren des Logstash-Ausgabe-Plug-Ins
Das Logstash-Ausgabe-Plug-In kommuniziert mit Azure Data Explorer und sendet die Daten an den Dienst. Weitere Informationen finden Sie unter Logstash-Plug-In.
Navigieren Sie in einer Befehlsshell zum Stammverzeichnis "Logstash", und führen Sie dann den folgenden Befehl aus, um das Plug-In zu installieren:
bin/logstash-plugin install logstash-output-kusto
Konfigurieren von Logstash, um ein Beispieldataset zu generieren
Logstash kann Beispielereignisse zum Testen einer End-to-End-Pipeline generieren. Falls Sie Logstash bereits verwenden und Zugriff auf Ihren eigenen Ereignisdatenstrom haben, fahren Sie direkt mit dem nächsten Abschnitt fort.
Hinweis
Ändern Sie bei Verwendung Ihrer eigenen Daten die Tabelle und die Zuordnungsobjekte, die in den vorherigen Schritten definiert wurden.
Bearbeiten Sie eine neue Textdatei, um sie mit den erforderlichen Pipelineeinstellungen zu versehen (mithilfe von vi):
vi test.conf
Fügen Sie die folgenden Einstellungen ein, um Logstash anzuweisen, 1.000 Testereignisse zu generieren:
input { stdin { } generator { message => "Test Message 123" count => 1000 } }
Diese Konfiguration enthält auch das Eingabe-Plug-In stdin
, das es Ihnen ermöglicht, weitere Nachrichten zu schreiben. (Drücken Sie dieEINGABETASTE, um die Nachrichten an die Pipeline zu übermitteln.)
Konfigurieren von Logstash, um Daten an Azure Data Explorer zu senden
Fügen Sie die folgenden Einstellungen in die Konfigurationsdatei aus dem vorherigen Schritt ein. Ersetzen Sie die Platzhalter jeweils durch die entsprechenden Werte für Ihr Setup. Weitere Informationen finden Sie unter Erstellen einer Microsoft Entra-Anwendung.
output {
kusto {
path => "/tmp/kusto/%{+YYYY-MM-dd-HH-mm-ss}.txt"
ingest_url => "https://ingest-<cluster name>.kusto.windows.net/"
app_id => "<application id>"
app_key => "<application key/secret>"
app_tenant => "<tenant id>"
database => "<database name>"
table => "<target table>" # logs as defined above
json_mapping => "<mapping name>" # basicmsg as defined above
}
}
Parametername | Beschreibung |
---|---|
path | Das Logstash-Plug-In schreibt Ereignisse vor dem Senden an Azure Data Explorer in temporäre Dateien. Dieser Parameter enthält einen Pfad, an dem die Dateien geschrieben werden sollen, sowie einen Zeitausdruck für die Dateirotation, um einen Uploadvorgang an den Azure Data Explorer-Dienst auszulösen. |
ingest_url | Der Kusto-Endpunkt für die erfassungsbezogene Kommunikation. |
app_id, app_key und app_tenant | Anmeldeinformationen für die Verbindungsherstellung mit Azure Data Explorer. Wichtig: Verwenden Sie eine Anwendung mit Erfassungsberechtigungen. |
database | Name der Zieldatenbank für Ereignisse. |
Tabelle | Name der Zieltabelle für Ereignisse. |
json_mapping | Mit dem mapping-Parameter wird die JSON-Zeichenfolge eines eingehenden Ereignisses dem korrekten Zeilenformat zugeordnet (also definiert, welche Eigenschaft in welche Spalte eingefügt wird). |
Ausführen von Logstash
Nun können Sie Logstash ausführen und die Einstellungen testen.
Navigieren Sie in einer Befehlsshell zum Stammverzeichnis "Logstash", und führen Sie dann den folgenden Befehl aus:
bin/logstash -f test.conf
Auf dem Bildschirm sollten Informationen und anschließend die 1.000 durch die Beispielkonfiguration generierten Nachrichten angezeigt werden. An dieser Stelle können Sie manuell weitere Nachrichten eingeben.
Führen Sie nach ein paar Minuten die folgende Data Explorer-Abfrage aus, um die Nachrichten in der von Ihnen definierten Tabelle anzuzeigen:
logs | order by timestamp desc
Drücken Sie STRG+C, um Logstash zu beenden.
Bereinigen von Ressourcen
Führen Sie in Ihrer Datenbank den folgenden Befehl aus, um die Tabelle logs
zu bereinigen:
.drop table logs
Zugehöriger Inhalt
- Write queries (Schreiben von Abfragen)