Kurz gesagt: Der Context Collector vereinigt Informationen, die über verschiedene Nachrichten verstreut sind, die durch Schlüsselwerte identifiziert werden, in einer einzigen neuen Nachricht, was eine einfachere Filterung/Suche ermöglicht und dem Analysten einen schnellen Überblick über mehrzeilige Protokolle gibt.
Häufige Szenarien sind die Vereinheitlichung von mehrzeiligen Meldungen wie E-Mail-Server-Logs, Session Attributions für Cisco ASA VPNs oder Special Privilege Logon Matching in Active Directory Audit Logs. Es benötigt keine zusätzliche Infrastruktur und ist über die Graylog WebUI konfigurierbar. Der Kontextsammler unterstützt auch Cluster-Installationen, bei denen relevante Nachrichten an verschiedenen Nodes ankommen können.
Context Collector für Graylog V4.0
Dieses Plug-in für Graylog sammelt mehrere Felder aus verschiedenen Nachrichten mit einem gemeinsamen Schlüssel oder gemeinsamer ID.
Kosten: kostenlos!
WICHTIG: Der Context Collector darf für die eigene Verwendung kostenlos hier herunter geladen werden. eine Verbreitung durch andere außer der NetUSE AG ist ausdrücklich untersagt!
Context Collector für Graylog V4.1
Dieses Plug-in für Graylog sammelt mehrere Felder aus verschiedenen Nachrichten mit einem gemeinsamen Schlüssel oder gemeinsamer ID.
Kosten: kostenlos!
WICHTIG: Der Context Collector darf für die eigene Verwendung kostenlos hier herunter geladen werden. eine Verbreitung durch andere außer der NetUSE AG ist ausdrücklich untersagt!
Context Collector für Graylog V4.2
Dieses Plug-in für Graylog sammelt mehrere Felder aus verschiedenen Nachrichten mit einem gemeinsamen Schlüssel oder gemeinsamer ID.
Kosten: kostenlos
WICHTIG: Der Context Collector darf für die eigene Verwendung kostenlos hier herunter geladen werden. eine Verbreitung durch andere außer der NetUSE AG ist ausdrücklich untersagt!
Context Collector für Graylog V4.3
Dieses Plug-in für Graylog sammelt mehrere Felder aus verschiedenen Nachrichten mit einem gemeinsamen Schlüssel oder gemeinsamer ID.
Kosten: kostenlos!
WICHTIG: Der Context Collector darf für die eigene Verwendung kostenlos hier herunter geladen werden. eine Verbreitung durch andere außer der NetUSE AG ist ausdrücklich untersagt!
Wie funktioniert es?
Das Plugin wird durch die Konfiguration von so genannten „Collections“ verwendet. Jede Sammlung setzt sich im Kern aus diesen Konfigurationseinstellungen zusammen:
- Liste der Schlüsselfeldnamen
- Liste der Namen der Wertfelder
- timeout in Sekunden
Wenn eine Nachricht, die alle Schlüsselfelder enthält, verarbeitet wird, wird eine neue Sammelposition erstellt. Es wird durch die Werte dieser Felder identifiziert. Von dieser und allen nachfolgenden übereinstimmenden Nachrichten werden die Felder, die einem Wertfeld entsprechen, dem Sammlungselement hinzugefügt, bis alle Felder vorhanden sind (gesammelt) oder in dem durch die Zeitüberschreitung festgelegten Intervall keine Aktualisierung stattgefunden hat. Dann wird eine neue Nachricht erstellt, die die gesammelten Felder und Metadaten über diese spezielle Sammlung enthält.
Das Plugin fügt einen neuen Ein- und Ausgabetyp zu Graylog hinzu. Die zu verarbeitenden Nachrichten werden an den Context Collector weitergeleitet, indem die Ausgabe an Streams angehängt wird. Die Eingabe wird verwendet, um neu erstellte Nachrichten an Graylog zu senden.
Anwendungsfälle
E-Mail logs von sendmail oder postfix
E-Mail-Server-Setups sind berüchtigt dafür, dass relevante Informationen über die Protokollmeldungen verstreut werden, da mehrere verschiedene Komponenten eine E-Mail bearbeiten, während sie das System durchläuft. Glücklicherweise verwenden diese Komponenten oft eine Warteschlangen-ID oder die RFC5322 Message-ID, um die Protokollmeldungen bestimmten E-Mails zuzuordnen.
Bei der Fehlerbehebung von Problemen mit dem E-Mail-Dienst ist es einfach, die relevanten Protokollnachrichten zu filtern, sobald die relevanten IDs identifiziert wurden. Die Identifizierung der relevanten IDs ist in der Regel der zeitintensive Teil.
Mit dem Context Collector können wir relevante Informationen für E-Mails auf der Grundlage dieser IDs in einer Nachricht sammeln. Dies erleichtert das Filtern und Identifizieren von Nachrichten auf der Grundlage von Problemlösungsanfragen wie „E-Mails von X an Y heute Morgen“, „Alle Nachrichten die Weiterleitung X beinhalten“ oder „Alle Nachrichten an X, die letzte Woche einen höheren Spamwert als Y hatten“.
Cisco ASA
Mit der ID 734003 generiert die Cisco ASA Plattform Logs für die Verbindung von AnyConnect Clients, die grundlegende Informationen über den Client enthalten, z. B.:
Username, client version, platform, applied policies, device type, MAC-address
Leider ist jede Information eine eigene Protokollnachricht, was die Erstellung von Berichten, z. B. über die Verteilung von Versionen auf verschiedenen Plattformen, erschwert. Der Context Collector kann hier eingesetzt werden, um die Informationen für einen Client in einer Meldung zu vereinen.
Cisco ISE
Die Cisco Identity Services Engine (ISE) ermöglicht einen dynamischen und automatisierten Ansatz zur Durchsetzung von Richtlinien. Dieser Ansatz vereinfacht die zuverlässige und sichere Kontrolle des Netzwerkzugangs. ISE fördert den softwaredefinierten Zugriff und automatisiert die Netzwerksegmentierung in IT- und OT-Umgebungen.
Während der Authentifizierung erstellt die Cisco Identity Services Engine mehrere Protokolleinträge, über die wichtige Schlüsseldaten für das Debugging verbreitet werden. Dazu gehören Informationen wie zugewiesene IPv4/6-Adressen, MAC-Adresse, Benutzerauthentifizierungsname, zugewiesene Richtlinie und zugeordnete Regel. Durch die Verwendung der Session-ID kann dies mit dem Context Collector in einer einzigen Log-Meldung zusammengefasst werden.
Die folgenden Felder sind für die Auswertung relevant:
type, name, timeout, key-fields, drop_incomplete, enabled, value_fields
Installation
Die neuesten Anweisungen zum Laden eines Plugins in Graylog finden Sie unter https://docs.graylog.org/docs/plugins#installing-and-loading-plugins.
Anfängliche Konfiguration
Damit der Context Collector funktioniert, muss ein Input erstellt und ein Output erstellt und mit mindestens einem Stream verbunden werden.
Erstellen des Context Collector Input
Um den Eingang zu erstellen, gehen Sie zu System -> Inputs, wählen Sie den „Context Collector Message Output“ als neuen Input und klicken Sie auf „Launch Input“. Im Konfigurationsdialog markieren Sie das Kontrollkästchen Global und geben dem Eingang einen Namen, z. B. „Context Collector Input“. Anschließend erstellen und starten Sie den Eingang durch Klicken auf „Save“.
Erstellen des Context Collector Output
Um den Context Collector Output zum ersten Mal einem Stream zuzuordnen, gehen Sie zur Seite „Streams“. Wählen Sie für den gewünschten Stream „More Actions“ -> „Manage Output“. Wählen Sie in der Auswahlbox neben der Schaltfläche „Launch new Output“ den Typ „Context Collector Output“ aus. Klicken Sie auf die Schaltfläche und geben Sie dem Ausgang im Konfigurationsdialog einen Namen, z. B. „Context Collector Output“. Klicken Sie auf Speichern, um die Einrichtung abzuschließen. Der Ausgang ist nun mit dem Stream verbunden und verarbeitet Nachrichten.
Den Context Collector Output an einen zusätzlichen Stream anhängen
Es ist nicht notwendig, für jeden Stream einen neuen Output zu erstellen. Um zusätzliche Streams an den „Output“ anzuhängen, gehen Sie über „More Actions“ -> „Manage Outputs“ auf die Seite zur Verwaltung der Outputs für die jeweiligen Streams. Wählen Sie im Auswahlfeld „Select existing output“ den Context Collector Output aus, den Sie im vorherigen Schritt erstellt haben. Zum Abschluss klicken Sie auf die Schaltfläche „Assign existing Output“.
Wie man eine Context Collection konfiguriert
Das Konfigurationsmodul für das Plugin finden Sie unter System -> Configurations. Standardmäßig ist es auf „Cluster Config“ eingestellt, was bedeutet, dass die Konfiguration der Sammlungen in Graylog gespeichert wird. Um ältere Implementierungen zu unterstützen, ist es möglich, die Konfiguration aus einer Datei einzulesen.
Wenn Sie im Hauptkonfigurationsdialog des Plugins auf die Schaltfläche „Add Collection“ klicken, wird eine neue leere Sammlung angelegt. Ein Klick auf die Schaltfläche „Edit“ in der Zeile öffnet den Konfigurationsdialog für die Sammlung. Hier können wir einen eigenen Namen, die Felder, die wir abgleichen und sammeln wollen, und den Timeout zu wählen. Wenn das Kontrollkästchen „Drop incomplete Collections on timeout“ aktiviert ist, werden Sammlungselemente, die nicht alle angegebenen Felder erfasst haben, bei Timeout verworfen. Es wird keine neue Nachricht für sie erstellt.
Durch Anklicken der Bestätigungsschaltfläche gelangen wir zurück zum Hauptkonfigurationsdialog. Zum Speichern und automatischen Übernehmen unserer Änderungen in die Verarbeitung klicken wir auf die Schaltfläche „save“.
FAQ
Frage: Ist das Plugin mit Graylog Enterprise kompatibel?
Antwort: Ja, sie werden wie jede andere Nachricht behandelt.
Frage: Was sind die Voraussetzungen für die Nutzung des Plugins?
Antwort: Eine Graylog-Installation in der passenden Version. Es ist keine zusätzliche Software erforderlich.
Frage: Wie werden die gesammelten Nachrichten zwischen den verschiedenen Knoten eines Clusters ausgetauscht?
Antwort: Zum Speichern der Konfiguration und der Daten verwendet das Plugin die zugrunde liegende MongoDB über die Graylog-Funktionen. Es kann nötig werden den „wild tiger“ von MongoDB zu konfigurieren, um den Speicherverbrauch einzuschränken.
Frage: Können wir einen Context Collector für eine Graylog Version auch auf einer anderen laufen lassen?
Antwort: Im Allgemeinen nicht. Während die Verarbeitung selbst in der Regel über die Nebenversionen hinweg kompatibel bleibt, neigt die Konfiguration dazu, nicht richtig zu funktionieren.
Frage: Welche Metadaten werden an jede Context Collector-Nachricht angehängt?
Antwort: Die folgenden zusätzlichen Felder sind in den Nachrichten enthalten:
- context-collector_complete: Dies zeigt an, ob alle angeforderten Felder ausgefüllt sind. Es ist möglich, nicht vollständige Nachrichten direkt im Context Collector abzulegen.
- context-collector_start: Zeitpunkt, zu dem die Sammlung begonnen wurde.
- context-collector_end: Zeitpunkt, zu dem die Sammlung die letzte Meldung erfasst hat.
- context-collector_name: der Name der Sammlung. Sie können mehrere Sammlungen haben.
- context-collector_timeout: wenn nicht alle angeforderten Felder gefunden werden: der Zeitstempel des Timeouts.
Frage: Kann ich mehrere Felder als Schlüssel für eine Sammlung verwenden?
Antwort: Ja, obwohl in den meisten Fällen nur ein Feld benötigt wird, ist es möglich, mehrere Felder als Schlüssel zu verwenden.