Stream Protokolle mit logstash- und DCR-basierten API Microsoft Sentinel

Wichtig

Die Datenerfassung mithilfe des Logstash-Ausgabe-Plug-Ins mit Datensammlungsregeln (Data Collection Rules, DCRs) befindet sich derzeit in der öffentlichen Vorschauphase. Dieses Feature wird ohne Vereinbarung zum Servicelevel bereitgestellt. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbedingungen für Microsoft Azure-Vorschauversionen.

das Logstash-Ausgabe-Plug-In von Microsoft Sentinel unterstützt Pipelinetransformationen und erweiterte Konfigurationen über Datensammlungsregeln (Data Collection Rules, DCRs). Das Plug-In leitet Protokolle aus externen Datenquellen an benutzerdefinierte oder Standardtabellen in Log Analytics oder Microsoft Sentinel weiter.

In diesem Artikel erfahren Sie, wie Sie das Logstash-Plug-In einrichten, um Daten mithilfe von DCRs in Log Analytics oder Microsoft Sentinel mit vollständiger Kontrolle über das Ausgabeschema zu streamen.

Mit dem Plug-In haben Sie folgende Möglichkeiten:

  • Steuern Sie die Konfiguration der Spaltennamen und -typen.
  • Führen Sie Erfassungszeittransformationen wie Filtern oder Anreicherung durch.
  • Erfassen Sie benutzerdefinierte Protokolle in einer benutzerdefinierten Tabelle, oder erfassen Sie einen Syslog-Eingabedatenstrom in der Log Analytics-Syslog-Tabelle.

Die Erfassung in Standardtabellen ist nur auf Standardtabellen beschränkt, die für die erfassung benutzerdefinierter Protokolle unterstützt werden.

Weitere Informationen zum Arbeiten mit der Logstash-Datensammlungs-Engine finden Sie unter Erste Schritte mit Logstash.

Architekturübersicht

Diagramm der Logstash-Architektur mit Eingabe-, Filter- und Ausgabe-Plug-In-Phasen, die Daten über die Protokollerfassungs-API an Log Analytics senden.

Die Logstash-Engine besteht aus drei Komponenten:

  • Eingabe-Plug-Ins: Angepasste Sammlung von Daten aus verschiedenen Quellen.
  • Filter-Plug-Ins: Manipulation und Normalisierung von Daten nach angegebenen Kriterien.
  • Ausgabe-Plug-Ins: Angepasstes Senden von gesammelten und verarbeiteten Daten an verschiedene Ziele.

Hinweis

  • Microsoft unterstützt nur das Microsoft Sentinel bereitgestellte Logstash-Ausgabe-Plug-In, das hier erläutert wird. Das aktuelle Plug-In ist microsoft-sentinel-log-analytics-logstash-output-plugin, v2.1.0. Sie können ein Supportticket für alle Probleme im Zusammenhang mit dem Ausgabe-Plug-In öffnen.
  • Microsoft unterstützt keine Logstash-Ausgabe-Plug-Ins von Drittanbietern für Microsoft Sentinel oder andere Logstash-Plug-Ins oder -Komponenten jeglicher Art.
  • Lesen Sie die Voraussetzungen für die Unterstützung der Logstash-Version des Plug-Ins.

Das Plug-In sendet JSON-formatierte Daten mithilfe der Protokollerfassungs-API an Ihren Log Analytics-Arbeitsbereich. Die Daten werden in benutzerdefinierten Protokollen oder einer Standardtabelle erfasst.

Bereitstellen des Microsoft Sentinel-Ausgabe-Plug-Ins in Logstash

Führen Sie die folgenden Schritte aus, um das Plug-In einzurichten:

  • Überprüfen der Voraussetzungen
  • Installieren des Plug-Ins
  • Erstellen einer Beispieldatei
  • Erstellen der erforderlichen DCR-bezogenen Ressourcen
  • Konfigurieren der Logstash-Konfigurationsdatei
  • Logstash neu starten
  • Anzeigen eingehender Protokolle in Microsoft Sentinel
  • Überwachungsprotokolle des Ausgabe-Plug-Ins überwachen

Voraussetzungen für das Logstash-Plug-In

  • Installieren Sie eine unterstützte Version von Logstash. Das Plug-In unterstützt die folgenden Logstash-Versionen:

    • 7.0 - 7.17.13
    • 8.0 - 8.9
    • 8.11 - 8.15
    • 8.19.2
    • 9.0.8
    • 9.1.10
    • 9.2.4 - 9.2.5

    Hinweis

    Wenn Sie Logstash 8 verwenden, wird empfohlen, ECS in der Pipeline zu deaktivieren.

  • Vergewissern Sie sich, dass Sie über einen Log Analytics-Arbeitsbereich mit mindestens Mitwirkender Rechten verfügen.

  • Vergewissern Sie sich, dass Sie über Berechtigungen zum Erstellen von DCR-Objekten im Arbeitsbereich verfügen.

Installieren des Plug-Ins

Das Microsoft Sentinel Ausgabe-Plug-In ist in der Logstash-Sammlung auf RubyGems verfügbar.

  • Befolgen Sie die Anweisungen im Logstash-Dokument Arbeiten mit Plug-Ins , um das Plug-In microsoft-sentinel-logstash-output-plugin zu installieren. Führen Sie zum Installieren in einer vorhandenen Logstash-Installation den folgenden Befehl aus:

    logstash-plugin install microsoft-sentinel-log-analytics-logstash-output-plugin
    
  • Wenn Ihr Logstash-System keinen Internetzugriff hat, befolgen Sie die Anweisungen im Dokument Logstash Offline Plug-In-Verwaltung , um ein Offline-Plug-In-Paket vorzubereiten und zu verwenden. (Dazu muss ein weiteres Logstash-System mit Internetzugriff erstellt werden.)

Erstellen einer Beispieldatei

In diesem Abschnitt erstellen Sie eine Beispieldatei in einem der folgenden Szenarien:

  • Erstellen einer Beispieldatei für benutzerdefinierte Protokolle
  • Erstellen einer Beispieldatei zum Erfassen von Protokollen in der Syslog-Tabelle

Erstellen einer Beispieldatei für benutzerdefinierte Protokolle

In diesem Szenario konfigurieren Sie das Logstash-Eingabe-Plug-In so, dass Ereignisse an Microsoft Sentinel gesendet werden. In diesem Beispiel wird das Generatoreingabe-Plug-In verwendet, um Ereignisse zu simulieren. Sie können jedes andere Eingabe-Plug-In verwenden.

In diesem Beispiel sieht die Logstash-Konfigurationsdatei wie folgt aus:

input {
      generator {
            lines => [
                 "This is a test log message"
            ]
           count => 10
      }
}

Führen Sie die folgenden Schritte aus, um die Beispieldatei zu erstellen:

  1. Kopieren Sie die folgende Ausgabe-Plug-In-Konfiguration in Ihre Logstash-Konfigurationsdatei.

    output {
        microsoft-sentinel-log-analytics-logstash-output-plugin {
          create_sample_file => true
          sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. 
        }
    }
    
  2. Stellen Sie sicher, dass der Dateipfad, auf den verwiesen wird, bereits vorhanden ist, und starten Sie dann Logstash.

    Das Plug-In schreibt zehn Datensätze in eine Beispieldatei namens sampleFile<epoch seconds>.json im konfigurierten Pfad, sobald 10 Ereignisse zum Beispiel vorhanden sind oder wenn der Logstash-Prozess ordnungsgemäß beendet wird. Beispiel: c:\temp\sampleFile1648453501.json. Hier sehen Sie einen Teil einer Beispieldatei, die das Plug-In erstellt:

    [
            {
                "host": "logstashMachine",
                "sequence": 0,
                "message": "This is a test log message",
                "ls_timestamp": "2022-03-28T17:45:01.690Z",
                "ls_version": "1"
            },
            {
                "host": "logstashMachine",
                "sequence": 1
        ...
    
        ]    
    

    Das Plug-In fügt automatisch diese Eigenschaften zu jedem Datensatz hinzu:

    • ls_timestamp: Der Zeitpunkt, zu dem der Datensatz vom Eingabe-Plug-In empfangen wird
    • ls_version: Die Logstash-Pipelineversion.

    Sie können diese Felder entfernen, wenn Sie den DCR erstellen.

Erstellen einer Beispieldatei zum Erfassen von Protokollen in der Syslog-Tabelle

In diesem Szenario konfigurieren Sie das Logstash-Eingabe-Plug-In so, dass Syslog-Ereignisse an Microsoft Sentinel gesendet werden.

  1. Wenn Sie noch keine Syslog-Nachrichten an Ihren Logstash-Computer weitergeleitet haben, können Sie den Protokollierungsbefehl verwenden, um Nachrichten zu generieren. Beispiel (für Linux):

    logger -p local4.warn --rfc3164 --tcp -t CEF "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example" -P 514 -d -n 127.0.0.1
    

    Hier ist ein Beispiel für das Logstash-Eingabe-Plug-In:

    input {
         syslog {
             port => 514
        }
    }
    
  2. Kopieren Sie die folgende Ausgabe-Plug-In-Konfiguration in Ihre Logstash-Konfigurationsdatei.

    output {
        microsoft-sentinel-log-analytics-logstash-output-plugin {
          create_sample_file => true
          sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. 
        }
    }
    
  3. Stellen Sie sicher, dass der Dateipfad bereits vorhanden ist, und starten Sie dann Logstash.

    Das Plug-In schreibt zehn Datensätze in eine Beispieldatei namens sampleFile<epoch seconds>.json im konfigurierten Pfad, sobald 10 Ereignisse zum Beispiel vorhanden sind oder wenn der Logstash-Prozess ordnungsgemäß beendet wird. Beispiel: c:\temp\sampleFile1648453501.json. Hier sehen Sie einen Teil einer Beispieldatei, die das Plug-In erstellt:

    [
            {
                "logsource": "logstashMachine",
                "facility": 20,
                "severity_label": "Warning",
                "severity": 4,
                "timestamp": "Apr  7 08:26:04",
                "program": "CEF:",
                "host": "127.0.0.1",
                "facility_label": "local4",
                "priority": 164,
                "message": "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example",
                "ls_timestamp": "2022-04-07T08:26:04.000Z",
                "ls_version": "1"
            }
    ]    
    
    

    Das Plug-In fügt automatisch diese Eigenschaften zu jedem Datensatz hinzu:

    • ls_timestamp: Der Zeitpunkt, zu dem der Datensatz vom Eingabe-Plug-In empfangen wird
    • ls_version: Die Logstash-Pipelineversion.

    Sie können diese Felder entfernen, wenn Sie den DCR erstellen.

Erstellen der erforderlichen DCR-Ressourcen

Um das Microsoft Sentinel DCR-basiertes Logstash-Plug-In zu konfigurieren, erstellen Sie zuerst die DCR-bezogenen Ressourcen.

In diesem Abschnitt erstellen Sie Ressourcen, die für Ihre DCR in einem der folgenden Szenarien verwendet werden sollen:

  • Erstellen von DCR-Ressourcen für die Erfassung in einer benutzerdefinierten Tabelle
  • Erstellen von DCR-Ressourcen für die Erfassung in einer Standardtabelle

Erstellen von DCR-Ressourcen für die Erfassung in einer benutzerdefinierten Tabelle

Führen Sie zum Erfassen der Daten in einer benutzerdefinierten Tabelle die folgenden Schritte aus (basierend auf dem Tutorial Senden von Daten an Azure Überwachen von Protokollen mithilfe der REST-API (Azure-Portal):

  1. Überprüfen Sie die Voraussetzungen.

  2. Konfigurieren Sie die Anwendung.

  3. Fügen Sie eine benutzerdefinierte Protokolltabelle hinzu.

  4. Analysieren und filtern Sie Beispieldaten mithilfe der Beispieldatei, die Sie im vorherigen Abschnitt erstellt haben.

  5. Sammeln Sie Informationen aus dem DCR.

  6. Weisen Sie dem DCR Berechtigungen zu.

    Überspringen Sie den Schritt Beispieldaten senden.

Wenn Probleme auftreten, lesen Sie die Schritte zur Problembehandlung.

Erstellen von DCR-Ressourcen für die Erfassung in einer Standardtabelle

Um die Daten in einer Standardtabelle wie Syslog oder CommonSecurityLog zu erfassen, verwenden Sie einen Prozess, der auf dem Tutorial Senden von Daten an Azure Überwachen von Protokollen mithilfe der REST-API (Resource Manager-Vorlagen) basiert. In diesem Tutorial wird zwar erläutert, wie Daten in einer benutzerdefinierten Tabelle erfasst werden, Sie können den Prozess jedoch problemlos anpassen, um Daten in einer Standardtabelle zu erfassen. Die folgenden Schritte zeigen relevante Änderungen in den Schritten an.

  1. Überprüfen Sie die Voraussetzungen.

  2. Erfassen von Arbeitsbereichsdetails.

  3. Konfigurieren sie eine Anwendung.

    Überspringen Sie den Schritt Neue Tabelle im Log Analytics-Arbeitsbereich erstellen. Dieser Schritt ist beim Erfassen von Daten in einer Standardtabelle nicht relevant, da die Tabelle bereits in Log Analytics definiert ist.

  4. Erstellen Sie den DCR. In diesem Schritt:

    • Geben Sie die Beispieldatei an, die Sie im vorherigen Abschnitt erstellt haben.
    • Verwenden Sie die von Ihnen erstellte Beispieldatei, um die streamDeclarations -Eigenschaft zu definieren. Jedes der Felder in der Beispieldatei sollte über eine entsprechende Spalte mit demselben Namen und dem entsprechenden Typ verfügen (siehe beispiel unten).
    • Konfigurieren Sie den Wert der outputStream Eigenschaft mit dem Namen der Standardtabelle anstelle der benutzerdefinierten Tabelle. Im Gegensatz zu benutzerdefinierten Tabellen haben Standardtabellennamen nicht das _CL Suffix.
    • Das Präfix des Tabellennamens sollte anstelle von Custom-seinMicrosoft-. In diesem Beispiel ist Microsoft-Syslogder outputStream -Eigenschaftswert .
  5. Weisen Sie einem DCR Berechtigungen zu.

    Überspringen Sie den Schritt Beispieldaten senden.

Wenn Probleme auftreten, lesen Sie die Schritte zur Problembehandlung.

Beispiel: DCR zum Erfassen von Daten in der Syslog-Tabelle

Beachten Sie diese Punkte:

  • Die streamDeclarations Spaltennamen und -typen sollten mit den Beispieldateifeldern identisch sein, aber Sie müssen nicht alle angeben. Im folgenden DCR werden beispielsweise die PRIFelder , type und ls_version in der streamDeclarations Spalte weggelassen.
  • Die dataflows -Eigenschaft transformiert die Eingabe in das Syslog-Tabellenformat und legt den outputStream auf fest Microsoft-Syslog.
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "dataCollectionRuleName": {
      "type": "String",
      "metadata": {
        "description": "Specifies the name of the Data Collection Rule to create."
      }
    },
    "location": {
      "defaultValue": "[resourceGroup().location]",
      "type": "String",
      "metadata": {
        "description": "Specifies the location in which to create the Data Collection Rule."
      }
    },
    "workspaceResourceId": {
      "type": "String",
      "metadata": {
        "description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Insights/dataCollectionRules",
      "apiVersion": "2021-09-01-preview",
      "name": "[parameters('dataCollectionRuleName')]",
      "location": "[parameters('location')]",
      "properties": {
        "streamDeclarations": {
          "Custom-SyslogStream": {
            "columns": [
              { "name": "ls_timestamp", "type": "datetime" },
              { "name": "timestamp", "type": "datetime" },
              { "name": "message", "type": "string" },
              { "name": "facility_label", "type": "string" },
              { "name": "severity_label", "type": "string" },
              { "name": "host", "type": "string" },
              { "name": "logsource", "type": "string" }
            ]
          }
        },
        "destinations": {
          "logAnalytics": [
            {
              "workspaceResourceId": "[parameters('workspaceResourceId')]",
              "name": "clv2ws1"
            }
          ]
        },
        "dataFlows": [
          {
            "streams": ["Custom-SyslogStream"],
            "destinations": ["clv2ws1"],
            "transformKql": "source | project TimeGenerated = ls_timestamp, EventTime = todatetime(timestamp), Computer = logsource, HostName = logsource, HostIP = host, SyslogMessage = message, Facility = facility_label, SeverityLevel = severity_label",
            "outputStream": "Microsoft-Syslog"
          }
        ]
      }
    }
  ],
  "outputs": {
    "dataCollectionRuleId": {
      "type": "String",
      "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
    }
  }
}

Konfigurieren der Logstash-Konfigurationsdatei

Das Plug-In unterstützt zwei Authentifizierungsmethoden: Dienstprinzipal (Clientanmeldeinformationen) und verwaltete Identität (kennwortlos). Wählen Sie die Methode aus, die zu Ihrer Umgebung passt.

Dienstprinzipalauthentifizierung

Um die Logstash-Konfigurationsdatei so zu konfigurieren, dass die Protokolle mithilfe der Dienstprinzipalauthentifizierung in einer benutzerdefinierten Tabelle erfasst werden, rufen Sie die folgenden Werte ab:

Feld Abrufen
client_app_Id Der Application (client) ID Wert, den Sie in Schritt 3 erstellt haben, wenn Sie die DCR-Ressourcen gemäß dem Tutorial erstellen, das Sie in diesem Abschnitt verwendet haben.
client_app_secret Der Wert des geheimen Clientschlüssels, den Sie in Schritt 5 beim Erstellen der DCR-Ressourcen erstellen, gemäß dem Tutorial, das Sie in diesem Abschnitt verwendet haben.
tenant_id Die Mandanten-ID Ihres Abonnements. Die Mandanten-ID finden Sie unter Home > Microsoft Entra ID > Übersicht > Grundlegende Informationen.
data_collection_endpoint Der Wert des logsIngestion URI in Schritt 3 beim Erstellen der DCR-Ressourcen gemäß dem Tutorial, das Sie in diesem Abschnitt verwendet haben.
dcr_immutable_id Der Wert der DCR immutableId in Schritt 6 beim Erstellen der DCR-Ressourcen gemäß dem Tutorial, das Sie in diesem Abschnitt verwendet haben.
dcr_stream_name Wechseln Sie für benutzerdefinierte Tabellen, wie in Schritt 6 beim Erstellen der DCR-Ressourcen erläutert, zur JSON-Ansicht des DCR, und kopieren Sie die dataFlows>streams -Eigenschaft. dcr_stream_name Weitere Informationen finden Sie im folgenden Beispiel. Für Standardtabellen ist Custom-SyslogStreamder Wert .

Nachdem Sie die erforderlichen Werte abgerufen haben:

  1. Ersetzen Sie den Ausgabeabschnitt der Logstash-Konfigurationsdatei, die Sie im vorherigen Schritt erstellt haben, durch das folgende Beispiel.
  2. Ersetzen Sie die Platzhalterzeichenfolgen im folgenden Beispiel durch die werte, die Sie abgerufen haben.
  3. Stellen Sie sicher, dass Sie das create_sample_file Attribut in falseändern.
Beispiel: Konfiguration des Dienstprinzipal-Ausgabe-Plug-Ins
output {
    microsoft-sentinel-log-analytics-logstash-output-plugin {
      client_app_Id => "<enter your client_app_id value here>"
      client_app_secret => "<enter your client_app_secret value here>"
      tenant_id => "<enter your tenant id here>"
      data_collection_endpoint => "<enter your logsIngestion URI here>"
      dcr_immutable_id => "<enter your DCR immutableId here>"
      dcr_stream_name => "<enter your stream name here>"
      create_sample_file=> false
      sample_file_path => "c:\\temp"
    }
}

Authentifizierung mit verwalteter Identität (kennwortlos)

Wenn managed_identity auf truefestgelegt ist, wird das Plug-In ohne einen geheimen Clientschlüssel authentifiziert. Das Plug-In erkennt den entsprechenden Identitätsmechanismus zur Laufzeit automatisch in der folgenden Reihenfolge:

  1. AKS-Workloadidentität – Wenn die Umgebungsvariablen AZURE_CLIENT_ID, AZURE_TENANT_IDund AZURE_FEDERATED_TOKEN_FILE vorhanden sind (automatisch von AKS festgelegt), führt das Plug-In einen OIDC-Tokenaustausch aus.
  2. Azure Arc : Wenn der Azure Connected Machine-Agent (azcmagent) auf dem Host erkannt wird, verwendet das Plug-In den Endpunkt der verwalteten Azure Arc-Identität für Hybridserver und lokale Server.
  3. IMDS– Andernfalls greift das Plug-In auf den Azure Instance Metadata Service (IMDS) für Azure VMs und VMSS zurück.

Erforderliche Konfiguration für die verwaltete Identität:

Feld Beschreibung
managed_identity Standardmäßig boolescher false Wert. Legen Sie auf fest true , um die kennwortlose Authentifizierung zu aktivieren.
data_collection_endpoint Zeichenfolge. Der logsIngestion-URI für Ihren DCE.
dcr_immutable_id Zeichenfolge. Die DCR immutableId.
dcr_stream_name Zeichenfolge. Der Name des Datenstroms.
managed_identity_object_id Optional. Zeichenfolge, standardmäßig leer. Die Objekt-ID einer benutzerseitig zugewiesenen verwalteten Identität. Erforderlich, wenn der virtuelle Computer über mehrere benutzerseitig zugewiesene Identitäten verfügt. Weglassen für systemseitig zugewiesene verwaltete Identität.
Beispiel: Systemseitig zugewiesene verwaltete Identität
output {
    microsoft-sentinel-log-analytics-logstash-output-plugin {
      managed_identity => true
      data_collection_endpoint => "<enter your DCE logsIngestion URI here>"
      dcr_immutable_id => "<enter your DCR immutableId here>"
      dcr_stream_name => "<enter your stream name here>"
    }
}
Beispiel: Benutzerseitig zugewiesene verwaltete Identität
output {
    microsoft-sentinel-log-analytics-logstash-output-plugin {
      managed_identity => true
      managed_identity_object_id => "<enter the object ID of your user-assigned identity>"
      data_collection_endpoint => "<enter your DCE logsIngestion URI here>"
      dcr_immutable_id => "<enter your DCR immutableId here>"
      dcr_stream_name => "<enter your stream name here>"
    }
}

Hinweis

  • Wenn Sie Azure Arc verwenden, muss der Logstash-Prozess als Benutzer ausgeführt werden, der Mitglied der himds Gruppe ist, um das Anforderungstoken zu lesen. Weitere Informationen finden Sie in Azure Dokumentation zur verwalteten Arc-Identität.
  • Geben Sie aus Sicherheitsgründen nicht implizit vertrauliche Konfigurationswerte an, z client_app_secret . B. in Ihrer Logstash-Konfigurationsdatei. Speichern vertraulicher Informationen in einem Logstash-KeyStore.
  • Wenn Sie eine leere Zeichenfolge als Wert für eine Proxyeinstellung festlegen, werden alle systemweiten Proxyeinstellungen aufgehoben.

Optionale Konfiguration

Feld Beschreibung Standardwert
azure_cloud Wird verwendet, um den Namen der Azure Cloud anzugeben, die verwendet wird. Verfügbare Werte sind: AzureCloud, AzureChinaCloudund AzureUSGovernment. AzureCloud
key_names Ein Array mit Zeichenfolgen. Geben Sie dieses Feld an, wenn Sie eine Teilmenge der Spalten an Log Analytics senden möchten. Keine (Feld ist leer)
plugin_flush_interval Definiert den maximalen Zeitunterschied (in Sekunden) zwischen dem Senden von zwei Nachrichten an Log Analytics. 5
retransmission_time Legt die Zeitspanne in Sekunden für die erneute Übertragung von Nachrichten fest, nachdem ein Fehler beim Senden aufgetreten ist. 10
retransmission_delay Die Verzögerung in Sekunden zwischen jedem Wiederholungsversuch beim Senden von Protokolldaten schlägt fehl. Erhöhen Sie diesen Wert, um die Anforderungsrate während Drosselungsszenarien (HTTP 429) zu reduzieren. 2
compress_data Wenn dieses Feld ist True, werden die Ereignisdaten komprimiert, bevor die API verwendet wird. Empfohlen für Pipelines mit hohem Durchsatz. False
proxy Geben Sie an, welche Proxy-URL für alle API-Aufrufe verwendet werden soll. Keine (Feld ist leer)
proxy_aad Geben Sie an, welche Proxy-URL für API-Aufrufe von Microsoft Entra ID verwendet werden soll. Überschreibt die proxy Einstellung. Keine (Feld ist leer)
proxy_endpoint Geben Sie an, welche Proxy-URL für API-Aufrufe an den Datensammlungsendpunkt verwendet werden soll. Überschreibt die proxy Einstellung. Keine (Feld ist leer)

Logstash neu starten

Starten Sie Logstash mit der aktualisierten Ausgabe-Plug-In-Konfiguration neu. Vergewissern Sie sich, dass Daten gemäß Ihrer DCR-Konfiguration in der richtigen Tabelle erfasst werden.

Anzeigen eingehender Protokolle in Microsoft Sentinel

Führen Sie die folgenden Schritte aus, um zu überprüfen, ob Protokolldaten Ihren Arbeitsbereich erreichen:

  1. Vergewissern Sie sich, dass Nachrichten an das Ausgabe-Plug-In gesendet werden.

  2. Wählen Sie im Microsoft Sentinel Navigationsmenü Protokolle aus. Erweitern Sie unter der Überschrift Tabellen die Kategorie Benutzerdefinierte Protokolle . Suchen Sie den Namen der Tabelle, die Sie (mit einem _CL Suffix) in der Konfiguration angegeben haben, und wählen Sie den Namen aus.

    Screenshot der Seite

  3. Um Datensätze in der Tabelle anzuzeigen, fragen Sie die Tabelle ab, indem Sie den Tabellennamen als Schema verwenden.

    Screenshot einer Logstash-Abfrage für benutzerdefinierte Protokolle.

Überwachungsprotokolle des Ausgabe-Plug-Ins überwachen

Um die Konnektivität und Aktivität des Microsoft Sentinel Ausgabe-Plug-Ins zu überwachen, aktivieren Sie die entsprechende Logstash-Protokolldatei. Informationen zum Speicherort der Protokolldatei finden Sie im Dokument Logstash-Verzeichnislayout .

Wenn in dieser Protokolldatei keine Daten angezeigt werden, generieren und senden Sie einige Ereignisse lokal über die Eingabe- und Filter-Plug-Ins, um sicherzustellen, dass das Ausgabe-Plug-In Daten empfängt. Microsoft Sentinel unterstützt nur Probleme im Zusammenhang mit dem Ausgabe-Plug-In.

Netzwerksicherheit

Definieren Sie Netzwerkeinstellungen, und aktivieren Sie die Netzwerkisolation für das Microsoft Sentinel Logstash-Ausgabe-Plug-In.

Diensttags für virtuelle Netzwerke

Microsoft Sentinel Ausgabe-Plug-In unterstützt Azure VNET-Diensttags. Die Tags AzureMonitor und AzureActiveDirectory sind erforderlich.

Azure Virtual Network Diensttags können verwendet werden, um Netzwerkzugriffssteuerungen für Netzwerksicherheitsgruppen, Azure Firewall und benutzerdefinierte Routen zu definieren. Verwenden Sie Diensttags anstelle bestimmter IP-Adressen, wenn Sie Sicherheitsregeln und Routen erstellen. Für Szenarien, in denen Azure Virtual Network Diensttags nicht verwendet werden können, werden die Firewallanforderungen unten angegeben.

Firewallanforderungen

In der folgenden Tabelle sind die Firewallanforderungen für Szenarien aufgeführt, in denen Azure VNET-Diensttags nicht verwendet werden können.

Cloud Endpunkt Zweck Port Richtung HTTPS-Inspektion umgehen
Azure Commercial https://login.microsoftonline.com Autorisierungsserver (Microsoft Identity Platform) Port 443 Ausgehend Ja
Azure Commercial https://<data collection endpoint name>.<Azure cloud region>.ingest.monitor.azure.com Datensammlungsendpunkt Port 443 Ausgehend Ja
Azure Government https://login.microsoftonline.us Autorisierungsserver (Microsoft Identity Platform) Port 443 Ausgehend Ja
Azure Government Ersetzen Sie ".com" oben durch ".us" Datensammlungsendpunkt Port 443 Ausgehend Ja
Microsoft Azure betrieben von 21Vianet https://login.chinacloudapi.cn Autorisierungsserver (Microsoft Identity Platform) Port 443 Ausgehend Ja
Microsoft Azure betrieben von 21Vianet Ersetzen Sie ".com" oben durch ".cn". Datensammlungsendpunkt Port 443 Ausgehend Ja

Plug-In-Versionsverlauf

2.1.0

  • Ereignisnormalisierung korrigiert.

2.0.0

  • Das Plug-In wurde von Ruby zu Java umgestaltet.
  • ManagedIdentity-Authentifizierung hinzugefügt.
  • Codebasis von GitHub in Azure DevOps verschoben.
  • Geschlossene Codebasis.

1.2.0

  • Fügt Authentifizierungsunterstützung für verwaltete Identitäten für Azure VMs/VMSS (systemseitig und benutzerseitig über IMDS) hinzu.
  • Fügt AKS-Workloadidentitätsunterstützung über den OIDC-Tokenaustausch hinzu.
  • Fügt Azure Unterstützung für verwaltete Arc-Identitäten für Hybridserver und lokale Server hinzu.
  • Erkennt die Authentifizierungsmethode zur Laufzeit automatisch basierend auf der Umgebung (Workloadidentitäts-env vars, Arc-Agent oder IMDS-Fallback).
  • Migriert den HTTP-Client von excon zu, rest-client um die Ökosystemkompatibilität des JRuby- und Logstash-Plug-Ins zu verbessern.
  • Benennt Azure Active Directory-Verweise in Microsoft Entra ID um.

1.1.4

  • Beschränkt excon die Bibliotheksversion auf niedriger als 1.0.0, um sicherzustellen, dass der Port immer verwendet wird, wenn ein Proxy verwendet wird.

1.1.3

  • Ersetzt die Bibliothek, die zum Herstellen einer rest-client Verbindung mit Azure verwendet wird, durch die excon Bibliothek.

1.1.1

  • Fügt Unterstützung für Azure Cloud der US-Regierung und microsoft Azure hinzu, die von 21Vianet in China betrieben werden.

1.1.0

  • Ermöglicht das Festlegen verschiedener Proxywerte für API-Verbindungen.
  • Aktualisiert die Version für die Protokollerfassungs-API auf 2023-01-01.
  • Benennt das Plug-In in microsoft-sentinel-log-analytics-logstash-output-plugin um.

1.0.0

  • Die erste Version für das Logstash-Ausgabe-Plug-In für Microsoft Sentinel. Dieses Plug-In verwendet Datensammlungsregeln (Data Collection Rules, DCRs) mit der Protokollerfassungs-API von Azure Monitor.

Bekannte Probleme

Bei Verwendung von Logstash, das auf einem Docker-Image von Lite Ubuntu installiert ist, wird möglicherweise die folgende Warnung angezeigt:

java.lang.RuntimeException: getprotobyname_r failed

Installieren Sie das netbase-Paket in Ihrer Dockerfile-Datei, um diesen Fehler zu beheben:

USER root
RUN apt install netbase -y

Weitere Informationen finden Sie unter JNR-Regression in Logstash 7.17.0 (Docker).

Wenn die Ereignisrate Ihrer Umgebung niedrig ist, erhöhen Sie den Wert von plugin_flush_interval auf 60 oder mehr. Sie können die Erfassungsnutzlast mithilfe von DCR-Metriken überwachen. Weitere Informationen zu plugin_flush_interval finden Sie in der Tabelle Optionale Konfiguration .

Begrenzungen