Weiterleitungskonfigurationsdatei manuell verwalten
Auf dieser Seite wird beschrieben, wie Sie eine Konfigurationsdatei für einen Google Security Operations-Weiterleiter manuell erstellen und ändern. Informationen zum Konfigurieren des Weiterleitungsservers über die Benutzeroberfläche (empfohlen) finden Sie unter Weiterleitungskonfigurationen über die Google SecOps-Benutzeroberfläche verwalten.
Für jeden bereitgestellten Google SecOps-Weiterleiter ist eine Konfigurationsdatei erforderlich. In einer Konfigurationsdatei für einen Weiterleiter werden die Einstellungen für die Übertragung der Daten an Ihre Google SecOps-Instanz angegeben.
Informationen zum Installieren und Konfigurieren des Google SecOps-Weiterleitungsservers, zu den Systemanforderungen und zu den Konfigurationseinstellungen finden Sie unter Weiterleitungsserver installieren und konfigurieren.
Hinweise
Bevor Sie die Konfigurationsdatei erstellen, planen Sie Ihre Implementierung. Informieren Sie sich über die Arten von Daten, die aufgenommen werden können, und die wichtigsten Attribute, die Sie in der Konfigurationsdatei definieren müssen.
Konfigurationsdatei erstellen
So erstellen Sie die Konfigurationsdatei manuell:
Laden Sie die Konfigurationsdateien über die Benutzeroberfläche herunter.
Speichern Sie die beiden Dateien im selben Verzeichnis und verwenden Sie dabei die folgende Benennungskonvention:
FORWARDER_NAME
.conf: In dieser Datei werden die Konfigurationseinstellungen für die Logaufnahme definiert.FORWARDER_NAME
_auth.conf: In dieser Datei werden die Autorisierungsanmeldedaten definiert.Ändern Sie die Dateien so, dass sie die Konfiguration für Ihre Forwarder-Instanz enthalten.
Details zu den Einstellungen für die einzelnen Datenaufnahmemechanismen wie Splunk oder Syslog finden Sie unter Datentypen in der Konfigurationsdatei definieren. Weitere Informationen zum Anpassen der einzelnen Attribute, z. B. zur Datenkomprimierung oder Festplattenpufferung, finden Sie unter Schlüsselattribute in der Konfigurationsdatei konfigurieren.
Achten Sie darauf, dass für jede Eingabe in der Datei
FORWARDER_NAME
_auth.conf ein Eintrag vorhanden ist, auch wenn die Eingabe keine entsprechenden Authentifizierungsdetails enthält. Dies ist erforderlich, damit die Daten richtig zugeordnet werden können.
Alle Änderungen an der Konfigurationsdatei werden vom Weiterleiter innerhalb von fünf Minuten automatisch angewendet.
Beispielkonfigurationen
Sie können die folgenden Konfigurationsdateien als Vorlagen verwenden, um eigene zu erstellen.
Beispielkonfiguration mit zwei Dateien
Bei diesem Dateisystem werden Anmeldedaten aus Sicherheitsgründen in einer separaten Datei gespeichert. Sie können die Datei FORWARDER_NAME
.conf in einem Versionskontroll-Repository oder einem beliebigen offenen Konfigurationsverwaltungssystem speichern.
Sie können die Datei FORWARDER_NAME
_auth.conf direkt auf der physischen oder virtuellen Maschine speichern, auf der der Weiterleiter ausgeführt wird.
Das folgende Codebeispiel zeigt das Format der Konfigurationsdateien für einen Weiterleiter.
Die Datei FORWARDER_NAME.conf
output: url: malachiteingestion-pa.googleapis.com:443 identity: identity: collector_id: COLLECTOR_ID \ customer_id: CUSTOMER_ID \ collectors: - syslog: common: enabled: true data_type: "WINDOWS_DHCP" data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10514 udp_address: 0.0.0.0:10514 connection_timeout_sec: 60 tcp_buffer_size: 524288 - syslog: common: enabled: true data_type: "WINDOWS_DNS" data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10515 connection_timeout_sec: 60 tcp_buffer_size: 524288
Datei FORWARDER_NAME_auth.conf
output: identity: secret_key: | { "type": "service_account", "project_id": "PROJECT_ID" \, "private_key_id": "PRIVATE_KEY_ID" \, "private_key": "-----BEGIN PRIVATE KEY-----\\"PRIVATE_KEY" \n-----END PRIVATE KEY-----\n", "client_email": "CLIENT_EMAIL" \, "client_id": "CLIENT_ID" \, "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/example-account-1%40example-account.iam.gserviceaccount.com" } collectors: - syslog: - syslog: certificate: "../forwarder/inputs/testdata/localhost.pem" certificate_key: "../forwarder/inputs/testdata/localhost.key"
Beispielkonfiguration mit einer einzelnen Datei
output: url: malachiteingestion-pa.googleapis.com:443 identity: identity: collector_id: "COLLECTOR_ID" \ customer_id: "CUSTOMER_ID" \ secret_key: | { "type": "service_account", "project_id": "PROJECT_ID" \, "private_key_id": "PRIVATE_KEY_ID" \, "private_key": "-----BEGIN PRIVATE KEY-----\ "PRIVATE_KEY" \n-----END PRIVATE KEY-----\n", "client_email": "CLIENT_EMAIL" \, "client_id": "CLIENT_ID" \, "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/malachite-test-1%40malachite-test.iam.gserviceaccount.com" } collectors: - syslog: common: enabled: true data_type: "WINDOWS_DHCP" data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10514 udp_address: 0.0.0.0:10514 connection_timeout_sec: 60 tcp_buffer_size: 524288 - syslog: common: enabled: true data_type: "WINDOWS_DNS" data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10515 connection_timeout_sec: 60 certificate: "../forwarder/inputs/testdata/localhost.pem" certificate_key: "../forwarder/inputs/testdata/localhost.key" tcp_buffer_size: 524288
Von einem einzelnen Dateisystem in ein zwei Dateisysteme konvertieren
Wenn Sie eine einzelne Konfigurationsdatei verwenden und zum zwei Dateisystem wechseln möchten, gehen Sie so vor:
Erstellen Sie eine Kopie der vorhandenen Konfigurationsdatei.
Speichern Sie eine Datei als
FORWARDER_NAME
.conf und löschen Sie die Autorisierungsdaten aus der Datei.Speichern Sie die andere Datei als
FORWARDER_NAME
_auth.conf und löschen Sie alle nicht autorisierten Daten aus der Datei. Sie können die Beispielkonfiguration als Referenz verwenden. Beachten Sie die Namenskonvention und die anderen Richtlinien, die im Abschnitt Konfigurationen anpassen erwähnt werden.
Datentypen in der Konfigurationsdatei definieren
In den folgenden Abschnitten erfahren Sie, wie Sie den Google SecOps-Weiterleiter so konfigurieren, dass verschiedene Datentypen aufgenommen und an die Google SecOps-Instanz weitergeleitet werden.
Splunk-Daten
Sie können den Google SecOps-Weiterleiter so konfigurieren, dass Ihre Splunk-Daten an Google SecOps weitergeleitet werden. Google Cloud konfiguriert den Google SecOps-Weiterleiter mit den folgenden Informationen, um Ihre Daten aus Splunk weiterzuleiten:
URL für die Splunk REST API (z. B. https://10.0.113.15:8089).
Splunk-Abfragen zum Generieren von Daten für jeden der erforderlichen Datentypen (z. B. index=dns).
FORWARDER_NAME.conf output: collectors: - splunk: common: enabled: true data_type: WINDOWS_DNS data_hint: "#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto trans_id query qclass qclass_name" batch_n_seconds: 10 batch_n_bytes: 819200 url: https://127.0.0.1:8089 is_ignore_cert: true minimum_window_size: 10s maximum_window_size: 30s query_string: search index=* sourcetype=dns query_mode: realtime
- Stellen Sie die Anmeldedaten für Ihr Splunk-Konto für den Google SecOps-Weiterleiter bereit. Erstellen Sie dazu eine
creds.txt
-Datei.
So verwenden Sie eine creds.txt
-Datei:
Erstellen Sie eine lokale Datei für Ihre Splunk-Anmeldedaten und nennen Sie sie
creds.txt
.Geben Sie Ihren Nutzernamen in die erste Zeile und das Passwort in die zweite Zeile ein:
cat creds.txt myusername mypassword
Wenn Sie den Google SecOps-Weiterleiter verwenden möchten, um auf eine Splunk-Instanz zuzugreifen, kopieren Sie die Datei
creds.txt
in das Konfigurationsverzeichnis (das Verzeichnis, in dem sich die Konfigurationsdateien befinden).Linux
cp creds.txt /opt/chronicle/config/creds.txt
Windows
cp creds.txt c:/opt/chronicle/config/creds.txt
Prüfen Sie, ob sich die Datei
creds.txt
im richtigen Verzeichnis befindet:Linux
ls /opt/chronicle/config
Windows
ls c:/opt/chronicle/config
Syslog-Daten
Ein Weiterleiter kann als Syslog-Server verwendet werden. Sie können jeden Server konfigurieren, der das Senden von Syslog-Daten über eine TCP- oder UDP-Verbindung unterstützt, um die Daten an den Google SecOps-Weiterleiter weiterzuleiten. Sie können die Daten steuern, die der Server an den Weiterleiter sendet. Der Weiterleiter kann die Daten dann an Google SecOps weiterleiten.
In der FORWARDER_NAME.conf
-Konfigurationsdatei (von Google Cloud bereitgestellt) wird angegeben, welche Ports für jeden Typ von weitergeleiteten Daten überwacht werden sollen (z. B. Port 10514). Standardmäßig akzeptiert der Google SecOps-Weiterleiter sowohl TCP- als auch UDP-Verbindungen.
Sie können die Größe des TCP-Puffers anpassen. Die Standardgröße des TCP-Puffers beträgt 64 KB. Der Standard- und empfohlene Wert für connection_timeout
ist 60 Sekunden.
Die TCP-Verbindung wird beendet, wenn sie länger als 60 Sekunden inaktiv ist.
rsyslog konfigurieren
Um rsyslog zu konfigurieren, müssen Sie für jeden Port ein Ziel angeben, z. B. für jeden Datentyp. Die folgenden Beispiele veranschaulichen die rsyslog-Zielkonfiguration:
TCP-Protokoll-Traffic:
dns.* @@192.168.0.12:10514
UDP-Protokoll-Traffic:
dns.* @192.168.0.12:10514
Weitere Informationen finden Sie in der Systemdokumentation.
TLS für Syslog-Konfigurationen aktivieren
Sie können TLS für die Syslog-Verbindung zum Google SecOps-Weiterleiter aktivieren. Geben Sie in der Konfigurationsdatei des Brokers (FORWARDER_NAME
.conf) den Speicherort Ihres selbst generierten Zertifikats und Zertifikatsschlüssels an, wie im folgenden Beispiel gezeigt.
Sie können im Verzeichnis configuration
ein Verzeichnis certs
erstellen und die Zertifikatdateien darin speichern.
Linux:
Zertifikat | /opt/chronicle/external/certs/client_generated_cert.pem |
certificate_key | /opt/chronicle/external/certs/client_generated_cert.key |
Windows:
Zertifikat | c:/opt/chronicle/external/certs/client_generated_cert.pem |
certificate_key | c:/opt/chronicle/external/certs/client_generated_cert.key |
Ändern Sie die Konfigurationsdatei des Brokers (FORWARDER_NAME
.conf) anhand des Beispiels so:
Linux:
collectors: - syslog: common: enabled: true data_type: WINDOWS_DNS data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10515 tcp_buffer_size: 65536 connection_timeout_sec: 60 certificate: "/opt/chronicle/external/certs/client_generated_cert.pem" certificate_key: "/opt/chronicle/external/certs/client_generated_cert.key" minimum_tls_version: "TLSv1_3"
Windows:
collectors: - syslog: common: enabled: true data_type: WINDOWS_DNS data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 tcp_address: 0.0.0.0:10515 tcp_buffer_size: 65536 connection_timeout_sec: 60 certificate: "c:/opt/chronicle/external/certs/client_generated_cert.pem" certificate_key: "c:/opt/chronicle/external/certs/client_generated_cert.key" minimum_tls_version: "TLSv1_3"
Die TLS-Version der Eingabeanfrage muss höher als die TLS-Mindestversion sein. Die Mindest-TLS-Version muss einer der folgenden Werte sein: TLSv1_0, TLSv1_1, TLSv1_2 oder TLSv1_3.
Dateidaten
Ein Datei-Collector ist für das Abrufen von Protokollen aus einer Datei konzipiert, die mit dem Docker-Container verknüpft ist. Sie können diese Option verwenden, wenn Sie Protokolle aus einer einzelnen Protokolldatei manuell hochladen möchten.
Starten Sie den Google SecOps-Weiterleiter aus dem Docker-Container, um das Ladevolumen dem Container zuzuordnen:
Linux
docker run
--detach
--name cfps
--log-opt max-size=100m
--log-opt max-file=10
--net=host
-v /opt/chronicle/config:/opt/chronicle/external
-v /var/log/crowdstrike/falconhostclient:/opt/chronicle/edr
gcr.io/chronicle-container/cf_production_stable
Windows
docker run ` --name cfps ` --log-opt max-size=100m ` --log-opt max-file=10 ` -p 10514:10514 ` -v c:/opt/chronicle/config:c:/opt/chronicle/external ` -v c:/var/log/crowdstrike/falconhostclient:c:/opt/chronicle/edr ` gcr.io/chronicle-container/cf_production_stable_windows
Sie können mehrere Ports mit mehreren Optionen oder mehreren Bereichen hinzufügen. Beispiel: -p 3001:3000 -p 2023:2022
oder -p 7000-8000:7000-8000
.
Die im Beispielcode angegebenen Portnummern sind Beispiele. Ersetzen Sie die Portnummern nach Bedarf.
Anhand des Beispiels können Sie die Konfiguration des Google SecOps-Weiterleitungsservers (FORWARDER_NAME.conf
-Datei) so ändern:
Linux
collectors: - file: common: enabled: true data_type: CS_EDR data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 file_path: /opt/chronicle/edr/sample.txt filter:
Windows
collectors: - file: common: enabled: true data_type: CS_EDR data_hint: batch_n_seconds: 10 batch_n_bytes: 1048576 file_path: c:/opt/chronicle/edr/sample.txt filter:
Die Datei sample.txt
muss sich im Ordner /var/log/crowdstrike/falconhostclient
befinden.
Flag-Konfigurationen
skip_seek_to_end
(bool): Dieses Flag ist standardmäßig auf false
gesetzt und die Dateieingabe sendet nur neue Protokollzeilen als Eingabe. Wenn Sie diesen Wert auf true
festlegen, werden beim Neustart des Brokers alle vorherigen Logzeilen noch einmal gesendet. Dies führt zu einer Log-Duplizierung. Das Festlegen dieses Flags auf true
ist in bestimmten Situationen hilfreich, z. B. bei Ausfällen, da beim Neustart des Brokers die fehlenden Protokollzeilen noch einmal gesendet werden.
poll
(bool): Der Datei-Collector verwendet die Tail-Bibliothek, um nach Änderungen im Dateisystem zu suchen. Wenn Sie dieses Flag auf true
festlegen, verwendet die Tail-Bibliothek die Polling-Methode anstelle der Standard-Benachrichtigungsmethode.
Paketdaten
Der Google SecOps-Weiterleiter kann Pakete anstelle von Logeinträgen direkt von einer Netzwerkschnittstelle erfassen.
Linux-Systeme
Der Google SecOps-Weiterleiter kann Pakete mit libcap unter Linux erfassen. Weitere Informationen zu libcap finden Sie unter libcap – Linux-Manpage.
Anstelle von Logeinträgen werden Rohnetzwerkpakete erfasst und an Google Cloud gesendet. Diese Erfassung ist auf eine lokale Schnittstelle beschränkt. Wenn Sie die Paketerfassung für Ihr System aktivieren möchten, wenden Sie sich an den SecOps-Support von Google.
Google Cloud konfiguriert den Google SecOps-Weiterleiter mit dem Berkeley Packet Filter (BPF)-Ausdruck, der beim Erfassen von Paketen verwendet wird (z. B. Port 53 und nicht localhost). Weitere Informationen finden Sie unter Berkeley-Paketfilter.
Windows-Systeme
Der Google SecOps-Weiterleiter kann Pakete mit Npcap auf Windows-Systemen erfassen.
Anstelle von Logeinträgen werden Rohnetzwerkpakete erfasst und an Google Cloud gesendet. Diese Erfassung ist auf eine lokale Schnittstelle beschränkt. Wenn Sie Ihren Google SecOps-Weiterleiter für die Paketerfassung konfigurieren möchten, wenden Sie sich an den Google SecOps-Support.
Anforderungen an einen PCAP-Weiterleiter für die Paketerfassung:
Installieren Sie Npcap auf dem Microsoft Windows-Host.
Gewähren Sie dem Root- oder Administrator des Google SecOps-Weiterleitungsservers Berechtigungen zum Überwachen der Netzwerkschnittstelle.
Aktivieren Sie bei der Npcap-Installation den WinPcap-Kompatibilitätsmodus.
Zum Konfigurieren eines PCAP-Weiterleiters benötigt Google Cloud die GUID für die Schnittstelle, die zum Erfassen von Paketen verwendet wird.
Führen Sie getmac.exe
auf dem Computer aus, auf dem Sie den Google SecOps-Weiterleiter installieren möchten (entweder auf dem Server oder auf dem Computer, der den Spanning Tree Port überwacht), und senden Sie die Ausgabe an Google SecOps.
Alternativ können Sie die Konfigurationsdatei ändern. Suchen Sie den PCAP-Abschnitt und ersetzen Sie den vorhandenen GUID-Wert durch die GUID, die Sie durch Ausführen von getmac.exe
erhalten haben.
Hier ist beispielsweise ein Original-PCAP-Abschnitt:
- pcap:
common:
enabled: true
data_type: PCAP_DNS
batch_n_seconds: 10
batch_n_bytes: 1048576
interface: \Device\NPF_{1A7E7C8B-DD7B-4E13-9637-0437AB1A12FE}
bpf: udp port 53
Ausgabe nach dem Ausführen von getmac.exe
:
C:\>getmac.exe
Physical Address Transport Name
===========================================================================
A4-73-9F-ED-E1-82 \Device\Tcpip_{2E0E9440-ABFF-4E5B-B43C-E188FCAD1234}
Überarbeiteter PCAP-Abschnitt mit der neuen GUID:
- pcap:
common:
enabled: true
data_type: PCAP_DNS
batch_n_seconds: 10
batch_n_bytes: 1048576
interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
bpf: udp port 53
Die getmac.exe
-Ausgabe für den Transportnamen beginnt mit \Device\Tcpip
, während der vergleichbare pcap-Abschnitt mit \Device\NPF
beginnt.
Daten aus dem Kafka-Thema
Der Google Security Operations-Weiterleiter unterstützt die Datenaufnahme direkt aus Kafka-Themen. Sie können bis zu drei Weiterleiter bereitstellen und Daten aus demselben Kafka-Thema abrufen, indem Sie das Konzept von Verbrauchergruppen für eine effiziente und parallele Verarbeitung nutzen. Weitere Informationen finden Sie unter Kafka. Weitere Informationen zu Kafka-Nutzergruppen finden Sie unter Kafka-Nutzer.
In der folgenden Weiterleitungskonfiguration wird gezeigt, wie Sie den Weiterleiter so einrichten, dass er Daten aus den Kafka-Themen aufnimmt.
Linux
Datei FORWARDER_NAME.conf
collectors: - kafka: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true topic: example-topic group_id: chronicle-forwarder timeout: 60s brokers: ["broker-1:9092", "broker-2:9093"] tls: insecureSkipVerify: true certificate: "/path/to/cert.pem" certificate_key: "/path/to/cert.key" - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Datei FORWARDER_NAME_auth.conf
collectors: - kafka: username: user password: password - syslog:
Windows
FORWARDER_NAME.conf-Datei
collectors: - kafka: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true topic: example-topic group_id: chronicle-forwarder timeout: 60s brokers: ["broker-1:9092", "broker-2:9093"] tls: insecureSkipVerify: true certificate: "c:/path/to/cert.pem" certificate_key: "c:/path/to/cert.key" - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Datei FORWARDER_NAME_auth.conf
collectors: - kafka: username: user password: password - syslog:
WebProxy-Daten
Der Google SecOps-Weiterleiter kann Webproxy-Daten direkt über eine Netzwerkschnittstelle erfassen.
Linux
Der Google SecOps-Weiterleiter kann WebProxy-Daten mit libcap unter Linux erfassen. Weitere Informationen zu libcap finden Sie unter libcap – Linux-Manpage. Wenn Sie die Webproxy-Datenerhebung für Ihr System aktivieren möchten, wenden Sie sich an den Google SecOps-Support.
Ändern Sie die Konfiguration des Google SecOps-Weiterleitungsservers (FORWARDER_NAME.conf
-Datei) folgendermaßen:
- webproxy:
common:
enabled : true
data_type: <Your LogType>
batch_n_seconds: 10
batch_n_bytes: 1048576
interface: any
bpf: tcp and dst port 80
Windows
Der Weiterleiter kann WebProxy-Daten mit Npcap erfassen und an Google Cloud senden.
Wenn Sie die Webproxy-Datenerfassung für Ihr System aktivieren möchten, wenden Sie sich an den Google SecOps-Support.
Führen Sie die folgenden Schritte aus, bevor Sie einen WebProxy-Weiterleiter ausführen:
Installieren Sie Npcap auf dem Microsoft Windows-Host. Aktivieren Sie während der Installation den WinPcap-Kompatibilitätsmodus.
Gewähren Sie dem Weiterleiter Root- oder Administratorberechtigungen, um die Netzwerkschnittstelle zu überwachen.
Rufen Sie die GUID für die Schnittstelle ab, die zum Erfassen der WebProxy-Pakete verwendet wurde.
Führen Sie
getmac.exe
auf dem Computer aus, auf dem Sie den Google SecOps-Weiterleiter installieren möchten, und senden Sie die Ausgabe an Google SecOps. Alternativ können Sie die Konfigurationsdatei ändern. Suchen Sie den Abschnitt „WebProxy“ und ersetzen Sie die GUID neben der Schnittstelle durch die GUID, die nach dem Ausführen vongetmac.exe
angezeigt wird.Ändern Sie die Konfigurationsdatei des Google SecOps-Weiterleiters (
FORWARDER_NAME.conf
) so:- webproxy: common: enabled : true data_type: <Your LogType> batch_n_seconds: 10 batch_n_bytes: 1048576 interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734} bpf: tcp and dst port 80
Schlüsselattribute in der Konfigurationsdatei konfigurieren
In der folgenden Tabelle sind wichtige Parameter aufgeführt, die in der Konfigurationsdatei des Brokers verwendet werden.
Parameter | Beschreibung |
---|---|
data_type | Die Art der Protokolldaten, die der Protokollierungsmechanismus erfassen und verarbeiten kann. |
Metadaten | Metadaten, die globale Metadaten überschreiben. |
max_file_buffer_bytes | Die maximale Anzahl von Byte, die im Laufwerks- oder Dateipuffer angesammelt werden können.
Der Standardwert ist 1073741824 , also 1 GB. |
max_memory_buffer_bytes | Maximale Anzahl von Bytes, die im Speicherpuffer angesammelt werden können. Der Standardwert ist 1073741824 , also 1 GB. |
write_to_disk_dir_path | Der Pfad, der für den Datei- oder Laufwerkbuffer verwendet werden soll. |
write_to_disk_buffer_enabled | Bei true wird anstelle des Arbeitsspeicherpuffers der Laufwerkpuffer verwendet. Der Standardwert ist false .
|
batch_n_bytes | Maximale Anzahl von Byte, die vom Collector erfasst werden können, bevor die Daten in Batches zusammengefasst werden. Der Standardwert ist 1048576 , also 1 MB. |
batch_n_seconds | Die Anzahl der Sekunden, nach denen die vom Collector erfassten Daten in Batches zusammengefasst werden. Der Standardwert beträgt 11 Sekunden. |
data_hint | Datenformat, das der Collector empfangen kann (normalerweise der Header der Protokolldatei, der das Format beschreibt). |
Eine umfassende Liste der in der Konfigurationsdatei verwendeten Parameter finden Sie unter Konfigurationsfelder für Weiterleitungen und Konfigurationsfelder für Collector.
Datenkompression
Die Protokollkomprimierung ist standardmäßig deaktiviert. Wenn Sie die Protokollkomprimierung aktivieren, lässt sich der Bandbreitenverbrauch möglicherweise reduzieren. Die Aktivierung der Protokollkomprimierung kann jedoch auch die CPU-Auslastung erhöhen. Bewerten Sie den Trade-off anhand Ihrer Umgebung und Protokolldaten.
Wenn Sie die Protokollkomprimierung aktivieren möchten, setzen Sie das Feld compression
in der Konfigurationsdatei des Google SecOps-Weiterleiters auf true
, wie im folgenden Beispiel gezeigt:
Die Datei FORWARDER_NAME.conf
output: compression: true url: malachiteingestion-pa.googleapis.com:443 identity: identity: collector_id: 10479925-878c-11e7-9421-10604b7cb5c1 customer_id: ebdc4bb9-878b-11e7-8455-10604b7cb5c1 ...
Datei FORWARDER_NAME_auth.conf
output: identity: secret_key: | { "type": "service_account", ... }
Laufwerkpufferung
Mit der Laufwerkpufferung können Sie nicht verarbeitete Nachrichten auf dem Laufwerk statt im Arbeitsspeicher puffern.
Sie können die automatische Speicherpufferung so konfigurieren, dass ein dynamisch freigegebener Puffer für alle Collector verwendet wird. So lassen sich Traffic-Spitzen besser bewältigen. Fügen Sie Folgendes in die Weiterleitungskonfiguration ein, um den dynamisch freigegebenen Puffer zu aktivieren:
auto_buffer: enabled: true target_memory_utilization: 80
Wenn die automatische Laufwerkspeicherung aktiviert ist, target_memory_utilization
aber nicht definiert ist, wird der Standardwert 70
verwendet.
Wenn Sie den Forwarder mit Docker ausführen, empfehlen wir aus Gründen der Isolation, ein separates Volume von Ihrem Konfigurationsvolume bereitzustellen. Außerdem sollte jede Eingabe in einem eigenen Verzeichnis oder Volume isoliert werden, um Konflikte zu vermeiden.
Beispielkonfiguration
Die folgende Konfiguration enthält Syntax zum Aktivieren der Laufwerkpufferung:
collectors: - syslog: common: write_to_disk_buffer_enabled: true # /buffers/NIX_SYSTEM
is part of the external mounted volume for the forwarder write_to_disk_dir_path: /buffers/NIX_SYSTEM
max_file_buffer_bytes: 1073741824 batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Filter für reguläre Ausdrücke
Mit regulären Ausdrucksfiltern können Sie Protokolle nach Mustern filtern, die mit den Rohprotokolldaten abgeglichen werden. Die Filter verwenden die RE2-Syntax. Die Filter müssen einen regulären Ausdruck enthalten und optional ein Verhalten bei einer Übereinstimmung definieren.
Das Standardverhalten bei einer Übereinstimmung ist block
. Sie können Filter mit allow
-Verhalten angeben. Wenn Sie einen allow
-Filter angeben, blockiert der Weiterleiter alle Protokolle, die nicht mit mindestens einem allow
-Filter übereinstimmen.
Es ist möglich, eine beliebige Anzahl von Filtern zu definieren. Block
-Filter haben Vorrang vor allow
-Filtern.
Bei der Definition von Filtern muss ihnen ein Name zugewiesen werden. Die Namen der aktiven Filter werden über die Statistiken zur Gesundheit des Weiterleitungsservers an Google SecOps gesendet. Filter, die im Stammverzeichnis der Konfiguration definiert sind, werden mit Filtern auf Ebene des Collectors zusammengeführt. Bei Namenskonflikten haben die Filter auf Collector-Ebene Vorrang. Wenn weder auf Stamm- noch auf Collectorebene Filter definiert sind, werden alle Protokolle zugelassen.
Beispielkonfiguration
In der folgenden Weiterleitungskonfiguration werden WINEVTLOG
-Protokolle, die nicht mit dem Stammfilter (allow_filter
) übereinstimmen, blockiert. Aufgrund des regulären Ausdrucks werden mit dem Filter nur Protokolle mit Prioritäten zwischen 0 und 99 zugelassen.
NIX_SYSTEM
-Protokolle, die „foo“ oder „bar“ enthalten, werden jedoch trotz allow_filter
blockiert. Das liegt daran, dass die Filter ein logisches ODER verwenden. Alle Protokolle werden verarbeitet, bis ein Filter ausgelöst wird.
regex_filters: allow_filter: regexp: ^<[1-9][0-9]?$>.*$ behavior_on_match: allow collectors: - syslog: common: regex_filters: block_filter_1: regexp: ^.*foo.*$ behavior_on_match: block block_filter_2: regexp: ^.*bar.*$ batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Benutzerdefinierte Labels
Mit Labels können Protokollen benutzerdefinierte Metadaten in Form von Schlüssel/Wert-Paaren hinzugefügt werden. Sie können Labels für einen gesamten Weiterleiter oder für einen bestimmten Collector des Weiterleiters konfigurieren. Wenn beide vorhanden sind, überschreiben Labels auf Ebene des Datensammlers Labels auf Ebene des Übertragers, wenn sich die Schlüssel überschneiden.
Beispielkonfiguration
In der folgenden Weiterleitungskonfiguration sind die Schlüssel/Wert-Paare „foo=bar“ und „meow=mix“ an WINEVTLOG
-Protokolle angehängt und die Schlüssel/Wert-Paare „foo=baz“ und „meow=mix“ an NIX_SYSTEM
-Protokolle.
metadata: labels: foo: bar meow: mix collectors: syslog: common: metadata: labels: foo: baz meow: mix batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Namespaces
Mithilfe von Namespace-Labels können Sie Protokolle aus verschiedenen Netzwerksegmenten identifizieren und Überschneidungen von IP-Adressen beheben. Jeder für den Weiterleiter konfigurierte Namespace wird mit den zugehörigen Assets auf der Benutzeroberfläche von Google SecOps angezeigt. Sie können auch mit der Google SecOps-Suche nach Namespaces suchen.
Informationen zum Aufrufen von Namespaces in der Benutzeroberfläche von Google SecOps finden Sie unter Asset-Namespaces.
Beispielkonfiguration
In der folgenden Weiterleitungskonfiguration sind die WINEVTLOG
-Protokolle dem FORWARDER-Namespace und die NIX_SYSTEM
-Protokolle dem CORPORATE-Namespace zugeordnet.
metadata: namespace: FORWARDER collectors: - syslog: common: metadata: namespace: CORPORATE batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60
Optionen für Load Balancing und Hochverfügbarkeit
Sie können die Optionen für den HTTP-Server, das Load Balancing und die Hochverfügbarkeit im Abschnitt „server“ der Weiterleitungskonfigurationsdatei konfigurieren. Mit diesen Optionen können Zeitlimits und Statuscodes festgelegt werden, die als Reaktion auf Systemdiagnosen zurückgegeben werden, die in Container-Schedulern und orchestrierungsbasierten Bereitstellungen sowie von Load Balancern empfangen werden.
Verwenden Sie die folgenden URL-Pfade für Systemdiagnosen, Bereitschafts- und Aktivitätsprüfungen.
Die <host:port>
-Werte werden in der Weiterleitungskonfiguration definiert.
http://<host:port>/meta/available
: Aktivitätsprüfungen für Container-Scheduler oder ‑Orchestratorenhttp://<host:port>/meta/ready
: Bereitschafts- und Load Balancer-Systemdiagnosen
Die folgende Weiterleitungskonfiguration ist ein Beispiel für Load Balancing und Hochverfügbarkeit:
collectors: - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:NIX_SYSTEM
enabled: true tcp_address: 0.0.0.0:30000 connection_timeout_sec: 60 - syslog: common: batch_n_bytes: 1048576 batch_n_seconds: 10 data_hint: null data_type:WINEVTLOG
enabled: true tcp_address: 0.0.0.0:30001 connection_timeout_sec: 60 server: graceful_timeout: 15s drain_timeout: 10s http: port: 8080 host: 0.0.0.0 read_timeout: 3s read_header_timeout: 3s write_timeout: 3s idle_timeout: 3s routes: - meta: available_status: 204 ready_status: 204 unready_status: 503
Konfigurationspfad | Beschreibung |
---|---|
server : graceful_timeout | Die Zeitspanne, in der der Weiterleiter eine fehlerhafte Bereitschafts-/Systemdiagnose zurückgibt und trotzdem neue Verbindungen akzeptiert. Dies ist auch die Zeit, die zwischen dem Empfang eines Stoppsignals und dem tatsächlichen Herunterfahren des Servers vergeht. So hat der Load Balancer Zeit, den Weiterleiter aus dem Pool zu entfernen. |
server : drain_timeout | Die Zeit, die der Weiterleiter wartet, bis aktive Verbindungen von selbst geschlossen werden, bevor sie vom Server geschlossen werden. |
server : http : port | Die Portnummer, unter der der HTTP-Server auf Systemdiagnosen vom Load Balancer wartet. Muss zwischen 1024 und 65535 liegen. |
server : http : host | Die IP-Adresse oder der Hostname, der in IP-Adressen aufgelöst werden kann, auf die der Server hören soll. Ist das Feld leer, wird der Standardwert „local system“ (0.0.0.0) verwendet. |
server : http : read_timeout | Wird zum Optimieren des HTTP-Servers verwendet. Muss in der Regel nicht von der Standardeinstellung geändert werden. Die maximale Zeit, die zum Lesen der gesamten Anfrage benötigt wird, einschließlich Header und Text. Sie können sowohl „read_timeout“ als auch „read_header_timeout“ festlegen. |
server : http : read_header_timeout | Wird zum Optimieren des HTTP-Servers verwendet. Muss in der Regel nicht von der Standardeinstellung geändert werden. Die maximale Zeit, die zum Lesen von Anfrageheadern zulässig ist. Die Frist für das Lesen der Verbindung wird nach dem Lesen des Headers zurückgesetzt. |
server : http : write_timeout | Wird zum Optimieren des HTTP-Servers verwendet. Muss in der Regel nicht von der Standardeinstellung geändert werden. Die maximale Zeitspanne, innerhalb derer eine Antwort gesendet werden muss. Er wird zurückgesetzt, wenn ein neuer Anfrageheader gelesen wird. |
server : http : idle_timeout | Wird zum Optimieren des HTTP-Servers verwendet. Muss in der Regel nicht von der Standardeinstellung geändert werden. Die maximale Wartezeit auf die nächste Anfrage, wenn inaktive Verbindungen aktiviert sind. Wenn „idle_timeout“ null ist, wird der Wert von „read_timeout“ verwendet. Wenn beide null sind, wird „read_header_timeout“ verwendet. |
routes : meta : ready_status | Der Statuscode, den der Weiterleiter zurückgibt, wenn er in einer der folgenden Situationen bereit ist, den Traffic anzunehmen:
|
routes : meta : unready_status | Der Statuscode, den der Weiterleiter zurückgibt, wenn er nicht bereit ist, Traffic anzunehmen. |
routes : meta : available_status | Der Statuscode, den der Weiterleiter zurückgibt, wenn eine Aktivitätsprüfung empfangen wird und der Weiterleiter verfügbar ist. Container-Scheduler oder ‑Orchestrator senden häufig Liveness-Prüfungen. |