BindPlane-Agent verwenden

Der BindPlane-Agent (auch als Collection Agent bezeichnet) ist ein Open-Source-Agent, der auf dem OpenTelemetry Collector basiert. aus einer Vielzahl von Quellen, einschließlich Microsoft Windows-Ereignisprotokollen, und sendet an Google Security Operations.

Die observIQ BindPlane OP-Verwaltungskonsole bietet eine umfassende und einheitliche für die Verwaltung Ihrer OTel-Collector-Bereitstellungen (OpenTelemetry) in Google SecOps und Google Cloud observIQ eine BindPlane für Google-Version der Verwaltungskonsole. Weitere Informationen finden Sie unter observIQ-Lösungen. Verwaltungskonsole ist optional. Sie können den Agent mit oder ohne die Console verwenden. Weitere Informationen Informationen zur Konsole finden Sie unter BindPlane OP-Verwaltungskonsole.

Dies ist dieselbe Lösung, die von Cloud Logging verwendet wird. für lokale Bereitstellungen.

Hinweise

Zum Installieren des Agents benötigen Sie Folgendes:

  • Google SecOps-Authentifizierungsdatei für die Datenaufnahme

    So laden Sie die Authentifizierungsdatei herunter:

    1. Öffnen Sie die Google SecOps-Konsole.
    2. Gehen Sie zu SIEM-Einstellungen > Collection Agent:
    3. Laden Sie die Google SecOps-Authentifizierungsdatei für die Datenaufnahme herunter.
  • Google SecOps-Kundennummer

    So finden Sie die Kundennummer:

    1. Öffnen Sie die Google SecOps-Konsole.
    2. Gehen Sie zu SIEM-Einstellungen > Profil:
    3. Kopieren Sie die Kundennummer aus dem Abschnitt Details zur Organisation.
  • Windows 2012 SP2 oder höher oder Linux-Host mit „systemd“

  • Internetverbindung

  • GitHub-Zugriff

Firewallkonfiguration prüfen

Alle Firewalls oder authentifizierte Proxys zwischen dem Agent und dem Internet erfordern Regeln, um den Zugriff auf die folgenden Hosts zu öffnen:

Verbindungstyp Ziel Port
TCP malachiteingestion-pa.googleapis.com 443
TCP asia-northeast1-malachiteingestion-pa.googleapis.com 443
TCP asia-south1-malachiteingestion-pa.googleapis.com 443
TCP asia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP australia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP europe-malachiteingestion-pa.googleapis.com 443
TCP europe-west2-malachiteingestion-pa.googleapis.com 443
TCP europe-west3-malachiteingestion-pa.googleapis.com 443
TCP europe-west6-malachiteingestion-pa.googleapis.com 443
TCP europe-west12-malachiteingestion-pa.googleapis.com 443
TCP me-central1-malachiteingestion-pa.googleapis.com 443
TCP me-central2-malachiteingestion-pa.googleapis.com 443
TCP me-west1-malachiteingestion-pa.googleapis.com 443
TCP northamerica-northeast2-malachiteingestion-pa.googleapis.com 443
TCP accounts.google.com 443
TCP oauth2.googleapis.com 443

BindPlane OP-Verwaltungskonsole

Die BindPlane OP-Verwaltungskonsole bietet die folgenden Hauptfunktionen:

  • Zentrale Verwaltung: Mit der Konsole können Sie alle Ihre OTel-Collector-Bereitstellungen in Google Cloud verwalten. Sie können Den Status der einzelnen Bereitstellungen ansehen und allgemeine Verwaltungsaufgaben ausführen z. B. Collectors starten, stoppen und neu starten.
  • Echtzeit-Monitoring: Die Konsole bietet Echtzeit-Monitoring Ihres OTels Collector-Bereitstellungen. Sie können Messwerte wie CPU-Auslastung, Arbeitsspeichernutzung sowie den Durchsatz und sehen Sie sich Logs und Traces an, um Probleme zu beheben.
  • Warnmeldungen und Benachrichtigungen: In der Konsole lassen sich Warnungen und Benachrichtigungen einrichten. bei wichtigen Ereignissen, z. B. wenn ein Collector ausfällt oder ein Messwertgrenzwert überschritten wird.
  • Konfigurationsverwaltung: Mit der Konsole können Sie die Konfiguration zentral verwalten. der OTel-Sammler. Sie können Konfigurationsdateien bearbeiten, Umgebungsvariablen festlegen und Sicherheitsrichtlinien auf alle Bereitstellungen anwenden.
  • Integration in Google Cloud: Sie können einen OTel-Collector erstellen und verwalten. Bereitstellungen in Google Cloud und verwenden Sie die Console, um auf Ihre Google Cloud Ressourcen.

Es gibt zwei Möglichkeiten, die BindPlane OP-Verwaltungskonsole bereitzustellen:

BindPlane-Agent installieren

In diesem Abschnitt wird beschrieben, wie Sie den Agent auf verschiedenen Hostbetriebssystemen installieren.

Windows

Führen Sie den folgenden PowerShell-Befehl aus, um den BindPlane-Agent unter Windows zu installieren.

msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet

Sie können die Installation auch mithilfe eines Installationsassistenten durchführen, indem Sie das neueste Installationsprogramm für Windows herunterladen.

Öffnen Sie nach dem Herunterladen des Installationsprogramms den Installationsassistenten und folgen Sie der Anleitung zum Konfigurieren und Installieren des BindPlane-Agents. Weitere Informationen zur Installation finden Sie unter Installation unter Windows.

Linux

Sie können den Agent unter Linux mit einem Skript installieren, das automatisch welches Paket installiert werden soll. Sie können dieses Skript auch verwenden, um eine vorhandene Installation zu aktualisieren.

Führen Sie das folgende Skript aus, um die Installation mithilfe des Installationsskripts durchzuführen:

sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh

Installation aus lokalem Paket

Wenn Sie den Agent aus einem lokalen Paket installieren möchten, verwenden Sie -f mit dem Pfad zum Paket.

sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh -f path_to_package

RPM-Installation

Laden Sie das RPM-Paket für Ihre Architektur von der Releaseseite herunter und installieren Sie das Paket mit rpm. Sehen Sie sich das folgende Beispiel für die Installation an: dem Paket amd64:

sudo rpm -U ./observiq-otel-collector_v${VERSION}_linux_amd64.rpm
sudo systemctl enable --now observiq-otel-collector

Ersetzen Sie VERSION durch die Version des heruntergeladenen Pakets.

DEB-Installation

Laden Sie das DEB-Paket für Ihre Architektur von der Releaseseite herunter und installieren Sie das Paket mit dpkg. Im folgenden Beispiel sehen Sie die Installation des amd64-Paket:

sudo dpkg -i --force-overwrite ./observiq-otel-collector_v${VERSION}_linux_amd64.deb
sudo systemctl enable --now observiq-otel-collector

Ersetzen Sie VERSION durch die Version des heruntergeladenen Pakets.

Weitere Informationen finden Sie unter BindPlane Agent-Installation.

Agent konfigurieren

Sie können den Agent entweder manuell oder mit BindPlane OP Management konfigurieren . Wenn Sie den Agent manuell konfigurieren, müssen Sie den Exporter aktualisieren. Parameter, um sicherzustellen, dass sich der Agent bei Google SecOps authentifiziert.

Nach der Installation des Agents wird der Dienst observiq-otel-collector ausgeführt und ist bereit für Konfiguration. Der Agent protokolliert standardmäßig in C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log.

Das Standardfehlerlog für den Agent-Prozess finden Sie unter C:\Program Files\observIQ OpenTelemetry Collector\log\observiq_collector.err.

Standardmäßig befindet sich die Agent-Konfigurationsdatei unter C:\Program Files\observIQ OpenTelemetry Collector\config.yaml Beim Ändern der Konfiguration müssen Sie den Agent-Dienst für die Konfigurationsänderungen neu starten damit die Änderungen wirksam werden.

Sie können eine Beispielkonfigurationsdatei und ein Authentifizierungstoken herunterladen, die vom Agent über die Google SecOps-Konsole > SIEM-Einstellungen > Collection Agent:

Passen Sie diese beiden Abschnitte in der Konfigurationsdatei an:

  • Empfänger: Gibt an, welche Protokolle der Agent erfassen und an Google SecOps senden soll.
  • Exporter: Gibt das Ziel an, an das der Agent die Logs sendet. Die folgenden Exporter werden unterstützt: <ph type="x-smartling-placeholder">
      </ph>
    • Google SecOps-Exporter: Sendet Protokolle direkt an die Google SecOps Ingestion API
    • Google SecOps-Forwarder-Exporter: Sendet Protokolle an Google SecOps-Forwarder
    • Cloud Logging-Exporter: Sendet Logs an (Cloud Logging)

Passen Sie im Exporter Folgendes an:

  • customer_id: Google SecOps-Kundennummer
  • endpoint: Regionaler Google SecOps-Endpunkt
  • creds: Authentifizierungs-Token

    Alternativ können Sie mit creds_file_path auf die Datei mit den Anmeldedaten verweisen. . Bei der Windows-Konfiguration verwenden Sie als Escapezeichen umgekehrte Schrägstriche.

  • log_type: Logtyp

  • ingestion_labels: Optionale Aufnahmelabels

  • namespace: Optionaler Namespace

    Für jeden Logtyp müssen Sie einen Exporter konfigurieren.

Architektur

Für die Agent-Architektur sind die folgenden Optionen verfügbar.

Option 1: Sammlungs-Agent sendet Protokolle an den Google SecOps-Forwarder

Sammlungs-Agent sendet Logs an den Google SecOps-Forwarder

Der Google SecOps-Forwarder empfängt mehrere Syslog-Streams. Jedes Syslog-Datenquelle unterscheidet sich durch den Überwachungsport, der auf dem Google SecOps-Forwarder. Der Forwarder führt einen verschlüsselten gRPC Verbindung zu Ihrer Google SecOps-Instanz, um erfasste Logs zu senden.

Beachten Sie, dass die Forwarder-Option das Aggregieren von Logs vor dem Senden ermöglicht zu Google SecOps.

Option 2: Sammlungs-Agent sendet Protokolle direkt an die Google SecOps Ingestion API

Sammlungs-Agent sendet Logs direkt an die Google SecOps Ingestion API

Option 3: Sammlungs-Agent sendet Logs direkt an Cloud Logging

Sammlungs-Agent sendet Logs direkt an Cloud Logging

Option 4: Sammlungs-Agent sendet Logs an mehrere Ziele

Sammlungs-Agent sendet Logs an mehrere Ziele

Skalierbarkeit

Agent-Collectors benötigen in der Regel nur minimale Ressourcen, aber bei der Verarbeitung großer Volumes von Telemetrie (Logs oder Traces) in einem System. Achten Sie darauf, Beeinträchtigung anderer Dienste zu vermeiden. Weitere Informationen Siehe Agent-Größe und -Skalierung

Support

Wenden Sie sich bei Problemen mit dem Collector-Agent an den Google Cloud-Support.

Wenden Sie sich bei Problemen im Zusammenhang mit BindPlane OP Management an den ObservIQ-Support.

Weitere Konfigurationsbeispiele für die Logerfassung

In den folgenden Abschnitten werden die zusätzlichen Konfigurationsbeispiele für die Logerfassung aufgeführt.

Windows-Ereignisse und Sysmon direkt an Google SecOps senden

Konfigurieren Sie diese Parameter im Beispiel:

Beispielkonfiguration:

receivers:
  windowseventlog/sysmon:
    channel: Microsoft-Windows-Sysmon/Operational
    raw: true
  windowseventlog/security:
    channel: security
    raw: true
  windowseventlog/application:
    channel: application
    raw: true
  windowseventlog/system:
    channel: system
    raw: true

processors:
  batch:

exporters:
  chronicle/sysmon:
    endpoint: malachiteingestion-pa.googleapis.com
    creds: '{
  "type": "service_account",
  "project_id": "malachite-projectname",
  "private_key_id": "abcdefghijklmnopqrstuvwxyz123456789",
  "private_key": "-----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
  "client_email": "account@malachite-projectname.iam.gserviceaccount.com",
  "client_id": "123456789123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account%40malachite-projectname.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}' 
    log_type: 'WINDOWS_SYSMON'
    override_log_type: false
    raw_log_field: body
    customer_id: 'dddddddd-dddd-dddd-dddd-dddddddddddd'
  chronicle/winevtlog:
    endpoint: malachiteingestion-pa.googleapis.com
    creds: '{
  "type": "service_account",
  "project_id": "malachite-projectname",
  "private_key_id": "abcdefghijklmnopqrstuvwxyz123456789",
  "private_key": "-----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
  "client_email": "account@malachite-projectname.iam.gserviceaccount.com",
  "client_id": "123456789123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account%40malachite-projectname.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}'
    log_type: 'WINEVTLOG'
    override_log_type: false
    raw_log_field: body
    customer_id: 'dddddddd-dddd-dddd-dddd-dddddddddddd'

service:
  pipelines:
    logs/sysmon:
      receivers: [windowseventlog/sysmon]
      processors: [batch]
      exporters: [chronicle/sysmon]
    logs/winevtlog:
      receivers: 
        - windowseventlog/security
        - windowseventlog/application
        - windowseventlog/system
      processors: [batch]
      exporters: [chronicle/winevtlog]

Windows-Ereignisse und Syslog direkt an Google SecOps senden

Konfigurieren Sie diese Parameter im Beispiel:

Beispielkonfiguration:

receivers:
    tcplog:
      listen_address: "0.0.0.0:54525"
    windowseventlog/source0__application:
        attributes:
            log_type: windows_event.application
        channel: application
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__security:
        attributes:
            log_type: windows_event.security
        channel: security
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__system:
        attributes:
            log_type: windows_event.system
        channel: system
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
exporters:
    chronicle/chronicle_w_labels:
        compression: gzip
        creds: '{ json blob for creds }'
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: dev
        log_type: <applicable_log_type>
        namespace: testNamespace
        raw_log_field: body
service:
    pipelines:
        logs/source0__chronicle_w_labels-0:
            receivers:
                - windowseventlog/source0__system
                - windowseventlog/source0__application
                - windowseventlog/source0__security
            exporters:
                - chronicle/chronicle_w_labels
        logs/source1__chronicle_w_labels-0:
            receivers:
                - tcplog
            exporters:
                - chronicle/chronicle_w_labels

Windows-Ereignisse und Syslog an Google SecOps-Forwarder senden

Konfigurieren Sie diese Parameter im Beispiel:

Beispielkonfiguration:

receivers:
tcplog:
    listen_address: "0.0.0.0:54525"
    windowseventlog/source0__application:
        attributes:
            log_type: windows_event.application
        channel: application
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__security:
        attributes:
            log_type: windows_event.security
        channel: security
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__system:
        attributes:
            log_type: windows_event.system
        channel: system
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
exporters:
    chronicleforwarder/forwarder:
        export_type: syslog
        raw_log_field: body
        syslog:
            endpoint: 127.0.0.1:10514
            transport: udp
service:
    pipelines:
        logs/source0__forwarder-0:
            receivers:
                - windowseventlog/source0__system
                - windowseventlog/source0__application
                - windowseventlog/source0__security
            exporters:
                - chronicleforwarder/forwarder
        logs/source1__forwarder-0:
            receivers:
                - tcplog
            exporters:
                - chronicleforwarder/forwarder

Syslog direkt an Google SecOps senden

Konfigurieren Sie diese Parameter im Beispiel:

Beispielkonfiguration:

receivers:
  tcplog:
    listen_address: "0.0.0.0:54525"

exporters:
    chronicle/chronicle_w_labels:
        compression: gzip
        creds: '{ json blob for creds }'
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: dev
        log_type: <applicable_log_type>
        namespace: testNamespace
        raw_log_field: body
service:
    pipelines:
        logs/source0__chronicle_w_labels-0:
            receivers:
                - tcplog
            exporters:
                - chronicle/chronicle_w_labels

Windows-Ereignisse aus der Ferne erfassen und direkt an Google SecOps senden

Konfigurieren Sie diese Parameter im Beispiel:

  • windowseventlogreceiver
    • username
    • password
    • server
  • chronicleexporter
    • namespace
    • ingestion_labels
    • log_type
    • customer_id
    • creds

Beispielkonfiguration:

receivers:
    windowseventlog/system:
        channel: system
        max_reads: 100
        start_at: end
        poll_interval: 10s
        raw: true
        remote:
            username: "username"
            password: "password"
            server: "remote-server"
    windowseventlog/application:
        channel: application
        max_reads: 100
        start_at: end
        poll_interval: 10s
        raw: true
        remote:
            username: "username"
            password: "password"
            server: "server-ip"
    windowseventlog/security:
        channel: security
        max_reads: 100
        start_at: end
        poll_interval: 10s
        raw: true
        remote:
            username: "username"
            password: "password"
            server: "server-ip"
exporters:
    chronicle/chronicle_w_labels:
        compression: gzip
        creds: '{ json blob for creds }'
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: dev
        log_type: WINEVTLOG
        namespace: testNamespace
        raw_log_field: body
service:
    pipelines:
        logs/source0__chronicle_w_labels-0:
            receivers:
                - windowseventlog/system
                - windowseventlog/application
                - windowseventlog/security
            exporters:
                - chronicle/chronicle_w_labels

Daten an Cloud Logging senden

Konfigurieren Sie den Parameter credentials_file im Beispiel.

Beispielkonfiguration:

exporters:
  googlecloud:
    credentials_file: /opt/observiq-otel-collector/credentials.json

SQL-Datenbank abfragen und Ergebnisse an Google SecOps senden

Konfigurieren Sie diese Parameter im Beispiel:

Beispielkonfiguration:

receivers:
  sqlquery/source0:
    datasource: host=localhost port=5432 user=postgres password=s3cr3t sslmode=disable
    driver: postgres
    queries:
      - logs:
          - body_column: log_body
        sql: select * from my_logs where log_id > $$1
        tracking_column: log_id
        tracking_start_value: "10000"
processors:
  transform/source0_processor0__logs:
    error_mode: ignore
    log_statements:
      - context: log
        statements:
          - set(attributes["chronicle_log_type"], "POSTGRESQL") where true
exporters:
  chronicle/chronicle_sql:
    compression: gzip
    creds: '{
  "type": "service_account",
  "project_id": "malachite-projectname",
  "private_key_id": "abcdefghijklmnopqrstuvwxyz123456789",
  "private_key": "-----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
  "client_email": "account@malachite-projectname.iam.gserviceaccount.com",
  "client_id": "123456789123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account%40malachite-projectname.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}' 
    customer_id: customer_id
    endpoint: malachiteingestion-pa.googleapis.com
    log_type: POSTGRESQL
    namespace: null
    raw_log_field: body
    retry_on_failure:
      enabled: false
    sending_queue:
      enabled: false
service:
  pipelines:
    logs/source0_chronicle_sql-0:
      receivers:
        - sqlquery/source0
      processors:
        - transform/source0_processor0__logs
      exporters:
        - chronicle/chronicle_sql

Logs löschen, die mit einem regulären Ausdruck übereinstimmen

Sie können den Collector so konfigurieren, dass Logs gelöscht werden, die einem regulären Ausdruck entsprechen. Dies ist hilfreich, um unerwünschte Protokolle wie bekannte Fehler oder Debugging-Meldungen herauszufiltern.

Fügen Sie Ihrer Konfiguration einen Prozessor vom Typ filter/drop-matching-logs-to-Chronicle hinzu, um Logs zu löschen, die mit einem regulären Ausdruck übereinstimmen. Dieser Prozessor verwendet die Funktion IsMatch, um den Logtext anhand des regulären Ausdrucks auszuwerten. Wenn die Funktion true zurückgibt, wird das Log gelöscht.

Mit der folgenden Beispielkonfiguration werden Logs gelöscht, die die Strings <EventID>10</EventID> oder <EventID>4799</EventID> im Logtext enthalten.

Sie können den regulären Ausdruck an ein beliebiges Muster anpassen. Die Funktion IsMatch verwendet die Syntax regulärer RE2-Ausdrücke.

Beispielkonfiguration:

processors:
    filter/drop-matching-logs-to-Chronicle:
        error_mode: ignore
        logs:
            log_record:
                - (IsMatch(body, "<EventID>10</EventID>")) or (IsMatch(body, "<EventID>4799</EventID>"))

Im folgenden Beispiel wird der Prozessor der Pipeline in derselben Konfiguration hinzugefügt:

service:
  pipelines:
    logs/winevtlog:
      receivers: 
        - windowseventlog/security
        - windowseventlog/application
        - windowseventlog/system
      processors: 
      - filter/drop-matching-logs-to-Chronicle # Add this line
      - batch
      exporters: [chronicle/winevtlog]

Referenzdokumentation

Weitere Informationen zu observIQ finden Sie unter: