Verwaltung von Logpush-Aufträgen
IBM Cloud® Internet Services Pläne auf Unternehmensebene haben Zugang zu detaillierten Protokollen von HTTP, DNS- und Range-Anfragen sowie Firewall-Ereignissen für ihre Domains. Diese Protokolle sind hilfreich für Debugging und Analyse, insbesondere in Verbindung mit anderen Datenquellen (z. B. Ingress- oder Anwendungsserverprotokolle) am Ursprungsort.
Vorbereitende Schritte
Bevor Sie einen Logpush-Auftrag über die Benutzeroberfläche erstellen, sollten Sie die folgenden Informationen lesen und alle Voraussetzungen erfüllen:
-
Derzeit unterstützt die Benutzeroberfläche von CIS die folgenden Ziele:
- IBM Cloud-Protokolle
- Cloud Object Storage
- Splunk
-
Stellen Sie sicher, dass die Protokollaufbewahrung aktiviert ist, bevor Sie Logpush verwenden.
-
Die Annahme der Logpush-Benutzereinladung (
cislogp@us.ibm.com
) ist ein manueller Prozess, der von einem autorisierten CIS Team durchgeführt wird. Der Status in der Konsole wird aktualisiert, nachdem die Einladung angenommen wurde. Bis dahin bleibt der StatusPending
. -
Wenn Ihr Ziel nicht explizit von CIS unterstützt wird, kann es dennoch von Logpush über ein benutzerdefiniertes HTTP Ziel zugänglich sein. Dazu gehören auch Ihre eigenen benutzerdefinierten HTTP Log-Server.
Um Fehler zu vermeiden, stellen Sie sicher, dass der Zielort eine komprimierte Datei mit dem Namen
test.txt.gz
akzeptieren kann, die den komprimierten Inhalt{"content":"tests"}
enthält. -
Nur für Cloud Object Storage:
- Sie müssen eine Instanz Cloud Object Storage mit einem Bucket haben, der Object Writer Zugriff auf das Konto IBM Cloud
cislogp@us.ibm.com
gewährt. Mit dieser Berechtigung kann CIS Anfrageprotokolle in den Object Storage Bucket schreiben. - Logpush verwendet öffentlich zugängliche HTTPS Endpunkte für Cloud Object Storage und gewährleistet die Verschlüsselung der Protokolldaten während der Übertragung.
- DNS-, Range- und Firewall-Ereignisprotokolle sind nicht in den Protokollen von HTTP / HTTPS enthalten und erfordern separate Aufträge. Diese Aufträge können das gleiche Ziel verwenden, müssen aber mit Cloud Object Storage unterschiedliche Pfade angeben.
- Nachdem Sie einen Logpush-Auftrag mit Cloud Object Storage erstellt haben, müssen Sie die Eigentumsverhältnisse überprüfen. Dieser Prozess wird in den nächsten Schritten beschrieben.
- Sie müssen eine Instanz Cloud Object Storage mit einem Bucket haben, der Object Writer Zugriff auf das Konto IBM Cloud
-
Nur für Splunk: Wenn Sie Protokolle an Splunk senden, prüft CIS die IP-Adresse und den Port auf Erreichbarkeit und validiert das Zertifikat des Empfängers HTTP. Wenn alle Parameter gültig sind, wird der Logpush-Auftrag erstellt und beginnt, Ereignisse an den HTTP Event Collector ( Splunk ) zu senden.
Erstellen eines Logpush-Auftrags in der Konsole
Um einen Logpush-Auftrag in der Konsole zu erstellen, gehen Sie wie folgt vor:
-
Wählen Sie "Konto" > "Protokolle " und klicken Sie dann auf "Erstellen ".
-
Wählen Sie einen Dienst aus:
- Wählen Sie aus den verfügbaren Optionen die gewünschte Art von Dienstleistung aus.
- Wählen Sie den Typ des Datensatzes.
- Optional: Geben Sie eine Beschreibung und einen Namen ein.
- Wählen Sie Weiter aus.
-
Ziel konfigurieren:
- IBM Cloud-Protokolle
-
Geben Sie die IBM Cloud Logs-Instanz-ID, die Instanz-Region und den API-Schlüssel (vom Benutzer verwaltet) ein.
Ein API-Schlüssel für das Konto, in dem die IBM Cloud Logs-Instanz eingerichtet ist, ist erforderlich. Sie können entweder einen Benutzer-API-Schlüssel oder einen Dienst-ID-API-Schlüssel verwenden. Dieser Schlüssel wird verwendet, um einen Träger-Token für den Logpush-Job zu generieren. Der API-Schlüssel kann mit Hilfe der API für die Aktualisierung eines Logpush-Auftrags geändert werden.
Für einen IBM Cloud-Protokolldienst muss dem Benutzer oder der Dienst-ID die IAM-Rolle "Absender" zugewiesen werden.
- Cloud Object Storage
-
Geben Sie die Instanz Cloud Object Storage, die Bucket-Informationen (Name und Region) und den Bucket-Pfad (optional) ein. Dann organisieren Sie die Protokolle in Tagesordnern (optional).
Die Zielwerte für Cloud Object Storage müssen eindeutig sein. Es wird empfohlen, einen Eimerweg zu verwenden, um Konflikte zu vermeiden.
- Splunk
- Geben Sie den Endpunkt Splunk, die Kanal-ID und das Authentifizierungstoken ein.
Sie können sich für eine unsichere Verifizierung entscheiden; dies wird jedoch nicht empfohlen.
- Benutzerdefiniert HTTP Ziel
-
Geben Sie Ihren HTTP Endpunkt ein.
Stellen Sie sicher, dass der Endpunkt ordnungsgemäß URL-codiert ist und alle erforderlichen Anforderungsheader als URL-Parameter hinzugefügt werden, die als "header_*" formatiert sind (z. B.
header_Authorization
).
-
Nur für Cloud Object Storage-Jobs: Überprüfen Sie die Inhaberschaft. Laden Sie dazu das Objekt herunter, das Sie in Ihrem Bucket erhalten haben, und fügen Sie das Token in den Textbereich für das Eigentumstoken ein. Klicken Sie anschließend auf Weiter.
Sie können die Datei im Abschnitt Fehlerbehebung erneut senden oder zum vorherigen Schritt zurückkehren, wenn der Bucket-Pfad falsch ist.
-
Protokollfelder auswählen:
-
Überprüfen Sie, ob die Logpush-Details korrekt sind.
-
Wählen Sie die Logpush-Einstellungen in den Menüs Zeitstempelformat und Frequenz aus.
-
Wählen Sie aus, ob der Logpush-Job aktiviert werden soll, indem Sie den Aktivierungsschalter auf "Ein" stellen.
-
Wählen Sie die Protokollfelder aus, die in den Logpush-Auftrag aufgenommen werden sollen.
Sie können die Schalter verwenden, um alle Felder auszuwählen oder alle Felder zu erweitern. Sie können auch zu den Standardeinstellungen zurückkehren.
-
Klicken Sie auf "Fertig ", um Ihren Logpush-Auftrag zu erstellen.
-
Erstellen eines Logpush-Jobs über die Befehlszeilenschnittstelle
Sie können die ibmcloud cis logpush-job-create
CLI verwenden, um einen Logpush-Job zu erstellen.
Führen Sie den folgenden Befehl aus, um einen Logpush-Job für eine bestimmte Domäne zu erstellen und zu aktivieren:
ibmcloud cis logpush-job-create DNS_DOMAIN_ID --destination PATH --name JOB_NAME --fields all --enable true
Dabei gilt:
-destination
: Gibt den Pfad zum Ziel an. Die Pfade für unterstützte Ziele sind wie folgt:
IBM Cloud-Protokolle |
---|
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>
Ein Beispiel: Ein API-Schlüssel für das Konto, in dem die IBM Cloud Logs-Instanz eingerichtet ist, ist erforderlich. Sie können entweder einen Benutzer-API-Schlüssel oder einen Dienst-ID-API-Schlüssel verwenden. Dieser Schlüssel wird verwendet, um einen Träger-Token für den Logpush-Job zu generieren. Der API-Schlüssel kann mit Hilfe der API für die Aktualisierung eines Logpush-Auftrags geändert werden. Wichtig: Der Benutzer oder die Dienst-ID muss die IAM-Rolle "Absender" für den Dienst IBM Cloud Logs erhalten. |
Cloud Object Storage |
---|
cos://<BUCKET_OBJECT_PATH>?region=<REGION>&instance-id=<IBM_ClOUD_OBJECT_STORAGE_INSTANCE_ID>
Zum Beispiel: |
Individuell HTTP |
---|
https://<HOSTNAME>?header_Authorization=Basic%20REDACTED&tags=host:<DOMAIN_NAME>,dataset:<LOGPUSH_DATASET>
Zum Beispiel: |
--name
: Gibt den Namen des Logpush-Auftrags an.
--fields
: Gibt die Liste der Protokollfelder an, die in die Protokolldateien aufgenommen werden sollen. Trennen Sie mehrere Felder durch Kommas. Verwenden Sie den Befehl ibmcloud cis logpush-available-fields DNS_DOMAIN_ID --dataset DATASET
,
um eine umfassende Liste der verfügbaren Protokollfelder zu erhalten, oder verwenden Sie all
, um alle verfügbaren Felder in die Protokolldateien aufzunehmen.
--enable
: Ist das Flag zum Aktivieren oder Deaktivieren des Logpush-Jobs. Gültige Werte sind true
oder false
(Standardwert).
Cloud Object Storage: Überprüfung der Eigentümerschaft
Nachdem Sie einen Logpush-Job erstellt haben, um Protokolle an Cloud Object Storage zu senden, müssen Sie den Besitz bestätigen.
Wenn ein Challenge-Token in eine Datei im angegebenen Cloud Object Storage-Ordner geschrieben wird, gehen Sie wie folgt vor:
- Laden Sie die Datei von Ihrem Cloud Object Storage Bucket herunter und öffnen Sie sie.
- Kopieren Sie das Challenge-Token aus der Datei und fügen Sie es in die Eingabeaufforderung ein, um die Besitzherausforderung zu lösen.
Nachdem CIS die Besitzherausforderung bestätigt hat, wird der Logpush-Job erfolgreich erstellt. Der Job wird dann alle 30 Sekunden oder sobald 100.000 Datensätze erreicht sind, je nachdem, was zuerst eintritt, Anfrageprotokolle in Ihren Cloud Object Storage-Eimer verschieben. Beachten Sie, dass mehrere Dateien innerhalb eines Zeitraums von 30 Sekunden oder pro 100.000 Datensätze übertragen werden können.
Sie können auch das Token {DATE}
im Bucket-Pfad verwenden, um Logpush-Protokolle in Tagesordnern zu organisieren. Beispiel:cos://mybucket/cislog/{DATE}?region=us-south&instance-id=c84e2a79-ce6d-3c79-a7e4-7e7ab3054cfe
Befehlsbeispiele
Beispiele für CLI für die unterstützten Ziele:
- IBM Cloud-Protokolle
-
Beispiel
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination "ibmcl://604a309c-585c-4a42-955d-76239ccc1905.ingress.us-south.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=xxxxxxxx" --name logpushJobGen --enable true --fields RayID --dataset http_requests --frequency high -i 1a9174b6-0106-417a-844b-c8eb43a72f63
- Cloud Object Storage
-
Beispiel
ibmcloud cis logpush-job-create 31984fea73a15b45779fa0df4ef62f9b --destination cos://cis-test-bucket/logs?region=us&instance-id=f75e6d90-4212-4026-851c-d572071146cd --name logpushcreate --enable true --fields all --timestamps rfc3339 --dataset http_requests --frequency low -i cis-demo --output JSON
- Individuell HTTP
-
Beispiel
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination https://logs.example.com?header_Authorization=a64VuywesDu5Aq" --name logpushJobGen --enable true --fields RayID --dataset http_requests --frequency high -i 1a9174b6-0106-417a-844b-c8eb43a72f63
Erstellen eines Logpush-Auftrags mit der API
Sie können die API "Create a Logpush job" verwenden, um einen Logpush-Auftrag zu erstellen, wenn Sie IBM Cloud Logs, Cloud Object Storage oder Splunk verwenden.
Abrufen der verfügbaren Protokollfelder für einen Datensatz mit der API
Protokollfelder können in der logpull_options
eines Logpush-Jobs angegeben werden, um anzupassen, was an den Zielort gesendet wird. Um die verfügbaren Log-Felder für einen Logpush-Datensatz zu erhalten, gehen Sie wie folgt vor:
-
Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
-
Speichern Sie die folgenden Werte in Variablen, damit diese im API-Befehl verwendet werden können:
CRN
: Der vollständige URL-codierte CRN der Serviceinstanz.ZONE_ID
: Die Domänen-ID.DATASET
: Das Logpush-Dataset wird untersucht. Eine vonhttp_requests
,range_events
,dns_logs
,firewall_events
. -
Wenn alle Variablen initialisiert sind, erstellen Sie den Job 'logpush':
curl -X GET https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/datas/$DATASET/fields \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN"'
Erstellen eines Logpush-Jobs, um Protokolle an Ihr Ziel zu senden
Um einen Logpush-Auftrag an Ihr Ziel ( IBM Cloud Logs, Cloud Object Storage oder Splunk ) zu erstellen, gehen Sie wie folgt vor:
-
Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
-
Speichern Sie die folgenden Werte in Variablen, damit diese im API-Befehl verwendet werden können:
CRN
: Der vollständige URL-codierte Cloud Resource Name (CRN) der Dienstinstanz.ZONE_ID
: Die Domänen-ID.--request body
: Informationen zum Erstellen des Logpush-Job-Textkörpers (logpush_job_DESTINATION_req
), wobeiDESTINATION
einer der folgenden Werte ist:IBM Cloud Ziel der Protokolle IBM Cloud-Protokolle ibmcl
: Informationen zur Identifizierung der IBM Cloud Logs-Instanz, in die die Daten übertragen werden. Felder innerhalb des Objektsibmcl
sind:instance_id
: ID der IBM Cloud Logs-Instanz.region
: Region der IBM Cloud Logs-Instanz (z. B.us-south
).api_key
: Ein API-Schlüssel für das Konto, in dem die IBM Cloud Logs-Instanz eingerichtet ist, ist erforderlich. Sie können entweder einen Benutzer-API-Schlüssel oder einen Dienst-ID-API-Schlüssel verwenden. Dieser Schlüssel wird verwendet, um einen Träger-Token für den Logpush-Job zu generieren. Der API-Schlüssel kann mithilfe der Update a Logpush job API geändert werden.
Wichtig: Dem Benutzer oder der Dienst-ID muss die Rolle "Sender IAM" im IBM Cloud Logs-Dienst zugewiesen werden.
ibmcl_names
: Optionales Feld zum Anpassen der in IBM Cloud-Protokollen verwendeten Anwendungs- und Subsystemnamen. Felder innerhalb des Objektsibmcl_names
sind:application_name
: Name der benutzerdefinierten Anwendung für den Auftrag.subsystem_name
: Name des benutzerdefinierten Subsystems für den Auftrag.
Cloud Object Storage ziel Cloud Object Storage cos
: Informationen zur Identifizierung des Cloud Object Storage-Buckets, in den die Daten übertragen werden. Felder innerhalb descos
-Objekts sind:bucket_name
: Name Ihres COS-Buckets, an den Protokolle gesendet werden (Beispiel:cos-bucket001
).region
: Region der Cloud Object Storage-Instanz (zum Beispielus-south
).id
: ID der COS-Instanz.
Splunk ziel Splunk splunk
: Informationen zur Identifizierung des Splunk HTTP Event Collector (HEC), an den die Daten gesendet werden. Felder innerhalb dessplunk
-Objekts sind:endpoint_url
: URL der Splunk HEC.channel_id
: Eine zufällige GUID zur eindeutigen Identifizierung des Protokoll-Pushs.skip_verify
: Boolesches Flag zum Überspringen der Validierung des HTTP Event Collector-Zertifikats. Nur auftrue
einstellen, wenn die HEC ein selbstsigniertes Zertifikat verwendet.source_type
: Der Splunk-Quelltyp (zum Beispiel:cloudflare:json
).auth_token
: Das Splunk-Autorisierungstoken.
Benutzerdefiniertes HTTP-Ziel Individuell HTTP destination_conf
: Informationen zur Konfiguration des benutzerdefinierten HTTP-Ziels, an das die Daten gesendet werden. Header können so angegeben werden, dass sie von Logpush mit Abfrageparametern verwendet werden, denenheader_
vorangestellt ist (zum Beispiel:header_Authorization=XXXX
).name
: Der Name des LogPush-Jobs.enabled
: Gibt an, ob der Job aktiviert isttrue
oderfalse
.logpull_options
: Die Konfigurationszeichenfolge. Beispiel:fields=RayID,ZoneID×tamps=rfc3339
.dataset
: Das Dataset, das extrahiert wird. Eine vonhttp_requests
,dns_logs
,range_events
,firewall_events
.frequency
: Die Häufigkeit, mit der CIS Protokollstapel an Ihr Ziel sendet.high
oderlow
. -
Wenn alle Variablen initialisiert sind, erstellen Sie den Job 'logpush':
IBM Cloud-Protokolle
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "ibmcl": { "instance_id": "f8k3309c-585c-4a42-955d-76239cccf8k3", "region": "us-south", "api_key": "f8k3NQI22dPwNVCcmS62YFL1tm9vaehY6C9jxdtnf8k3" }, "ibmcl_names": { "application_name": "cis-edge-logs", "subsystem_name": "stage-firewall-logs" } "dataset": "http_requests", "enabled": true, "logpull_options": "fields=RayID,ZoneID×tamps=rfc3339", "name": "CIS-Edge-Requests", "frequency": "low" }'
Cloud Object Storage
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "cos": { "bucket_name": "example_bucket", "path": "temp/", "id": "cos_instance_id", "region": "us-east" }, "dataset": "firewall_events", "enabled": false, "name": "CIS-Firewall-COS", "frequency": "low", "logpull_options": "fields=RayID,ZoneID×tamps=rfc3339", "ownership_challenge": "xxxxxxx" }'
Splunk
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "splunk": { "endpoint_url": "example.splunkcloud.com:8088/services/collector/raw", "channel_id": "def3c136-7a01-4655-b17f-8e25a780ef2c", "skip_verify": false, "source_type": "cloudflare:json", "auth_token": "Splunk fake3585-0f38-4d62-8b43-c4b78584fake" }, "dataset": "http_requests", "enabled": true, "name": "CIS-Splunk-Logpush", "frequency": "high", "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus×tamps=rfc3339" }'
Individuell HTTP
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "destination_conf": "https://logs.example.com?header_Authorization=a64VuywesDu5Aq", "dataset": "http_requests", "enabled": true, "name": "CIS-Custom-Logpush", "frequency": "high", "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus×tamps=rfc3339" }'