[Veraltet] Verwenden von Logstash zum Streamen von Protokollen mit der HTTP-Datensammlungs-API (Legacy)
Wichtig
Die Protokollsammlung aus vielen Appliances und Geräten wird jetzt vom Common Event Format (CEF) über AMA, Syslog über AMA oder benutzerdefinierte Protokolle über den AMA-Datenconnector in Microsoft Sentinel unterstützt. Weitere Informationen finden Sie unter Suchen Ihres Microsoft Sentinel-Datenconnectors.
Wichtig
Die Datenerfassung mithilfe des Logstash-Ausgabe-Plug-Ins befindet sich zurzeit in der öffentlichen Vorschauphase. Dieses Feature wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Hinweis
Eine neuere Version des Logstash-Plug-Ins kann Protokolle aus externen Datenquellen über die auf Datensammlungsregeln basierende API in benutzerdefinierte und Standardtabellen weiterleiten. Das neue Plug-In ermöglicht die vollständige Kontrolle über das Ausgabeschema, darunter auch über die Konfiguration der Spaltennamen und -typen.
Mithilfe des Ausgabe-Plug-Ins von Microsoft Sentinel für die Logstash-Datensammlungs-Engine können Sie nun jeden gewünschten Protokolltyp über Logstash direkt an Ihren Log Analytics-Arbeitsbereich in Microsoft Sentinel senden. Ihre Protokolle werden an eine benutzerdefinierte Tabelle gesendet, die Sie mithilfe des Ausgabe-Plug-Ins festlegen. Diese Version des Plug-Ins verwendet die HTTP-Datensammlungs-API.
Weitere Informationen zum Arbeiten mit der Logstash-Datensammlungs-Engine finden Sie unter Erste Schritte mit Logstash.
Übersicht
Architektur und Hintergrund
Die Logstash-Engine besteht aus drei Komponenten:
- Eingabe-Plug-Ins: Angepasste Sammlung von Daten aus verschiedenen Quellen.
- Filter-Plug-Ins: Bearbeitung und Normalisierung von Daten gemäß angegebener Kriterien.
- Ausgabe-Plug-Ins: Angepasstes Senden gesammelter und verarbeiteter Daten an verschiedene Ziele.
Hinweis
Microsoft unterstützt nur das von Microsoft Sentinel bereitgestellte Logstash-Ausgabe-Plug-In, das hier beschrieben wird. Die aktuelle Version dieses Plug-Ins ist v1.0.0, veröffentlicht am 25.08.2020. Für Probleme im Zusammenhang mit dem Ausgabe-Plug-In können Sie ein Supportticket erstellen.
Logstash-Ausgabe-Plug-Ins von Drittanbietern für Microsoft Sentinel, andere Logstash-Plug-Ins oder Komponenten eines anderen Typs werden von Microsoft nicht unterstützt.
Das Logstash-Ausgabe-Plug-In von Microsoft Sentinel unterstützt nur Logstash-Versionen von 7.0 bis 7.17.10 und von 8.0 bis 8.9 sowie 8.11. Wenn Sie Logstash 8 verwenden, wird empfohlen, Elastic Common Schema (ECS) in der Pipeline zu deaktivieren.
Das Microsoft Sentinel-Ausgabe-Plug-In für Logstash sendet JSON-formatierte Daten mithilfe der HTTP-Datensammler-REST-API von Log Analytics an Ihren Log Analytics-Arbeitsbereich. Die Daten werden in benutzerdefinierten Protokollen erfasst.
- Erfahren Sie mehr über die Log Analytics-REST-API.
- Erfahren Sie mehr über benutzerdefinierte Protokolle.
Bereitstellen des Microsoft Sentinel-Ausgabe-Plug-Ins in Logstash
Schritt 1: Installation
Das Microsoft Sentinel-Ausgabe-Plug-In ist in der Logstash-Sammlung verfügbar.
Befolgen Sie die Anweisungen im Logstash-Dokument zum Arbeiten mit Plug-Ins, um das Plug-In microsoft-logstash-output-azure-loganalytics zu installieren.
Wenn Ihr Logstash-System keinen Internetzugriff hat, folgen Sie den Anweisungen im Logstash-Dokument zur Offline-Plug-In-Verwaltung, um ein Offline-Plug-In-Paket vorzubereiten und zu verwenden. (Dazu müssen Sie ein weiteres Logstash-System mit Internetzugriff erstellen.)
Schritt 2: Konfiguration
Fügen Sie anhand der Informationen im Logstash-Dokument zur Struktur einer Konfigurationsdatei das Microsoft Sentinel-Ausgabe-Plug-In mit den folgenden Schlüsseln und Werten zur Konfiguration hinzu: (Die ordnungsgemäße Konfigurationsdateisyntax ist unterhalb der Tabelle angegeben.)
Feldname | Datentyp | Beschreibung |
---|---|---|
workspace_id |
Zeichenfolge | Geben Sie die ID-GUID Ihres Arbeitsbereichs ein (siehe Tipp). |
workspace_key |
Zeichenfolge | Geben Sie die GUID für den Primärschlüssel des Arbeitsbereichs ein (siehe Tipp). |
custom_log_table_name |
Zeichenfolge | Legen Sie den Namen der Tabelle fest, in der die Protokolle erfasst werden. Es kann nur ein Tabellenname pro Ausgabe-Plug-In konfiguriert werden. Die Protokolltabelle wird in Microsoft Sentinel im Bereich Protokolle unter Tabellen in der Kategorie Benutzerdefinierte Protokolle mit dem Suffix _CL angezeigt. |
endpoint |
Zeichenfolge | Optionales Feld. Dies ist standardmäßig der Log Analytics-Endpunkt. Verwenden Sie dieses Feld, um einen alternativen Endpunkt festzulegen. |
time_generated_field |
Zeichenfolge | Optionales Feld. Diese Eigenschaft überschreibt das standardmäßige Feld TimeGenerated in Log Analytics. Geben Sie den Namen des Zeitstempelfelds in der Datenquelle ein. Die Daten im Feld müssen dem ISO 8601-Format (YYYY-MM-DDThh:mm:ssZ ) entsprechen. |
key_names |
array | Geben Sie eine Liste der Ausgabeschemafelder in Log Analytics ein. Jedes Listenelement muss in einfache Anführungszeichen eingeschlossen, die Elemente müssen durch Kommas getrennt und die gesamte Liste muss in eckige Klammern eingeschlossen werden. Ein Beispiel sehen Sie unten. |
plugin_flush_interval |
number | Optionales Feld. Geben Sie einen Wert an, um das maximale Intervall (in Sekunden) zwischen den Nachrichtenübertragungen an Log Analytics zu definieren. Der Standardwert ist 5. |
amount_resizing |
boolean | „true“ oder „false“. Aktivieren oder deaktivieren Sie den automatischen Skalierungsmechanismus, der die Größe des Nachrichtenpuffers entsprechend der Menge der empfangenen Protokolldaten anpasst. |
max_items |
number | Optionales Feld. Gilt nur, wenn amount_resizing auf „false“ festgelegt ist. Hiermit können Sie eine Obergrenze für die Nachrichtenpuffergröße (in Datensätzen) festlegen. Der Standardwert ist „2000“. |
azure_resource_id |
Zeichenfolge | Optionales Feld. Definiert die ID der Azure-Ressource, in der sich die Daten befinden. Der Wert der Ressourcen-ID ist besonders hilfreich, wenn Sie die rollenbasierte Zugriffssteuerung (RBAC) im Ressourcenkontext verwenden, um nur Zugriff auf bestimmte Daten bereitzustellen. |
Tipp
- Sie finden die Arbeitsbereichs-ID und den Primärschlüssel in der Arbeitsbereichsressource unter Agent-Verwaltung.
- Da die Speicherung von Anmeldeinformationen und anderen vertraulichen Informationen in Klartext in Konfigurationsdateien jedoch nicht den bewährten Sicherheitspraktiken entspricht, wird Ihnen dringend empfohlen, den Logstash-Schlüsselspeicher zu verwenden, um Ihre Arbeitsbereichs-ID und den Primärschlüssel des Arbeitsbereichs sicher in die Konfiguration aufzunehmen. Eine Anleitung hierzu finden Sie in der Dokumentation zu Elastic.
Beispielkonfigurationen
Hier sind einige Beispielkonfigurationen, in denen einige verschiedene Optionen verwendet werden.
Eine einfache Konfiguration, die eine Filebeat-Eingabepipe verwendet:
input { beats { port => "5044" } } filter { } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<your workspace id>" workspace_key => "<your workspace key>" custom_log_table_name => "tableName" } }
Eine einfache Konfiguration, die eine TCP-Eingabepipe verwendet:
input { tcp { port => "514" type => syslog #optional, will effect log type in table } } filter { } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<your workspace id>" workspace_key => "<your workspace key>" custom_log_table_name => "tableName" } }
Eine erweiterte Konfiguration:
input { tcp { port => 514 type => syslog } } filter { grok { match => { "message" => "<%{NUMBER:PRI}>1 (?<TIME_TAG>[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}T[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})[^ ]* (?<HOSTNAME>[^ ]*) %{GREEDYDATA:MSG}" } } } output { microsoft-logstash-output-azure-loganalytics { workspace_id => "<WS_ID>" workspace_key => "${WS_KEY}" custom_log_table_name => "logstashCustomTable" key_names => ['PRI','TIME_TAG','HOSTNAME','MSG'] plugin_flush_interval => 5 } }
Eine erweiterte Konfiguration zum Analysieren eines benutzerdefinierten Zeitstempels und einer JSON-Zeichenfolge aus unstrukturierten Textdaten und zum Protokollieren einer ausgewählten Gruppe von Feldern in Log Analytics mit dem extrahierten Zeitstempel:
# Example log line below: # Mon Nov 07 20:45:08 2022: { "name":"_custom_time_generated", "origin":"test_microsoft", "sender":"test@microsoft.com", "messages":1337} # take an input input { file { path => "/var/log/test.log" } } filter { # extract the header timestamp and the Json section grok { match => { "message" => ["^(?<timestamp>.{24}):\s(?<json_data>.*)$"] } } # parse the extracted header as a timestamp date { id => 'parse_metric_timestamp' match => [ 'timestamp', 'EEE MMM dd HH:mm:ss yyyy' ] timezone => 'Europe/Rome' target => 'custom_time_generated' } json { source => "json_data" } } # output to a file for debugging (optional) output { file { path => "/tmp/test.txt" codec => line { format => "custom format: %{message} %{custom_time_generated} %{json_data}"} } } # output to the console output for debugging (optional) output { stdout { codec => rubydebug } } # log into Log Analytics output { microsoft-logstash-output-azure-loganalytics { workspace_id => '[REDACTED]' workspace_key => '[REDACTED]' custom_log_table_name => 'RSyslogMetrics' time_generated_field => 'custom_time_generated' key_names => ['custom_time_generated','name','origin','sender','messages'] } }
Hinweis
Besuchen Sie das GitHub-Repository für Ausgabe-Plug-Ins, um mehr über seine innere Funktionsweise, Konfiguration und Leistungseinstellungen zu erfahren.
Schritt 3: Neustarten von Logstash
Schritt 4: Anzeigen eingehender Protokolle in Microsoft Sentinel
Überprüfen Sie, ob Nachrichten an das Ausgabe-Plug-In gesendet werden.
Klicken Sie im Microsoft Sentinel-Navigationsmenü auf Protokolle. Erweitern Sie unter der Überschrift Tabellen die Kategorie Benutzerdefinierte Protokolle. Suchen Sie den Namen der von Ihnen in der Konfiguration angegebenen Tabelle (mit dem Suffix
_CL
), und klicken Sie darauf.Zum Anzeigen von Datensätzen in der Tabelle fragen Sie die Tabelle ab. Verwenden Sie dazu den Tabellennamen als Schema.
Überwachen der Ausgabe-Plug-In-Überwachungsprotokolle
Zum Überwachen der Konnektivität und Aktivität des Microsoft Sentinel-Ausgabe-Plug-Ins aktivieren Sie die entsprechende Logstash-Protokolldatei. Informationen zum Speicherort der Protokolldatei finden Sie im Dokument zum Logstash-Verzeichnislayout.
Wenn in dieser Protokolldatei keine Daten angegeben sind, 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.
Nächste Schritte
In diesem Dokument haben Sie erfahren, wie Sie Logstash zum Verbinden externer Datenquellen mit Microsoft Sentinel verwenden. Weitere Informationen zu Microsoft Sentinel finden Sie in den folgenden Artikeln:
- Erfahren Sie, wie Sie Einblick in Ihre Daten und potenzielle Bedrohungen erhalten.
- Beginnen Sie mit Erkennung von Bedrohungen mithilfe von Microsoft Sentinel.