Erfassen von Daten aus Logstash in Azure Data Explorer

Wichtig

Dieser Connector kann in Echtzeitanalyse in Microsoft Fabric verwendet werden. Verwenden Sie die Anweisungen in diesem Artikel mit den folgenden Ausnahmen:

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

Erstellen einer Tabelle

Wenn Sie über einen Cluster und eine Datenbank verfügen, können Sie als Nächstes eine Tabelle erstellen.

  1. Führen Sie in Ihrem Datenbank-Abfragefenster den folgenden Befehl aus, um eine Tabelle erstellen:

    .create table logs (timestamp: datetime, message: string)
    
  2. 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 Logstash-Stammverzeichnis, 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.

  1. Bearbeiten Sie eine neue Textdatei, um sie mit den erforderlichen Pipelineeinstellungen zu versehen (mithilfe von vi):

    vi test.conf
    
  2. 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

Jetzt können Sie Logstash ausführen und unsere Einstellungen testen.

  1. Navigieren Sie in einer Befehlsshell zum Logstash-Stammverzeichnis, 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.

  2. 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
    
  3. 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