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:
- Öffnen Sie die Google SecOps-Konsole.
- Gehen Sie zu SIEM-Einstellungen > Collection Agent:
- Laden Sie die Google SecOps-Authentifizierungsdatei für die Datenaufnahme herunter.
Google SecOps-Kundennummer
So finden Sie die Kundennummer:
- Öffnen Sie die Google SecOps-Konsole.
- Gehen Sie zu SIEM-Einstellungen > Profil:
- 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:
- Download und Installation auf einem Linux-Host: Verfügbar als DEB-Paket, RPM-Paket oder Docker-Image.
- <ph type="x-smartling-placeholder"></ph> Installation und Bereitstellung über den Google Cloud Marketplace
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-Kundennummerendpoint
: Regionaler Google SecOps-Endpunktcreds
: Authentifizierungs-TokenAlternativ 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
: Logtypingestion_labels
: Optionale Aufnahmelabelsnamespace
: Optionaler NamespaceFü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
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
Option 3: Sammlungs-Agent sendet Logs direkt an Cloud Logging
Option 4: 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:
-
namespace
ingestion_labels
log_type
customer_id
creds
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:
windowseventlogreceiver
tcplogreceiver
listen_address
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
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:
windowseventlogreceiver
tcplogreceiver
listen_address
chronicleforwarder
endpoint
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:
tcplogreceiver
listen_address
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
Creds
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:
sqlqueryreceiver
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
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:
- observIQ-Lösungen
- Kurzanleitung für BindPlane OP
- Logs an Cloud Logging senden.
- Nach Bedingungsprozessor filtern
- Verfügbare Quellen für Bindplane OP