Datadog-Protokolle erfassen

Unterstützt in:

Übersicht

Dieser Parser extrahiert Felder aus Datadog-Protokollen, führt mehrere Mutationen und Grok-Übereinstimmungen aus, um die Daten zu strukturieren, und ordnet die extrahierten Felder dem UDM zu. Es verarbeitet verschiedene Protokollformate im Feld message, einschließlich Schlüssel/Wert-Paare und JSON-Objekte, und wandelt bestimmte Felder in UDM-konforme Labels und zusätzliche Felder um.

Hinweis

  • Sie benötigen eine Google SecOps-Instanz.
  • Sie benötigen Berechtigungen für den Zugriff auf Google Cloud IAM.
  • Sie benötigen Berechtigungen für den Zugriff auf Google Cloud Storage.
  • Sie benötigen logs_write_archive-Nutzerzugriff auf Datadog.

Option 1: Freigabe von Datadog-Protokollen über die Cloud Storage-Konfiguration

Datadog-Integration mit der Google Cloud Platform konfigurieren

Google Cloud Storage-Bucket erstellen

  1. Melden Sie sich in der Google Cloud Console an.
  2. Rufen Sie die Seite Cloud Storage-Buckets auf.

    Buckets aufrufen

  3. Klicken Sie auf Erstellen.

  4. Geben Sie auf der Seite Bucket erstellen die Bucket-Informationen ein. Klicken Sie nach jedem der folgenden Schritte auf Weiter, um mit dem nächsten Schritt fortzufahren:

    1. Führen Sie im Abschnitt Einstieg die folgenden Schritte aus:

      1. Geben Sie einen eindeutigen Namen ein, der den Anforderungen für Bucket-Namen entspricht (z. B. datadog-data).
      2. Wenn Sie den hierarchischen Namespace aktivieren möchten, klicken Sie auf den Maximierungspfeil, um den Bereich Für dateiorientierte und datenintensive Arbeitslasten optimieren zu maximieren, und wählen Sie dann Hierarchischen Namespace für diesen Bucket aktivieren aus.

      3. Wenn Sie ein Bucket-Label hinzufügen möchten, klicken Sie auf den Erweiterungspfeil, um den Bereich Labels zu maximieren.

      4. Klicken Sie auf Label hinzufügen und geben Sie einen Schlüssel und einen Wert für das Label an.

    2. Gehen Sie im Bereich Speicherort für Daten auswählen so vor:

      1. Standorttyp auswählen.
      2. Wählen Sie im Drop-down-Menü für den Standorttyp einen Speicherort aus, an dem die Objektdaten in Ihrem Bucket dauerhaft gespeichert werden sollen.
        • Wenn Sie den Standorttyp Dual-Region auswählen, können Sie auch die Turboreplikation aktivieren, indem Sie das entsprechende Kästchen anklicken.
      3. Wenn Sie die Bucket-übergreifende Replikation einrichten möchten, maximieren Sie den Bereich Bucket-übergreifende Replikation einrichten.
    3. Wählen Sie im Abschnitt Speicherklasse für Ihre Daten auswählen entweder eine Standardspeicherklasse für den Bucket oder Autoclass für die automatische Verwaltung der Speicherklassen Ihrer Bucket-Daten aus.

    4. Wählen Sie im Abschnitt Zugriff auf Objekte steuern die Option nicht aus, um die Verhinderung des öffentlichen Zugriffs zu erzwingen, und wählen Sie ein Zugriffssteuerungsmodell für die Objekte Ihres Buckets aus.

    5. Gehen Sie im Bereich Auswählen, wie Objektdaten geschützt werden so vor:

      1. Wählen Sie unter Datenschutz die Optionen aus, die Sie für den Bucket festlegen möchten.
      2. Um auszuwählen, wie Ihre Objektdaten verschlüsselt werden, klicken Sie auf den Erweiterungspfeil mit Label Datenverschlüsselung und wählen Sie eine Methode für die Datenverschlüsselung aus.
  5. Klicken Sie auf Erstellen.

Google Cloud-Dienstkonto erstellen

  1. Rufen Sie IAM und Verwaltung > Dienstkonten auf.
  2. Erstellen Sie ein neues Dienstkonto.
  3. Geben Sie einen aussagekräftigen Namen für den Nutzer an, z. B. datadog-user.
  4. Weisen Sie dem Dienstkonto die Rolle Storage-Objekt-Administrator für den im vorherigen Schritt erstellten Cloud Storage-Bucket zu.
  5. Erstellen Sie einen SSH-Schlüssel für das Dienstkonto.
  6. Laden Sie eine JSON-Schlüsseldatei für das Dienstkonto herunter. Bewahren Sie diese Datei sicher auf.

Datadog so konfigurieren, dass Protokolle an Cloud Storage gesendet werden

  1. Melden Sie sich mit einem Konto mit Berechtigungen in Datadog an.
  2. Gehen Sie zu Protokolle > Logweiterleitung.
  3. Klicken Sie auf + Neues Archiv erstellen.
  4. Wählen Sie Google Cloud Storage aus.
  5. Geben Sie die erforderlichen Parameter ein und klicken Sie auf Speichern.

Option 2: Datadog-Protokollfreigabe über Webhook-Konfiguration

Feed in Google SecOps für die Aufnahme der Datadog-Logs konfigurieren

  1. Gehen Sie zu SIEM-Einstellungen > Feeds.
  2. Klicken Sie auf Neu hinzufügen.
  3. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Datadog-Protokolle.
  4. Wählen Sie als Quelltyp Webhook aus.
  5. Wählen Sie Datadog als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. Optional: Geben Sie Werte für die folgenden Eingabeparameter an:
    • Trennzeichen für die Aufteilung: Das Trennzeichen, mit dem Logzeilen getrennt werden, z. B. \n.
    • Asset-Namespace: der Asset-Namespace.
    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
  8. Klicken Sie auf Weiter.
  9. Überprüfen Sie die Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.
  10. Klicken Sie auf Secret-Schlüssel generieren, um einen Secret-Schlüssel zur Authentifizierung dieses Feeds zu generieren.
  11. Kopieren und speichern Sie den geheimen Schlüssel. Sie können diesen geheimen Schlüssel nicht noch einmal aufrufen. Bei Bedarf können Sie einen neuen Secret-Schlüssel generieren. Dadurch wird der vorherige Secret-Schlüssel jedoch ungültig.
  12. Kopieren Sie auf dem Tab Details die Feedendpunkt-URL aus dem Feld Endpunktinformationen. Sie müssen diese Endpunkt-URL in Ihrer Clientanwendung angeben.
  13. Klicken Sie auf Fertig.

API-Schlüssel für den Webhook-Feed erstellen

  1. Rufen Sie die Google Cloud Console > Anmeldedaten auf.

    Zu den Anmeldedaten

  2. Klicken Sie auf Anmeldedaten erstellen und wählen Sie anschließend API-Schlüssel aus.

  3. Beschränken Sie den API-Schlüsselzugriff auf die Chronicle API.

Endpunkt-URL angeben

  1. Geben Sie in Ihrer Clientanwendung die HTTPS-Endpunkt-URL an, die im Webhook-Feed angegeben ist.
  2. Aktiviere die Authentifizierung, indem du den API-Schlüssel und den geheimen Schlüssel als Teil der benutzerdefinierten Kopfzeile im folgenden Format angibst:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    Empfehlung: Geben Sie den API-Schlüssel als Header an, anstatt ihn in der URL anzugeben.

  3. Wenn Ihr Webhook-Client keine benutzerdefinierten Header unterstützt, können Sie den API-Schlüssel und den geheimen Schlüssel mithilfe von Suchparametern im folgenden Format angeben:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    Ersetzen Sie Folgendes:

    • ENDPOINT_URL: die URL des Feedendpunkts.
    • API_KEY: Der API-Schlüssel, mit dem Sie sich bei Google SecOps authentifizieren.
    • SECRET: der geheime Schlüssel, den Sie zur Authentifizierung des Feeds generiert haben.

Datadog so konfigurieren, dass Protokolle an einen Webhook gesendet werden

  1. Melden Sie sich mit einem Konto mit Berechtigungen in Datadog an.
  2. Gehen Sie zu Protokolle > Logweiterleitung.
  3. Wählen Sie Benutzerdefinierte Ziele aus.
  4. Klicken Sie auf + Neues Ziel erstellen.
  5. Geben Sie Werte für die folgenden Eingabeparameter an:
    1. Zieltyp auswählen: Wählen Sie HTTP aus.
    2. Geben Sie einen Namen für das Ziel an: Geben Sie einen beschreibenden Namen für den Webhook an, z. B. Google SecOps-Webhook.
    3. Ziel konfigurieren: Geben Sie die ENDPOINT_URL gefolgt von API_KEY und SECRET ein.
    4. Authentifizierungseinstellungen konfigurieren: Fügen Sie einen allgemeinen Header wie den folgenden hinzu. Dadurch wird die HTTP-Anfrage nicht fehlerhaft und Datadog kann die Webhook-Erstellung abschließen.
      • Header name: Accept.
      • Headerwert: application/json.
    5. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
_id read_only_udm.metadata.product_log_id Direkt aus dem Feld _id zugeordnet.
alert read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld alert extrahiert und als Label in das Objekt security_result eingefügt.
attributes.@timestamp read_only_udm.metadata.event_timestamp Der Ereigniszeitstempel wird aus dem Feld attributes.@timestamp extrahiert und in Sekunden und Nanosekunden umgewandelt.
attributes.@version read_only_udm.metadata.product_version Direkt aus dem Feld attributes.@version zugeordnet.
attributes.level_value read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld attributes.level_value extrahiert und als Label in das Objekt security_result eingefügt.
attributes.logger_name read_only_udm.principal.application Direkt aus dem Feld attributes.logger_name zugeordnet.
attributes._trace.baggage._sli_service read_only_udm.additional.fields Wird direkt aus dem Feld attributes._trace.baggage._sli_service zugeordnet und als zusätzliches Feld hinzugefügt.
attributes._trace.baggage.device_id read_only_udm.principal.asset.asset_id Wird direkt aus dem Feld attributes._trace.baggage.device_id mit dem Präfix „Device Id:“ zugeordnet.
attributes._trace.origin.operation read_only_udm.metadata.product_event_type Direkt aus dem Feld attributes._trace.origin.operation zugeordnet.
caller read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld caller extrahiert und als Label in das Objekt security_result eingefügt.
component read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld component extrahiert und als Label in das Objekt security_result eingefügt.
context.AlertName read_only_udm.security_result.threat_name Direkt aus dem Feld context.AlertName zugeordnet.
context.BusArch read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld context.BusArch extrahiert und als Label in das Objekt security_result eingefügt.
context.CANDBVersion read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld context.CANDBVersion extrahiert und als Label in das Objekt security_result eingefügt.
context.esn read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld context.esn extrahiert und als Label in das Objekt security_result eingefügt.
context.ftcpVersion read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld context.ftcpVersion extrahiert und als Label in das Objekt security_result eingefügt.
context.ingestMessageId read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld context.ingestMessageId extrahiert und als Label in das Objekt security_result eingefügt.
context.redactedVin read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld context.redactedVin extrahiert und als Label in das Objekt security_result eingefügt.
context.vehicleId read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld context.vehicleId extrahiert und als Label in das Objekt security_result eingefügt.
date read_only_udm.metadata.collected_timestamp Der erfasste Zeitstempel wird aus dem Feld date extrahiert (im Parser in date1 umbenannt) und in Sekunden und Nanosekunden umgewandelt.
host read_only_udm.principal.hostname Direkt aus dem Feld host zugeordnet.
message read_only_udm.security_result.about.resource.attribute.labels Das Feld message wird geparst und Teile davon werden zum Ausfüllen der Felder summary und json_data verwendet. Der Rest wird als Schlüssel/Wert-Paar behandelt und als Labels im Objekt security_result hinzugefügt.
msg read_only_udm.security_result.about.resource.attribute.labels Aus dem Feld msg extrahiert und als Label in das Objekt security_result eingefügt.
service read_only_udm.metadata.product_name Direkt aus dem Feld service zugeordnet.
status read_only_udm.security_result.severity Der Schweregrad wird anhand des Felds status bestimmt. „INFO“, „DEBUG“, „debug“ und „info“ werden „LOW“ zugeordnet, „WARN“ wird „MEDIUM“ zugeordnet und andere Werte werden im bereitgestellten Code-Snippet nicht explizit zugeordnet.
tags read_only_udm.additional.fields Jedes Tag im Array tags wird in Schlüssel/Wert-Paare zerlegt und als zusätzliche Felder hinzugefügt.
read_only_udm.metadata.event_type Legen Sie „STATUS_UPDATE“ fest, wenn das Feld host vorhanden ist, andernfalls „GENERIC_EVENT“.

Änderungen

2023-07-21

  • Parser erstellt.