HAProxy-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie HAProxy-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.

HAProxy ist ein Load-Balancer und Proxyserver mit hoher Verfügbarkeit, der Syslog-Meldungen für HTTP-Anfragen, Verbindungsereignisse, Systemdiagnosen für das Back-End und Prozessaktivitäten generiert. Der Parser verwendet den Grok-Musterabgleich, um Felder aus verschiedenen HAProxy-Logformaten zu extrahieren und dem Unified Data Model (UDM) zuzuordnen.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem HAProxy-Server
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Administratorzugriff auf die HAProxy-Konfiguration

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der BindPlane-Agent installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profile auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.

Fenstereinbau

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

    Der Dienst sollte als RUNNING (Wird ausgeführt) angezeigt werden.

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

    Der Dienst sollte als aktiv (wird ausgeführt) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

Konfigurationsdatei suchen

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/haproxy:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: HAPROXY
            raw_log_field: body
    
    service:
        pipelines:
            logs/haproxy_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/haproxy
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf die gewartet werden soll:
      • 0.0.0.0, um alle Schnittstellen zu überwachen (empfohlen)
      • Port 514 ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie 1514 für Nicht-Root).
  • Exporter-Konfiguration:

    • creds_file_path: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Kunden-ID, die aus der Google SecOps Console kopiert wurde
    • endpoint: Regionale Endpunkt-URL:
      • USA: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Eine vollständige Liste finden Sie unter Regionale Endpunkte.

Konfigurationsdatei speichern

  • Speichern Sie die Datei nach der Bearbeitung:
    • Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X.
    • Windows: Klicken Sie auf Datei > Speichern.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart observiq-otel-collector
    
    1. Prüfen Sie, ob der Dienst ausgeführt wird:

      sudo systemctl status observiq-otel-collector
      
    2. Logs auf Fehler prüfen:

      sudo journalctl -u observiq-otel-collector -f
      
  • Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agent unter Windows neu zu starten:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Services-Konsole:

      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Logs auf Fehler prüfen:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Syslog für HAProxy konfigurieren

  1. Melden Sie sich über die CLI bei HAProxy an.
  2. Fügen Sie die log-Anweisung im Abschnitt global der Konfiguration hinzu, um Syslog-Nachrichten über UDP weiterzuleiten.

    • Ersetzen Sie <bindplane-ip> durch die tatsächliche IP-Adresse des Bindplane-Agents.
    global
        log <bindplane-ip>:514 local0
    
    defaults
        log global
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
accept_date_ms
actconn
backend_name
backend_queue
beconn
bytes_read network.received_bytes Aus dem Feld bytes_read im Log extrahiert und in eine vorzeichenlose Ganzzahl konvertiert.
captured_request_headers
client_ip principal.ip Aus dem Feld client_ip im Log extrahiert.
client_port principal.port Aus dem Feld client_port im Log extrahiert und in eine Ganzzahl konvertiert.
command_description metadata.description Wird aus dem Feld command_description im Log extrahiert, falls verfügbar. Andernfalls wird sie je nach Logeintrag aus anderen Feldern wie action oder status abgeleitet.
Datum/Uhrzeit metadata.event_timestamp.seconds Wird aus dem Feld datetime im Log extrahiert, falls verfügbar. Andernfalls wird sie aus dem Feld timestamp im Logeintrag abgeleitet.
Beschreibung metadata.description Wird aus dem Feld description im Log extrahiert, falls verfügbar. Andernfalls wird sie je nach Logeintrag aus anderen Feldern wie command_description oder action abgeleitet.
feconn
frontend_name
http_request target.url Aus dem Feld http_request im Log extrahiert.
http_status_code network.http.response_code Aus dem Feld http_status_code im Log extrahiert und in eine Ganzzahl konvertiert.
http_verb network.http.method Aus dem Feld http_verb im Log extrahiert.
http_version metadata.product_version Aus dem Feld http_version im Log extrahiert und als HTTP/{version} formatiert.
Initiator target.application Aus dem Feld initiator im Log extrahiert.
module
msg security_result.summary Aus dem Feld msg im Log extrahiert.
pid target.process.pid Aus dem Feld pid im Log extrahiert.
verarbeiten
process_name target.application Aus dem Feld process_name im Log extrahiert.
retries
server_name target.hostname Aus dem Feld server_name im Log extrahiert. Falls leer, wird standardmäßig der Wert von syslog_server verwendet.
die Ausprägung security_result.severity Wird aus dem Feld severity im Log zugeordnet. WARNING wird MEDIUM zugeordnet, ALERT wird CRITICAL zugeordnet und NOTICE wird INFORMATIONAL zugeordnet.
shell
srv_queue
srvconn
Status
syslog_server target.hostname, intermediary.hostname Aus dem Feld syslog_server im Log extrahiert. Wird sowohl für den Zielhostnamen (wenn server_name leer ist) als auch für den Zwischenhostnamen verwendet.
syslog_timestamp
syslog_timestamp_1
syslog_timestamp_2
syslog_timestamp_4
target_ip
time_backend_connect
time_backend_response
time_duration
time_queue
time_request
timestamp metadata.event_timestamp.seconds Aus dem Feld timestamp im Log extrahiert und nach Datums- und Zeitinformationen geparst. Wird als Zeitstempel des Ereignisses verwendet.
unknown_parameters1
unknown_parameters2
user_name target.user.userid Aus dem Feld user_name im Log extrahiert.
metadata.event_type Standardmäßig auf NETWORK_HTTP festgelegt. Wird basierend auf dem Logeintrag und den geparsten Feldern in bestimmte Ereignistypen wie PROCESS_UNCATEGORIZED, STATUS_UPDATE oder USER_UNCATEGORIZED geändert.
metadata.vendor_name Legen Sie HAProxy Enterprise fest.
metadata.product_name Legen Sie HAProxy fest.
network.application_protocol Wird auf HTTP gesetzt, wenn das Feld message HTTP enthält.
metadata.log_type Legen Sie HAPROXY fest.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten