Forwarder Management API
Mit der Google Security Operations Forwarder Management API können Sie Folgendes programmatisch tun:
- Weiterleitungen erstellen und verwalten
- Collectors erstellen und verwalten.
- Rufen Sie den Dateiinhalt für die Konfigurationsdateien (
.conf
) und Authentifizierungsdateien (_auth.conf
) eines Google Security Operations-Forwarders ab.
Forwarder bestehen aus einem oder mehreren Collectors. Die Konfiguration jedes Collectors gibt den Datenaufnahmemechanismus (z. B. Datei, Kafka, PCAP, Splunk oder Syslog) und den Logtyp an.
Vorausgesetzt, die Hardwareanforderungen sind erfüllt, können Sie viele Collector auf demselben Forwarder verwenden, um Daten aus einer Vielzahl von Mechanismen und Protokolltypen aufzunehmen. Sie können beispielsweise einen Weiterleiter mit zwei syslog-Empfängern installieren, die jeweils auf PAN_FIREWALL- und CISCO_ASA_FIREWALL-Daten an separaten Ports warten.
Mit der API können Sie Weiterleitungen und ihre Collector in Ihrer Google Security Operations-Instanz erstellen. Nachdem ein Forwarder erstellt wurde, können Sie den Endpunkt „Forwarder Files generieren“ verwenden, um den Dateiinhalt (als JSON-Nutzlast) für die Konfigurationsdateien (.conf
) und Authentifizierungsdateien (_auth.conf
) eines Forwarders abzurufen. Diese Inhalte können dann in die entsprechenden .conf
-Dateien für die Bereitstellung mit dem Google Security Operations-Weiterleitungsdienst auf einem Windows- oder Linux-System geschrieben werden.
Python-Beispiele für die Forwarder Management API finden Sie im GitHub-Repository.
Weiterleitung und Collector(s) erstellen
Ein Forwarder muss erstellt werden, bevor einer seiner Collectors erstellt werden kann.
So erstellen Sie einen Forwarder und dessen Collector(s):
- Weiterleitung erstellen
- Erstellen Sie einen Collector für den Forwarder.
- Optional: Wiederholen Sie Schritt 2, um weitere Collectors hinzuzufügen.
Authentifizierung bei der Google Security Operations API[:#Authenticate]
Diese Google Security Operations API verwendet zur Authentifizierung und Autorisierung das OAuth 2.0-Protokoll. Ihr Anwendung diese Aufgaben mit einer der folgenden Implementierungen ausführen kann:
Google API-Clientbibliothek für Ihre Computersprache verwenden
Direkte Schnittstelle zum OAuth 2.0-System über HTTP
Informationen zur Google-Authentifizierungsbibliothek in Python finden Sie in der Referenzdokumentation.
Google-Authentifizierungsbibliotheken sind eine Teilmenge der Google API-Clientbibliotheken. Weitere Sprachimplementierungen
API-Authentifizierungsdaten abrufen
Ihr Ansprechpartner für die Google-Sicherheitsoperationen stellt Ihnen Anmeldedaten für ein Google Developer-Dienstkonto zur Verfügung, damit der API-Client mit der API kommunizieren kann.
Sie müssen beim Initialisieren Ihres API-Clients auch den Authentifizierungsbereich angeben. Bei OAuth 2.0 wird der Zugriff einer Anwendung auf ein Konto mithilfe eines Bereichs eingeschränkt. Wenn eine Anwendung einen Bereich anfordert, ist das für die Anwendung ausgegebene Zugriffstoken auf den gewährten Bereich beschränkt.
Verwenden Sie den folgenden Umfang, um Ihren Google API-Client zu initialisieren:
https://www.googleapis.com/auth/chronicle-backstory
Beispiel für Python
Im folgenden Python-Beispiel wird gezeigt, wie die OAuth2-Anmeldedaten und der HTTP-Client mit google.oauth2
und googleapiclient
verwendet werden.
# Imports required for the sample - Google Auth and API Client Library Imports.
# Get these packages from https://pypi.org/project/google-api-python-client/ or run $ pip
# install google-api-python-client from your terminal
from google.oauth2 import service_account
from googleapiclient import _auth
SCOPES = ['https://www.googleapis.com/auth/chronicle-backstory']
# The apikeys-demo.json file contains the customer's OAuth 2 credentials.
# SERVICE_ACCOUNT_FILE is the full path to the apikeys-demo.json file
# ToDo: Replace this with the full path to your OAuth2 credentials
SERVICE_ACCOUNT_FILE = '/customer-keys/apikeys-demo.json'
# Create a credential using Google Developer Service Account Credential and Google Security Operations API
# Scope.
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
# Build an HTTP client to make authorized OAuth requests.
http_client = _auth.authorized_http(credentials)
# <your code continues here>
Chronicle API-Abfragelimits
Die Chronicle API erzwingt Limits für die Anzahl der Anfragen, die von einem einzelnen Kunden an die Google Security Operations-Plattform gesendet werden können. Wenn Sie das Ziel gibt der Chronicle API-Server HTTP 429 (RESOURCE_EXHAUSTED) an für den Anrufer. Wenn Sie Anwendungen für die Chronicle API entwickeln, empfiehlt Google, Ratenlimits in Ihrem System zu erzwingen, um eine Ressourcenausschöpfung zu vermeiden. Diese Limits gelten für alle Chronicle APIs, einschließlich der Search API, der Forwarder Management API und der Tooling API.
Das folgende Limit für die Chronicle Forwarder Management API wird erzwungen und wird in Abfragen pro Sekunde (Queries per Second, QPS) gemessen:
Chronicle API | API-Endpunkt | Limit |
Forwarder-Verwaltung | Forwarder erstellen | 1 Abfrage pro Sekunde |
Forwarder abrufen | 1 Abfrage pro Sekunde | |
Weiterleitungen auflisten | 1 Abfrage pro Sekunde | |
Forwarder aktualisieren | 1 Abfrage pro Sekunde | |
Forwarder löschen | 1 Abfrage pro Sekunde | |
Collector-Verwaltung | Collector erstellen | 1 Abfrage pro Sekunde |
Collector abrufen | 1 Abfrage pro Sekunde | |
Datensammler auflisten | 1 Abfragen pro Sekunde | |
Collector aktualisieren | 1 Abfrage pro Sekunde | |
Collector löschen | 1 Abfrage pro Sekunde |
Forwarder API-Referenz
In diesem Abschnitt werden die Endpunkte zum Erstellen und Verwalten von Weiterleitungen beschrieben. Endpunkte zum Erstellen und Verwalten von Collectorn finden Sie in der Collector API-Referenz.
Forwarder erstellen
Erstellt einen neuen Weiterleiter in der Google SecOps-Instanz. Der neue Forwarder schließt alle forwarder-Konfigurationswerte ein, die im Anfragetext angegeben sind. Konfigurationswerte für Sammler müssen mit „Create Collector“ (Sammler erstellen) angegeben werden, nachdem Sie „Create Forwarder“ (Weiterleiter erstellen) verwendet haben.
Bei bestimmten Einstellungen werden Konfigurationswerte, die fehlen oder im Anfragetext fehlen, auf Standardwerte gesetzt. Weitere Informationen zu Forwarder-Feldern und -Werten finden Sie unter Forwarder-Konfigurationsfelder.
Anfrage
POST https://backstory.googleapis.com/v2/forwarders
Anfragetext
{
"display_name": string,
"config": {
object (ForwarderConfig)
}
}
Körperparameter
Feld | Typ | Erforderlich | Beschreibung |
---|---|---|---|
display_name | String | Erforderlich | Der Name des Forwarders. Dieser Name wird in der Google SecOps-Benutzeroberfläche angezeigt. |
config | object | Optional | Die Konfigurationseinstellungen für diesen Forwarder. Siehe Felder für die Forwarder-Konfiguration. |
Anfragebeispiel
Dieses Beispiel zeigt die erforderlichen Schlüssel/Wert-Paare in einer Forwarder-Anfrage erstellen. Wenn ein Feld in der Anfrage nicht angegeben ist und einen Standardwert hat, wird dieser Standardwert beim Erstellen des Weiterleitungsservers angewendet. Weitere Informationen zu Standardwerten finden Sie unter Felder für die Forwarder-Konfiguration.
POST https://backstory.googleapis.com/v2/forwarders
{
"display_name": "chronicle_forwarder"
}
Antwort
Bei einer erfolgreichen Anfrage wird in der Antwort der HTTP-Statuscode 200 (OK) zurückgegeben.
Die Antwort zeigt die Konfigurationswerte, die beim Erstellen der Forwarder. Standardkonfigurationswerte werden auf bestimmte Einstellungen für die Ressourcenerstellung, wenn diese Felder fehlen oder in den Anfragetext. Weitere Informationen finden Sie unter Konfigurationsfelder für Weiterleitungen.
Antwortfelder
Zusätzlich zu den in der Anfrage angegebenen Feldern und den Feldern, für die angewendet werden, enthält die Antwort die folgenden generierten und reinen Ausgabefeldern.
Feld | Typ | Beschreibung |
---|---|---|
Name | String | Die Ressourcen-ID des Forwarders. Das Format ist
„forwarders/forwarderID“ festgelegt. Beispiel: forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56 |
Status | enum | Gibt den aktuellen Status des Forwarders an. Gültige Werte sind:
Der Standardwert ist ACTIVE. |
Beispiel für eine Antwort
Dies ist ein Beispiel für die Antwort, die für die obige Beispielanfrage zurückgegeben wurde.
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
"displayName": "chronicle_forwarder",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
"drainTimeout": 10,
"httpSettings": {
"port": "8080",
"host": "0.0.0.0",
"readTimeout": "3",
"readHeaderTimeout": "3",
"writeTimeout": "3",
"idleTimeout": "3"
"routeSettings": {
"availableStatusCode": "204",
"readyStatusCode": "204",
"unreadyStatusCode": "503"
},
},
},
},
"state": "ACTIVE"
}
Forwarder abrufen
Gibt einen Weiterleiter zurück.
Anfrage
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Anfragetext
Geben Sie keinen Anfragetext an.
Anfragebeispiel
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Beispiel für eine Antwort
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
"displayName": "chronicle_forwarder",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
"drainTimeout": 10,
"httpSettings": {
"port": "8080",
"host": "0.0.0.0",
"readTimeout": "3",
"readHeaderTimeout": "3",
"writeTimeout": "3",
"idleTimeout": "3"
"routeSettings": {
"availableStatusCode": "204",
"readyStatusCode": "204",
"unreadyStatusCode": "503"
},
},
},
},
"state": "ACTIVE"
}
Forwarder auflisten
Listet alle Weiterleitungen für eine Google SecOps-Instanz auf.
Anfrage
GET https://backstory.googleapis.com/v2/forwarders
Anfragebeispiel
GET https://backstory.googleapis.com/v2/forwarders
Antwort
Gibt eine Liste der Forwarder zurück.
Beispiel für eine Antwort
{
"forwarders": [
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56",
"displayName": "chronicle_forwarder_1",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
...
},
},
"state": "ACTIVE"
},
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde57",
"displayName": "chronicle_forwarder_2",
"config": {
"uploadCompression": "false",
"serverSettings": {
"gracefulTimeout": 15,
...
},
},
"state": "ACTIVE"
}
]
}
Forwarder aktualisieren
Sie können einen Forwarder aktualisieren, indem Sie mit dem URL-Suchparameter updateMask
die Felder angeben, die aktualisiert werden sollen.
Um beispielsweise den Anzeigenamen zu aktualisieren, verwendest du den updateMask
-Abfrageparameter wie folgt in der Patch-Anfrage:
?updateMask=displayName
Der Anfragetext sollte nur die Felder enthalten, die Sie aktualisieren möchten (an der richtigen Stelle).
Anfrage
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}?updateMask=<field_1,field_2>
Anfragetext
{
"display_name": string,
"config": {
object (ForwarderConfig)
},
}
Körperparameter
Feld | Typ | Erforderlich | Beschreibung |
---|---|---|---|
display_name | String | Erforderlich | Der Name des Forwarders. Dieser Name wird in der Google SecOps-Benutzeroberfläche angezeigt. |
config | object | Optional | Die Konfigurationseinstellungen für diesen Forwarder. Siehe Felder für die Forwarder-Konfiguration. |
Beispielanfrage
Dies ist ein Beispiel für eine Update Forwarder-Anfrage, bei der in der Anfrage
neue Werte für displayName
und fügt ein Metadatenlabel hinzu.
PATCH https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56?updateMask=displayName,config.metadata.labels
{
"display_name": "UpdatedForwarder",
"config": {
"metadata": {
"labels": [
{
"key": "office",
"value": "corporate",
}
]
}
}
}
Beispiel für eine Antwort
Dies ist ein Beispiel für die Antwort, die für die obige Beispielanfrage zurückgegeben wurde.
{
"name": "forwarders/{forwarderUUID}",
"displayName": "UpdatedForwarder",
"config": {
"uploadCompression": "false",
"metadata": {
"labels": [
{
"key": "office",
"value": "corporate"
}
]
}
},
"state": "ACTIVE"
}
Weiterleitung löschen
Löscht einen Weiterleiter.
Anfrage
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}
Anfragetext
Geben Sie keinen Anfragetext an.
Anfragebeispiel
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56
Antwortbeispiel
Wenn der Vorgang erfolgreich ist, gibt Delete Forwarder eine leere Antwort mit HTTP-Statuscode 200 (OK).
{}
Forwarderdateien generieren
Generiert und gibt den Inhalt der Konfigurationsdateien (.conf
) und Authentifizierungsdateien (_auth.conf
) des Forwarders zurück.
Anfrage
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}:generateForwarderFiles
Anfragetext
Geben Sie keinen Anfragetext an.
Anfragebeispiel
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56:generateForwarderFiles
Beispiel für eine Antwort
Wenn der Vorgang erfolgreich ist, wird der HTTP-Statuscode 200 (OK) zurückgegeben. Es
gibt auch den Inhalt einer Forwarder-Konfigurationsdatei zurück, einschließlich des
Konfigurationsdaten für die Collectors des Forwarders sowie den Inhalt der
Die Authentifizierungsdatei (_auth.conf
), die vom Forwarder zur Authentifizierung bei
Google SecOps-Instanz.
Felder für die Weiterleitungskonfiguration
In der folgenden Tabelle sind die Konfigurationseinstellungen der Forwarder aufgeführt, die Sie mit „Forwarder erstellen“ und „Forwarder aktualisieren“ angeben. Wenn Sie beim Erstellen eines Weiterleitungsservers keinen Wert für eine Einstellung angeben, wird der Standardwert der Einstellung (siehe unten) angewendet.
Die folgenden Felder können im Objekt config
der Anfrage angegeben werden
Textkörper.
Feld | Typ | Erforderlich | Beschreibung |
---|---|---|---|
upload_compression | bool | Optional | Bei true werden Datenblöcke vor dem Upload komprimiert.Der Standardwert ist false . |
metadata.asset_namespace | String | Optional | Der Namespace zum Identifizieren von Logs aus diesem Forwarder. Hinweis: Dies ist eine globale Einstellung, die für den Forwarder und die Collector des Forwarders gilt, sofern sie nicht auf Collectorebene überschrieben wird. Weitere Informationen finden Sie unter Namespaces konfigurieren. |
metadata.labels | list | Optional | Eine Liste beliebiger Schlüssel/Wert-Paare, die im Feld
Forwarder-Konfiguration. Hinweis: Dies ist eine globale Einstellung, die für den Forwarder und die Collector des Forwarders gilt, sofern sie nicht auf Collectorebene überschrieben wird. |
metadata.labels.key | String | Optional | Der Schlüssel für ein Feld in der Liste der Metadatenlabels. |
metadata.labels.value | String | Optional | Der Wert für ein Feld in der Liste der Metadatenlabels. |
regex_filters.description | String | Optional | Hier wird beschrieben, was herausgefiltert wird und warum. |
regex_filters.regexp | String | Optional | Der reguläre Ausdruck, der mit jeder eingehenden Zeile abgeglichen wird. |
regex_filters.behavior | enum | Optional | Gibt den Status der Serverfunktion an. Gültige Werte sind:
|
server_settings | object | Optional | Einstellungen für den integrierten HTTP-Server des Brokers, mit dem sich Load Balancing und Hochverfügbarkeitsoptionen für die syslog-Erfassung unter Linux konfigurieren lassen. |
server_settings.state | enum | Optional | Gibt den Status der Serverfunktionalität an. Gültige Werte sind:
|
server_settings.graceful_timeout | Ganzzahl | Optional | Die Anzahl der Sekunden, nach denen der Forwarder eine ungültige Antwort zurückgibt
und nimmt weiterhin neue Verbindungen an. 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. Der Standardwert ist 15 . |
server_settings.drain_timeout | Ganzzahl | Optional | Die Anzahl der Sekunden, nach denen der Weiterleiter wartet, bis aktive Verbindungen von selbst geschlossen wurden, bevor sie vom Server geschlossen werden. Der Standardwert ist 10 . |
server_settings.http_settings.port | integer | Optional | Die Portnummer, unter der der HTTP-Server auf Systemdiagnosen vom Load Balancer wartet. Muss zwischen 1024 und 65535 liegen. Der Standardwert ist 8080 . |
server_settings.http_settings.host | String | Optional | Die IP-Adresse oder der Hostname, der in IP-Adressen aufgelöst werden kann,
die der Server überwachen soll. Der Standardwert ist 0.0.0.0 (das lokale System). |
server_settings.http_settings.read_timeout | Ganzzahl | Optional | Die maximale Anzahl von Sekunden, die zum Lesen ganzer Anfragen benötigt werden, einschließlich Header und Text. Der Standardwert ist 3 . |
server_settings.http_settings.read_header_timeout | Ganzzahl | Optional | Die maximale Anzahl von Sekunden, die zum Lesen von Anfrageheadern zulässig ist. Der Standardwert ist 3 . |
server_settings.http_settings.write_timeout | integer | Optional | Die maximale Anzahl von Sekunden, die zum Senden einer Antwort zulässig ist. Der Standardwert ist 3 . |
server_settings.http_settings.idle_timeout | integer | Optional | Die maximale Anzahl an Sekunden, die bei Inaktivität auf die nächste Anfrage gewartet wird
Verbindungen aktiviert sind. Der Standardwert ist 3 . |
server_settings.http_settings.route_settings.available_status_code | Ganzzahl | Optional | Der Statuscode, der zurückgegeben wird, wenn eine Aktivitätsprüfung empfangen und der Weiterleiter verfügbar ist. Der Standardwert ist 204 . |
server_settings.http_settings.route_settings.ready_status_code | integer | Optional | Der Statuscode, der zurückgegeben wird, wenn der Weiterleiter bereit ist, Traffic anzunehmen. Der Standardwert ist 204 . |
server_settings.http_settings.route_settings.unready_status_code | Ganzzahl | Optional | Der Statuscode, der zurückgegeben wird, wenn der Weiterleiter nicht bereit ist, Traffic anzunehmen. Der Standardwert ist 503 . |
Collector API-Referenz
In diesem Abschnitt werden die Endpunkte für die Arbeit mit Collectors beschrieben.
Beim Erstellen und Aktualisieren von Collectors können Sie für jede Collector-Konfiguration Aufnahmeeinstellungen für genau einen der folgenden Punkte angeben:
- Protokolldateidaten
- Kafka-Topics
- Paketdaten (pcap)
- Splunk-Daten
- Syslog-Daten
Endpunkte für die Arbeit mit Spediteuren finden Sie in der Forwarder API-Referenz.
Collector erstellen
Erstellt im Google SecOps-Konto einen neuen Collector. Konfiguration Werte für Collectors müssen mithilfe von Create Collector angegeben werden, nachdem Forwarder erstellen.
Bei bestimmten Einstellungen werden Konfigurationswerte, die im Anfragetext fehlen oder den Wert „0“ haben, auf Standardwerte gesetzt. Weitere Informationen zu Feldern und Werten der Collector-Konfiguration finden Sie unter Collector-Konfigurationsfelder.
Anfrage
POST https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Anfragetext
{
"display_name": string,
"config": {
object (CollectorConfig)
}
"state": enum
}
Körperparameter
Feld | Typ | Erforderlich | Beschreibung |
---|---|---|---|
display_name | String | Erforderlich | Der Name des Collectors. Dieser Name wird in der Google SecOps-Benutzeroberfläche angezeigt. |
config | Objekt | Erforderlich | Die Konfigurationseinstellungen für diesen Collector. Weitere Informationen finden Sie unter Felder für die Collector-Konfiguration. |
Status | enum | Optional | Gibt den aktuellen Status des Collectors an. Gültige Werte sind:
|
Anfragebeispiel
In diesem Beispiel sind die erforderlichen Schlüssel/Wert-Paare in einer Create Collector-Anfrage zu sehen. Für nicht angegebene Felder werden beim Erstellen des Collectors Standardwerte angewendet.
In diesem Beispiel ist der Collector-Typ file
. Die Collector-Konfiguration ist also
enthält file_settings
, um den Collector-Typ und seine Einstellungen anzugeben. Wenn
ist der Collector-Typ syslog
, enthält die Collector-Konfiguration
syslog_settings
. Weitere Informationen finden Sie unter Konfigurationsfelder für Collector.
POST https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors
{
"display_name": "abc_collector",
"config" {
"log_type": "CS_EDR"
"file_settings": {
"file_path": "/opt/chronicle/edr/output/sample.txt",
}
}
}
Antwort
Bei einer erfolgreichen Anfrage wird in der Antwort der HTTP-Statuscode 200 (OK) zurückgegeben.
Die Antwort zeigt die Konfigurationswerte, die beim Erstellen der Collector. Standardkonfigurationswerte werden auf bestimmte Einstellungen für die Ressourcenerstellung, wenn diese Felder fehlen oder in den Anfragetext. Weitere Informationen finden Sie unter Konfigurationsfelder für Collector.
Antwortfelder
Zusätzlich zu den in der Anfrage angegebenen Feldern und den Feldern, für die Standardwerte angewendet werden, enthält die Antwort die folgenden Felder:
Feld | Typ | Beschreibung |
---|---|---|
Name | String | Die Ressourcen-ID des Collectors. Das Format ist
"forwarders/{forwarderID}/collectors/{collectorID}". Für
Beispiel:forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56 |
Antwortbeispiel
Dies ist ein Beispiel für die Antwort, die für das obige Anfragebeispiel zurückgegeben wurde.
{
"name": "forwarders/12ab3cd4-56ef-7ghi-j89k-1l23m4nopq56/collectors/
98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
"displayName": "abc_collector",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
Collector abrufen
Gibt einen Collector zurück.
Anfrage
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Anfragetext
Geben Sie keinen Anfragetext an.
Anfragebeispiel
GET
https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Antwortbeispiel
{
"name": "?",
"displayName": "abc_collector",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
Collectors auflisten
Listet die vorhandenen Collectors für den angegebenen Forwarder auf.
Anfrage
GET https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors
Anfragebeispiel
GET https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors
Antwort
Gibt mehrere Collectors zurück.
Beispiel für eine Antwort
{
"collectors": [
{
"name": "?",
"displayName": "abc_collector_1",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
},
{
"name": "?",
"displayName": "abc_collector_2",
"config": {
"logType": "tomcat",
"maxSecondsPerBatch": "10",
"maxBytesPerBatch": "1048576"
}
}
]
}
Collector aktualisieren
Wenn Sie einen Collector mit der API aktualisieren, können Sie die gesamte Collector-Konfiguration oder nur bestimmte Felder der Collector-Konfiguration überschreiben. In der Regel ist es am besten, um zu vermeiden, dass versehentlich alle Daten überschrieben werden. Zum Überschreiben -Felder angeben, geben Sie in Ihrer Aktualisierungsanfrage eine FieldMask an.
Wenn Sie eine FieldMask angeben möchten, um den Anzeigenamen für einen Messwert zu aktualisieren, geben Sie den URL-Abfrageparameter „updateMask“ in der Patch-Anfrage an. Beispiel:
?updateMask=displayName
Der Anfragetext darf nur die Felder enthalten, die Sie aktualisieren möchten (im ihren genauen Standort).
Anfrage
PATCH https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}?updateMask=<field_1,field_2>
Anfragetext
{
"display_name": string,
"config": {
object (CollectorConfig)
},
}
Körperparameter
Feld | Typ | Erforderlich | Beschreibung |
---|---|---|---|
displayName | String | Erforderlich | Der Name des Collectors. Dieser Name wird in der Google SecOps-Benutzeroberfläche angezeigt. |
config | object | Optional | Die Konfigurationseinstellungen für diesen Forwarder. Weitere Informationen finden Sie unter Felder für die Collector-Konfiguration. |
Beispielanfrage
Dies ist ein Beispiel für eine Update Collector-Anfrage, in der neue Werte für displayName, logType, assetNamespace und protocol angegeben werden.
PATCH https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56?updateMask=displayName,config.logType,config.metadata.assetNamespace,config.syslogSettings.protocol
{
"display_name": "UpdatedCollector"
"config": {
"metadata": {
"asset_namespace": "COLLECTOR",
},
"log_type": "CISCO_ASA_FIREWALL",
"syslog_settings": {
"protocol": "TCP",
}
}
}
Antwortbeispiel
Dies ist ein Beispiel für die Antwort, die für das obige Anfragebeispiel zurückgegeben wurde.
{
"name": "forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56",
"displayName": "UpdatedCollector",
"config": {
"logType": "CISCO_ASA_FIREWALL",
"metadata": {
"assetNamespace": "COLLECTOR"
},
"maxSecondsPerBatch": 10,
"maxBytesPerBatch": "1048576",
"syslogSettings": {
"protocol": "TCP",
"address": "0.0.0.0",
"port": 10514,
}
},
"state": "ACTIVE"
}
Collector löschen
Löscht einen Collector.
Anfrage
DELETE https://backstory.googleapis.com/v2/forwarders/{forwarderID}/collectors/{collectorID}
Anfragetext
Geben Sie keinen Anfragetext an.
Anfragebeispiel
DELETE https://backstory.googleapis.com/v2/forwarders/12ab3cd4-56ef-7abc-d89e-1f23a4bcde56/collectors/98ab7cd6-54ef-3abc-d21e-1f23a4bcde56
Antwortbeispiel
Wenn der Vorgang erfolgreich war, gibt „Delete Collector“ eine leere Antwort mit dem HTTP-Statuscode 200 (OK) zurück.
{}
Collector-Konfigurationsfelder
Die folgenden Felder können im config
-Objekt des Anfragetexts angegeben werden.
Feld | Typ | Erforderlich | Beschreibung |
---|---|---|---|
log_type | String | Erforderlich | Ein unterstützter Protokolltyp, der von Google SecOps aufgenommen werden kann. Eine Liste mit
unterstützte Logtypen, für die Google SecOps einen Parser hat, siehe
in der Spalte "Aufnahmelabel" für die Unterstützte Standardeinstellung
Parser. Um eine
vollständige Liste der unterstützten Logtypen verwenden, verwenden Sie den logtypes -Endpunkt.
|
metadata.asset_namespace | object | Optional | Der Namespace zur Identifizierung von Protokollen dieses Collectors. Hinweis: Dies ist eine globale Einstellung, die für den Forwarder und die Collector des Forwarders gilt, sofern sie nicht auf Collectorebene überschrieben wird. Weitere Informationen finden Sie unter Namespaces konfigurieren. |
metadata.labels | list | Optional | Eine Liste beliebiger Schlüssel/Wert-Paare, die in der Erfassungskonfiguration angegeben werden können. Hinweis:Dies ist eine globale Einstellung, die für den Forwarder und die Collectors des Forwarders, es sei denn, dies wird bei auf der Collector-Ebene. |
metadata.labels.key | String | Optional | Der Schlüssel für ein Feld in der Liste der Metadatenlabels. |
metadata.labels.value | String | Optional | Der Wert für ein Feld in der Liste der Metadatenlabels. |
regex_filters.description | String | Optional | Hier wird beschrieben, was herausgefiltert wird und warum. |
regex_filters.regexp | String | Optional | Der reguläre Ausdruck, der mit jeder eingehenden Zeile abgeglichen wird. |
regex_filters.behavior | enum | Optional | Gibt den Status der Serverfunktion an. Gültige Werte sind:
|
disk_buffer.state | enum | Optional | Gibt den Status der Laufwerkpufferung für den Profiler an. Gültige Werte sind:
|
disk_buffer.directory_path | String | Optional | Der Verzeichnispfad für geschriebene Dateien. |
disk_buffer.max_file_buffer_bytes | integer | Optional | Die maximale Größe der zwischengespeicherten Datei. |
max_seconds_per_batch | Ganzzahl | Optional | Die Anzahl der Sekunden zwischen den Batches. Der Standardwert ist 10 . |
max_bytes_per_batch | Ganzzahl | Optional | Die Anzahl der Byte, die vor dem Batch-Upload des Forwarders in der Warteschlange stehen. Der Standardwert ist 1048576 . |
<collector_type>_settings.<fields> | Erforderlich | Gibt einen Messwerttyp und seine Einstellungen an. Für jeden Collector muss ein Collector-Typ und seine Felder angegeben werden. Wenn Sie beispielsweise den file -Aufnehmertyp verwenden möchten, muss der Konfiguration das Feld file_settings.file_path hinzugefügt und ein Wert angegeben werden. Beispiel:"file_settings": { Die Erfassungstypen und ihre Felder sind in den folgenden Zeilen dieser Tabelle aufgeführt. Folgende Collector-Typen sind verfügbar:
|
|
file_settings.file_path | String | Optional | Der Pfad der Datei, die überwacht werden soll. |
kafka_settings.authentication.username | String | Optional | Der Nutzername einer Identität, die für die Authentifizierung verwendet wird. |
kafka_settings.authentication.password | String | Optional | Das Passwort des durch den Nutzernamen identifizierten Kontos. |
kafka_settings.topic | String | Optional | Das Kafka-Thema, aus dem Daten aufgenommen werden sollen. Weitere Informationen finden Sie unter Daten aus Kafka-Themen erfassen. |
kafka_settings.group_id | String | Optional | Eine Gruppen-ID. |
kafka_settings.timeout | Ganzzahl | Optional | Die maximale Anzahl von Sekunden, die ein Wählvorgang wartet, bis eine Verbindung hergestellt wird.
abgeschlossen ist. Der Standardwert ist 60 . |
kafka_settings.brokers | String | Optional | Ein wiederholter String, der Kafka-Broker auflistet. Beispiel: "broker-1:9092", "broker-2:9093" Hinweis: Bei einem Aktualisierungsvorgang werden alle Werte ersetzt. Wenn Sie also eine Liste von Brokern aktualisieren und einen neuen Broker hinzufügen möchten, müssen Sie alle vorhandenen Broker und den neuen Broker angeben. |
kafka_settings.tls_settings.certificate | String | Optional | Der Pfad und der Name der Zertifikatdatei. Beispiel:/path/to/cert.pem |
kafka_settings.tls_settings.certificate_key | String | Optional | Der Pfad und der Dateiname des Zertifikatschlüssels. Beispiel:/path/to/cert.key |
kafka_settings.tls_settings.minimum_tls_version | String | Optional | Die TLS-Mindestversion. |
kafka_settings.tls_settings.insecure_skip_verify | Boolescher Wert | Optional | Wenn true , wird die SSL-Zertifizierungsüberprüfung aktiviert.Der Standardwert ist false . |
pcap_settings.network_interface | String | Optional | Die Schnittstelle, auf der nach PCAP-Daten gewartet werden soll. |
pcap_settings.bpf | String | Optional | Der Berkeley Packet Filter (BPF) für pcap. |
splunk_settings.authentication.username | String | Optional | Der Nutzername einer Identität, die für die Authentifizierung verwendet wird. |
splunk_settings.authentication.password | String | Optional | Das Passwort des Kontos, das durch den Nutzernamen identifiziert wird. |
splunk_settings.host | String | Optional | Der Host oder die IP-Adresse für die Splunk REST API. |
splunk_settings.port | integer | Optional | Der Port für die Splunk REST API. |
splunk_settings.minimum_window_size | Ganzzahl | Optional | Der Mindestzeitraum in Sekunden für eine bestimmte Splunk-Suche. Weitere Informationen finden Sie unter Splunk-Daten erfassen. Der Standardwert ist 10 . |
splunk_settings.maximum_window_size | Ganzzahl | Optional | Der maximale Zeitraum in Sekunden für eine bestimmte Splunk-Suche. Für
Weitere Informationen finden Sie unter Splunk-Daten erfassen. Der Standardwert ist 30 . |
splunk_settings.query_string | String | Optional | Die Abfrage, die zum Filtern von Datensätzen in Splunk verwendet wird. Beispiel: search index=* sourcetype=dns |
splunk_settings.query_mode | String | Optional | Der Abfragemodus für Splunk. Beispiel: realtime |
splunk_settings.cert_ignored | Boolescher Wert | Optional | Bei true wird das Zertifikat ignoriert. |
syslog_settings.protocol | enum | Optional | Gibt das Protokoll an, das der Collector zum Überwachen von Syslog-Daten verwendet. Gültige Werte sind:
|
syslog_settings.address | String | Optional | Die Ziel-IP-Adresse oder der Ziel-Hostname, an dem sich der Collector befindet und auf syslog-Daten wartet. |
syslog_settings.port | Ganzzahl | Optional | Der Zielport, an dem sich der Collector befindet und der auf syslog-Daten wartet. |
syslog_settings.buffer_size | Ganzzahl | Optional | Die Größe des Zwischenspeichers des TCP-Sockets in Byte. Der Standardwert für TCP ist 65536 .Der Standardwert für UDP ist 8192 . |
syslog_settings.connecton_timeout | Ganzzahl | Optional | Die Anzahl der Sekunden Inaktivität, nach denen die TCP-Verbindung getrennt wird. Der Standardwert ist 60 . |
syslog_settings.tls_settings.certificate | String | Optional | Der Pfad und der Name der Zertifikatdatei. Beispiel:/path/to/cert.pem |
syslog_settings.tls_settings.certificate_key | String | Optional | Pfad und Dateiname des Zertifikatsschlüssels. Beispiel:/path/to/cert.key |
syslog_settings.tls_settings.minimum_tls_version | String | Optional | Die Mindestversion für TLS. |
syslog_settings.tls_settings.insecure_skip_verify | bool | Optional | Wenn true , wird die SSL-Zertifizierungsüberprüfung aktiviert.Der Standardwert ist false . |