Verwaltung von Logpush-Aufträgen
IBM Cloud® Internet Services Kunden mit Enterprise-Tarifen haben Zugriff auf detaillierte Protokolle zu HTTP-Anfragen, DNS- und Range-Anfragen sowie auf Firewall-Ereignisse 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-Job über die Konsole erstellen, lesen Sie die folgenden Informationen und stellen Sie sicher, dass alle Voraussetzungen erfüllt sind:
-
Derzeit unterstützt die Konsole „ CIS “ die folgenden Ziele:
- IBM Cloud-Protokolle
- Cloud Object Storage
- IBM QRadar
- Splunk
-
Stellen Sie sicher, dass die Protokollaufbewahrung aktiviert ist, bevor Sie Logpush verwenden.
-
Wenn Ihr Ziel nicht explizit von CIS unterstützt wird, kann es dennoch von Logpush mit einem benutzerdefinierten HTTP Ziel zugänglich sein. Dazu gehören auch Ihre eigenen benutzerdefinierten HTTP Log-Server.
Um Fehler zu vermeiden, vergewissern Sie sich, dass das Ziel einen gzipped-Datei-Upload mit dem Namen
test.txt.gzakzeptieren kann, der den komprimierten Inhalt{"content":"tests"}enthält. -
Nur für Splunk: Wenn Sie Protokolle an QRadar oder 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 mit dem Senden von Ereignissen an die Protokollquelle HTTP Receiver ( QRadar ) oder den HTTP Event Collector ( Splunk ).
Erstellen eines Logpush-Auftrags in der Konsole
Um einen Logpush-Auftrag in der Konsole zu erstellen, gehen Sie wie folgt vor:
-
Navigieren Sie in der Konsole CIS zu Konto > Protokolle und klicken Sie dann auf Erstellen.
-
Wählen Sie aus den verfügbaren Optionen die Zieldienstarten aus und konfigurieren Sie sie:
- IBM Cloud-Protokolle
-
-
Wählen Sie IBM Cloud Logs aus den Optionen für den Diensttyp.
-
Klicken Sie auf Weiter.
-
Geben Sie die Instanz-ID ein.
-
Wählen Sie die Instanzregion aus.
-
Geben Sie den API-Schlüssel 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 Service-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 Logs-Dienst muss dem Benutzer oder der Dienst-ID die IAM-Rolle Sender zugewiesen werden.
-
Klicken Sie auf Weiter.
-
- Cloud Object Storage
-
-
Wählen Sie Cloud Object Storage aus den Optionen für die Dienstart.
-
Klicken Sie auf Weiter.
-
Geben Sie die Cloud Object Storage Instanz-ID, den Bucket-Namen, die Bucket-Region, den Bucket-Pfad (optional) und den API-Schlüssel ein.
Optional: Aktivieren Sie Logs in täglichen Ordnern organisieren.
Die Zielwerte für Cloud Object Storage müssen eindeutig sein. Verwenden Sie einen eindeutigen Bucket-Pfad, um Konflikte zu vermeiden.
Ein API-Schlüssel für das Konto, in dem die Instanz Cloud Object Storage eingerichtet ist, ist erforderlich. Sie können entweder einen Benutzer-API-Schlüssel oder einen Service-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 Cloud Object Storage-Dienst muss der Benutzer- oder Dienst-ID die IAM-Rolle "Object Writer " für den Bucket zugewiesen werden.
-
Klicken Sie auf Weiter.
-
- IBM QRadar
-
- Wählen Sie die IBM QRadar aus den Optionen für den Diensttyp.
- Klicken Sie auf Weiter.
- Geben Sie die Adresse QRadar URL ein und wählen Sie dann den Quellport für das Protokoll aus.
- Klicken Sie auf Weiter.
- Splunk
-
-
Wählen Sie Splunk aus den Optionen für die Dienstart.
-
Klicken Sie auf Weiter.
-
Geben Sie den Splunk raw HTTP Event Collector URL, die Kanal-ID und das Authentifizierungs-Token ein.
Sie können sich für eine unsichere Verifizierung entscheiden; dies wird jedoch nicht empfohlen.
-
Klicken Sie auf Weiter.
-
-
Überprüfen Sie die Konfigurationen des Logpush-Jobs:
-
Überprüfen Sie, ob die Logpush-Angaben korrekt sind.
-
Wählen Sie das gewünschte Zeitstempelformat und die Frequenzeinstellungen.
-
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.
-
Der Logpush-Auftrag wird erstellt und beginnt, Protokolle an das konfigurierte Ziel zu senden.
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 Service-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 API „Update a Logpush job“ aktualisiert werden. Wichtig: Dem Benutzer oder der Dienst-ID muss die IAM-Rolle „Sender“ für den Dienst „ IBM Cloud-Protokolle“ zugewiesen werden. |
| Cloud Object Storage |
|---|
cos://<BUCKET_OBJECT_PATH>?region=<REGION>&instance-id=<IBM_ClOUD_OBJECT_STORAGE_INSTANCE_ID>&ibm_api_key=<IBM_API_KEY>
Zum Beispiel: |
| IBM QRadar |
|---|
<QRADAR_URL>:<LOG_SOURCE_PORT>
Zum Beispiel: |
| Splunk |
|---|
splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&header_Authorization=<SPLUNK_AUTH_TOKEN>&sourcetype=<SOURCE_TYPE>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>
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-Jobs an.
--fields: Legt die Liste der Protokollfelder fest, 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 abzurufen, oder verwenden Sie, all um alle verfügbaren Felder in die Protokolldateien aufzunehmen.
--enable: Dies ist das Flag zum Aktivieren oder Deaktivieren des Logpush-Jobs. Gültige Werte sind true oder false (Standardwert).
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 --instance 1a9174b6-0106-417a-844b-c8eb43a72f63
Cloud Object Storage :
Beispiel
```sh {: pre}
ibmcloud cis logpush-job-create 31984fea73a15b45779fa0df4ef62f9b --destination cos://cis-test-bucket/logs/{DATE}?region=us&instance-id=f75e6d90-4212-4026-851c-d572071146cd&ibm_api_key=XXX --name logpushcreate --enable true --fields all --timestamps rfc3339 --dataset http_requests --frequency low -i cis-demo --output JSON
```
- IBM QRadar
-
Beispiel
ibmcloud cis logpush-job-create 31984fea73a15b45779fa0df4ef62f9b --destination https://qradar.example.com:8088 --name logpushJobQRadar --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63 - Splunk
-
Beispiel
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination splunk://cis-analytics.ibm.com:8088/services/collector/raw?header_Authorization=Splunk%20e6d94e8c-5792-4ad1-be3c-29bcaee0197d&channel=f1aafa4f-684f-4c29-a040-7fe184b03712&sourcetype=cloudflare:json&insecure-skip-verify=false --name logpushJobSplunk --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63 - 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 --instance 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 von http_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 ), wobei DESTINATION einer der folgenden Werte ist:
| IBM Cloud-Protokolle |
|---|
|
Wichtig: Dem Benutzer oder der Dienst-ID muss die IAM-Rolle „Sender“ für den Dienst „ IBM Cloud-Protokolle“ zugewiesen werden.
|
| Cloud Object Storage |
|---|
cos: Informationen zur Identifizierung des Object Storage-Bucks, in den die Daten übertragen werden. Felder innerhalb des cos Objekts sind:
Wichtig: Der Kunde oder die Service-ID muss über die IAM-Rolle „Object Writer“ für den „ Object Storage “-Bucket verfügen. |
| IBM QRadar |
|---|
qradar: Informationen zur Identifizierung des QRadar HTTP Empfängers, an den die Daten übermittelt werden. |
| Splunk |
|---|
|
|
| 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, denen
header_ vorangestellt ist (zum Beispiel: header_Authorization=XXXX). |
name: Der Name des LogPush-Jobs.
enabled: Gibt an, ob der Job aktiviert ist true oder false.
logpull_options: Die Konfigurationszeichenfolge. Beispiel: fields=RayID,ZoneID×tamps=rfc3339.
dataset: Das Dataset, das extrahiert wird. Eine von http_requests, dns_logs, range_events, firewall_events.
frequency: Die Häufigkeit, mit der CIS Protokollstapel an Ihr Ziel sendet. high oder low.
-
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" }'
{: pre} Cloud Object Storage : ```sh 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" }'- IBM QRadar
-
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 '{ "qradar": { "url": "https://example.qradar.ibmcloud.com", "port": 8088 }, "dataset": "firewall_events", "enabled": false, "name": "CIS-Firewall-QRadar", "frequency": "low", "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus×tamps=rfc3339" }'
{: pre} Splunk : ```sh 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" }'
{: pre}