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.gz akzeptieren 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:

  1. Navigieren Sie in der Konsole CIS zu Konto > Protokolle und klicken Sie dann auf Erstellen.

  2. Wählen Sie aus den verfügbaren Optionen die Zieldienstarten aus und konfigurieren Sie sie:

    IBM Cloud-Protokolle
    1. Wählen Sie IBM Cloud Logs aus den Optionen für den Diensttyp.

    2. Klicken Sie auf Weiter.

    3. Geben Sie die Instanz-ID ein.

    4. Wählen Sie die Instanzregion aus.

    5. 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.

    6. Klicken Sie auf Weiter.

    Cloud Object Storage
    1. Wählen Sie Cloud Object Storage aus den Optionen für die Dienstart.

    2. Klicken Sie auf Weiter.

    3. 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.

    4. Klicken Sie auf Weiter.

    IBM QRadar
    1. Wählen Sie die IBM QRadar aus den Optionen für den Diensttyp.
    2. Klicken Sie auf Weiter.
    3. Geben Sie die Adresse QRadar URL ein und wählen Sie dann den Quellport für das Protokoll aus.
    4. Klicken Sie auf Weiter.
    Splunk
    1. Wählen Sie Splunk aus den Optionen für die Dienstart.

    2. Klicken Sie auf Weiter.

    3. 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.

    4. Klicken Sie auf Weiter.

  3. Überprüfen Sie die Konfigurationen des Logpush-Jobs:

    1. Überprüfen Sie, ob die Logpush-Angaben korrekt sind.

    2. Wählen Sie das gewünschte Zeitstempelformat und die Frequenzeinstellungen.

    3. Wählen Sie aus, ob der Logpush-Job aktiviert werden soll, indem Sie den Aktivierungsschalter auf "Ein" stellen.

    4. 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.

    5. 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 Holzfällerpfad
IBM Cloud-Protokolle
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>

Ein Beispiel:
ibmcl://604a309c-585c-4a42-955d-76239ccc1905.ingress.us-south.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=zxzeNQI22dPwxxxxxxxx9jxdtn1EVK

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 pfad
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:
cos://cis-test-bucket/logs?region=us&instance-id=f75e6d90-4212-4026-851c-d572071146cd

IBM QRadar pfad
IBM QRadar
<QRADAR_URL>:<LOG_SOURCE_PORT>

Zum Beispiel:
https://qradar.example.com:8088

Splunk pfad
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:
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

Benutzerdefinierter HTTP-Pfad
Individuell HTTP
https://<HOSTNAME>?header_Authorization=Basic%20REDACTED&tags=host:<DOMAIN_NAME>,dataset:<LOGPUSH_DATASET>

Zum Beispiel:
https://logs.example.com?header_Authorization=a64Vxxxxx5Aq

--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:

  1. Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
  2. 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.

  1. 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:

  1. Richten Sie Ihre API-Umgebung mit den richtigen Variablen ein.
  2. 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 Ziel der Protokolle
IBM Cloud-Protokolle

ibmcl: Informationen zur Identifizierung der IBM Cloud Logs-Instanz, in die die Daten übertragen werden. Felder innerhalb des Objekts ibmcl 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 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.

ibmcl_names: Optionales Feld zum Anpassen der in IBM Cloud-Protokollen verwendeten Anwendungs- und Subsystemnamen. Felder innerhalb des Objekts ibmcl_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 Object Storage-Bucks, in den die Daten übertragen werden. Felder innerhalb des cos Objekts sind:

  • bucket_name: Name Ihres COS-Buckets, an den die Protokolle gesendet werden (Beispiel: cos-bucket001).
  • region: Region der Instanz Cloud Object Storage (z. B. us-south).
  • id: ID der Instanz Cloud Object Storage.
  • ibm_api_key: Ein API-Schlüssel für das Konto, in dem die IBM Cloud Logs-Instanz eingerichtet wurde, ist erforderlich. Sie können den API-Schlüssel für einen Benutzer oder für eine Service-ID verwenden. Dieser Schlüssel generiert das Überbringer-Token für den Logpush-Auftrag. Um den API-Schlüssel zu rotieren, verwenden Sie die API „ Logpush-Auftrag aktualisieren “.

Wichtig: Der Kunde oder die Service-ID muss über die IAM-Rolle „Object Writer“ für den „ Object Storage “-Bucket verfügen.

IBM QRadar zielort
IBM QRadar
qradar: Informationen zur Identifizierung des QRadar HTTP Empfängers, an den die Daten übermittelt werden.
Splunk ziel
Splunk

splunk: Informationen zur Identifizierung des Splunk HTTP Event Collector (HEC), an den die Daten gesendet werden. Felder innerhalb des splunk-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 auf true 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, 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&timestamps=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.

  1. 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&timestamps=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&timestamps=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&timestamps=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&timestamps=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&timestamps=rfc3339"
    }'
    
    {: pre}